Новости :

Способы защиты от флуда и DDoS атак в FreeBSD

Способы защиты от флуда и DDoS атак в FreeBSD


Черные дыры.

   net.inet.tcp.blackhole=2
   net.inet.udp.blackhole=1
   Это превращает машину в черную дыру при попытке подключиться к портам,
   которые не слушают. Nmap по настоящему не любит это.

Защита очереди сокета от SYN атак.

   Основной из самых популярных атак остается SYN флуд, при которой
   очередь сокета атакуемого хоста переполняется некорректными попытками
   соединений. Для защиты от таких атак некоторые из UNIX поддерживают
   отдельные очереди для входящих запросов на соединение. Одна очередь
   для полуоткрытых сокетов (SYN получен, SYN|ACK послан), другая очередь
   для полностью открытых сокетов, ждущих вызова accept() от программы.
   Эти две очереди должны быть увеличены, чтобы атаки малой и средней
   интенсивности почти не влияли на стабильность и доступность сервера.
   kern.ipc.somaxconn=1024

Редиректы (Перенаправления)

   Атакующий может использовать IP redirect для изменения таблицы
   марщрутизации на удаленном хосте. В хорошо разработанной сети
   редиректы на конечные станции не должны требоваться. Оба - отправка и
   принятие редиректов должны быть отключены.
   net.inet.icmp.drop_redirect=1
   net.inet.icmp.log_redirect=1
   net.inet.ip.redirect=0
   net.inet6.ip6.redirect=0

Настройка стека IP в системах UNIX на оптимальную производительность:

   На размер буфера приема и передачи TCP напрямую влияет параметр
   размера TCP окна. Увеличенный размер окна позволит более эффективно
   передавать данные, особенно при интенсивной передаче, такой как FTP и
   HTTP. Значение по умолчанию не является оптимальным и должно быть
   увеличено до 32768 байт. Это значение не должно быть более 64Кб, если
   вы не знаете об ограничениях RFC1323 и RFC2018, и если нет поддержки с
   обеих сторон.
   FreeBSD:
   sysctl -w net.inet.tcp.sendspace=32768
   sysctl -w net.inet.tcp.recvspace=32768

Очистка ARP:

   Существует возможность, что атакующий создаст нехватку ресурсов или
   уменьшение производительности заполнив кэш маршрутизации IP с помощью
   неправильных записей в ARP таблице. Этот параметр рекомендуется
   выставить в 20 минут по умолчанию.
   FreeBSD:
   sysctl -w net.link.ether.inet.max_age=1200

Маршрутизация отправителя:

   С помощью маршрутизации отправителя атакующий может попытаться
   достигнуть внутренние IP адреса, включая адреса RFC1918. Важно
   отключить принятие пакетов маршрутизации отправителя для
   предотвращения незаметных проб вашей внутренней сети.
   FreeBSD:
   sysctl -w net.inet.ip.sourceroute=0
   sysctl -w net.inet.ip.accept_sourceroute=0

Установка TIME_WAIT

   На загруженном web сервере многие сокеты могут задерживаться в
   состоянии TIME_WAIT. Это вызвано неправильно написанными клиентскими
   программами, которые неправильно закрывают сокеты. Это так же может
   быть использовано для DDoS атак.
   Нет рекомендаций по настройке.

Ответ на широковещательный ECHO.

   Эти атаки работают с помощью отправки сообщения ICMP 8 0 (запрос ECHO)
   на широковещательный адрес с фальшивого адреса. Некоторые стеки IP
   ответят по умолчанию на такие сообщения. Это должно быть отключено.
   Более того, если хост является фаерволом или раутером, то он не должен
   пропускать проямые широковещательные запрсы.
   FreeBSD:
   sysctl -w net.inet.icmp.bmcastecho=0

Другие пробы с помощью широковещания:

   Существуют 2 вида проб. Запрос маски адреса может быть использован для
   определения размера блока сети и установки диапазона для дальнейших
   проб. Широковещательный запрос временного штампа (timestamp) - еще
   одно средство выявления хостов и определения их операционных систем
   (fingerprinting)
   FreeBSD:
   sysctl -w net.inet.icmp.maskrepl=0

Свободный перевод: Ярослав Клюкин (bulldozer@skintwin.no-ip.com)



   Добавление:
   Так как от флуда сложно уберечься по-настоящему, можно только
   ограничить его влияние, то можно дать следующие рекомендации:
   При настройке фаервола отключите все, что не нужно конкретно для
   работы. Скажем если у вас WEB сервер, отключите доступ ко всему кроме
   портов доступа по HTTP, будь то ICMP, UDP или еще что-нибудь. Если вы
   используете Apache, то настройте KeepAliveTimeout для уменьшения
   времени ожидания в режиме KeepAlive, подберите наиболее оптимальные
   значения для следующих директив:
   MaxKeepAliveRequests
   MaxClients
   MaxRequestsPerChild
   MaxSpareServers
   MinSpareServers
   Желаю удачи в настройке вашей сети на оптимальную производительность!

   Источник: http://www.cymru.com/~robt/Docs/Articles/ip-stack-tuning.html



Иcточник: http://www.void.ru/
Опубликована - 05.03.2005
Комментарии: (0) | FreeBSD | 2006-03-16

Увеличение производительности сетевой подсистемы FreeBSD

Увеличение производительности сетевой подсистемы FreeBSD


                  Настройка сетевой подсистемы FreeBSD

   Автор: Hendrik Scholz
   Перевод: Михаил Сгибнев

   Эта статья описывает несколько простых шагов, которые можно выполнить,
   для получения прироста производительности сетевой подсистемы, а также
   правильно выбрать железо и настроить программную часть.

Введение

   Когда Вы пытаетесь что либо оптимизировать, Вы должны прекрасно
   понимать, что можно получить и прямо противоположный результат.
   В последнем разделе приводится несколько тестирующих программ.
   Внимание: Не забывайте делать резервые копии. Пользуйтесь тестами, для
   определения того, действительно ли Вы оптимизировали систему, а не
   наоборот.

Оптимизация системы

   Общие положения:
   Любая система может быть загружена ненужными демонами и процессами. К
   примеру, можно сократить число открытых виртуальных консолей в
   /etc/ttys.Также, весьма сомнительна польза sendmail на файловом
   сервере. Освобождненная амять может использоваться как сетевой буфер и
   повысит устойчивость сервера к DoS/DDos атакам.

   Настройка sysctl:

   Очень много полезной информации можно почерпнуть в man tuning(8), где
   есть целый раздел, посвященный sysctl. В этой статье мы сосредоточимся
   исключительно на тюнинге сети.

   sysctl (8) позвляет администратору устанавливать переменные ядра.
   Размещение этих переменных подобно MIB в SNMP. Помните, что если
   изменения не будут внесены в sysctl.conf, то после перезагрузки они
   будут потеряны.

   Чтение и установка параметров может быть сделана следующим образом:
   % sysctl net.inet.ip.forwarding
       net.inet.ip.forwarding: 0
       # sysctl net.inet.ip.forwarding=1
       net.inet.ip.forwarding: 0 -> 1
       % sysctl net.inet.ip.forwarding
       net.inet.ip.forwarding: 1


   Размеры буфера TCP:

   Каждое подключение TCP имеет входящий и исходящий буфер. Большой обьем
   буфера часто может улучшить работу сети TCP но также будет потреблять
   больше памяти. В процессе работы вызывается системный вызов write(2),
   до тех пор, пока все данные не будут посланы и если буфер достаточно
   большой, чтобы принять всю посылаемую инфрмацю, процесс бы не
   блокировался, пока ядро обрабатывает буфер. В зависимости от Вашей
   ситуации Вы можете уменьшить или увеличить net.inet.tcp.sendspace и
   net.inet.tcp.recvspace sysctls. 65535 - обычное знаение серверов с
   большим обьемом памяти.

   Внимание: проконсультируйтесь с net.inet.tcp.rfc1323 sysctl и
   tuning(7), если хотите сделать буфер больше, чем 65535.

   Размер очереди:

   kern.ipc.somaxconn ограничивает размер очереди, принимающей входящие
   подключения TCP. Если сервер достаточно мощный, то это значение
   следует повысить, для того чтобы входящий запрос был поставлен в
   очередь, а не отброшен. Значение по умолчанию 128, но это слишком
   мало. Рекомендуемое значение - 1024.

   Открытые файлы:

   Параметр kern.maxfiles позволят Вам откорректировать число
   одновременно открытых дескрипторов файлоы в Вашей системе.
   Дополнительные настройки:
   Вывести вообще все арамеры sysctl, относящиеся к сети, можно командой:
   % sysctl net

   Информация о значениях может быть найдена в различных man, например
   inet6(4) для дерева net.inet6.

Правильный выбор сетевой карты

   Правильный выбор сетевой карты можеть оказать решающее влияние на всю
   сетевую подсистему в целом. Современные системы легко забют канал 100
   Мб/с, если у вас стоит плохая свая карта. Так как дешевые карты
   поддерживают только основной набор функций (подобно картам на чипе
   Realtek 8139), то процессор сервера должен будет делать операции,
   которые, в случае более дорого решения, может выполнять сама сетевая
   карта. Если Вы хотите сделать высокопроизводительный сервер, то трата
   нескольких лишних баксов на хорошую сетевуху - правильный выбор. Выбор
   Gbit-карты даже в сети FastEthernet, тоже может быть обоснованным, так
   как такие карты поддерживают еще больше возможностей.

   Разгрузка контрольной суммы:

   IP, TCP и UDP пакеты содержат контрольные суммы, которые используются,
   чтобы проверить правильность содержания этих пакетов. Контрольная
   сумма должна быть рассчитана при посылке и проверена при получении. В
   случае, если ваша плата поддерживает разгрузку контрольной суммы, эта
   особенность будет включена автоматически.

   Уменьшение прерывания:

   Каждый полученный пакет вызывает аппаратное прерывание, что означает,
   что текущий процесс, выполняющийся на центральном процессоре сохранен,
   и подпрограмма программы обработки прерывания загружена на центральный
   процессор, чтобы обработать полученный пакет. После обработки пакета
   старый процесс загружается на центральный процессор снова. На системах
   с большой нагрузкой такое переключение может занимать уже значительное
   время. Используя уменьшение запроса на прерывание (также известное как
   управление IRQ) можно подавить прерывание, пока сетевая карта не
   заполнит свой буфер, а затем, вызвав прерывание, разом его опустошит.

   На Intel fxp(4) это выглядит так:
   %ifconfig fxp0 | head -1
       fxp0: flags=8843 mtu 1500
       # ifconfig fxp0 link0
       % ifconfig fxp0 | head -1
       fxp0: flags=9843 mtu 1500

   Обратите внимание:

   Когд флаг link0 установлен, вывод dmesg покажет,что карта работает в
   режиме управления IRQ. Если ваш fxp (4) плата не поддерживает
   уменьшение запроса на прерывание, флажки будут установлены, но Вы не
   будете видеть эту строку в dmesg:
   fxp0: Microcode loaded, int_delay: 1000 usec bundle_max: 6

   Внимание: Читайте man на свою карту, так как link0 могло выставить
   применение другого настроечного параметра.

   Совместное использование прерывания:

   Совместное использование сетевыми картами прерываний - неочевидный
   метод уменьшения времени. затрачиваемого на переключение между
   прерываниями.Как только прерывание было вызвано, все устройства на том
   прерывании будут проверены на наличие необработанных данных. В случае,
   если две карты, сохраняющие пакеты в порядке поступления в буфер
   совместно используют одно прерывание, и один из буферов полон, будет
   вызвано прерывание.

   Polling режим:

   Сетевые карты - устройства, управляемые прерываниями, то есть при
   получении пакета будет вызвано прерывание,так что драйвер знает, что
   есть пакет, который будет обработан. Как уже говорилось ранее, для
   загруженой системы, большой трафик, а соответственно и большое
   количество прерываний может стать проблемой. В Polling - режиме
   сетевая карта никогда не генерирует прерывание, а ждет, когда ОС
   опросит карту, накапливая тем временем информацю в буфере и надеясь,
   что он не переполнится. Этот Polling - драйвер обычно вызывается между
   двумя процессами, таким образом сокращающая время контекстного
   переключения.

   Хорошие драйвера могли бы переключать между IRQ и pollinfg режимами в
   случае если работа по прерываниям обнаруживает несколько раз подряд
   пустой буфер, и обратно, если буфер начинает переполняться. Пока что
   данная возможность на FreeBSD не реализована.

   Scatter/Gather и zero-copy:

   Пакеты состоят из заголовка и полезного груза на каждом уровне модели
   OSI. Если ваша сетевая карта может собрать заголовок и полезный груз
   от двух различных буферов, ядро не должно копировать оба буфера
   (нулевая копия) перед передачей, и таким образом эта особенность
   значительно улучшает работу. Системный вызов sendfile(2) может
   улучшить работу таких сетевых карт, так как это позволяет посылать
   данные в сокет без промежуточного хранения.

   Jumbo frames:

   Jumbo frames - это пакеты Ethernet, которые в шесть раз больше чем
   обычные 1500 байтов + заголовок Ethernet (9108 байтов). Фреймы только
   немного большие чем 1518 байтов называют baby jumbo frames. При
   использовании таких пакетов резко возрастает КПД сети, так как
   заголовок Ethernet остается тем же самым,то есть 20-байтовый IP и
   20-байтовую TCP, тогда как количество полезного груза увеличивается.

   Дополнительно большие пакеты уменьшают потребность во фрагментации,
   что снижает нагрузку на процессор. http: // www.uoregon.edu / ~
   joe/jumbo-clean-gear.html - содержит информацию по поддержке Jumbo
   frames.

   Установка максимального блока передачи данных на SysKonnect sk (4):
   # ifconfig sk0 mtu 8000 % ifconfig sk0 | head -1 sk0: flags=8843 mtu 8000

   Crypto поддержка:

   Очень немного плат могут провести IPsec кодирование аппаратно. Ни одна
   из них в настоящее время не поддерживается FreeBSD, хотя эти платы
   могут использоваться как стандартная сетевая плата, с планами на
   будущее.

   Сравнительная таблица:

   Driver name HW chksum IRQ mitigation Scatter/Gather Jumbo Crypto VLAN Notes
   
   rl(4)  n n n n n y don`t expect outstanding performance from this card :)
   fxp(4) n y/n n n n y Not all cards support IRQ mitigation.
   xl(4)  y n n n n y
   txp(4) y ? ? n n y currently there is no support for builtin HW ipsec acceleration
   sk(4)  y ? y 9000 n ?
   bge(4) y ? ? 9000 n y
   nge(4) y ? ? 9000 n y Jumbo frames >8170 Bytes need checksum offloading to be turned off
   ti(4)  ? ? y 9000 n y
   lge(4) y n ? 9000 n y VLAN support may be buggy
   sf(4)  y ? ? n n y
   em(4)  y ? ? 16114 n y Intel does not recommend using Jumbo frames for UDP traffic!

   Оптимизация пакетной фильтрации:

   Пакетные фильтры защищают сервер от злонамеренного трафика
   рассматривая каждый пакет. Оптимизация правил поможет уменьшить время,
   необходимое для анализа пакета и определения его дальнейшей судьбы.

   ipfilter:

   Анализирует список правил сверху донизу. заключение о судьбе пакета
   делается по последнему подходящему правилу, или когда применяется
   правило quick. Перемещение обычных правил в верх списка и конвертируя
   их к правилам quick улучшает работу. При настройки правил на
   нескольких интерфейсах, Вы Вы столкнетесь с ситуацией, что большинство
   фильтров установлено на внешнем интерфейсе, и внутренний трафик сетей
   нуждается только в ограниченном осмотре. По умолчанию ipf будет
   пробовать применить все внутренние и внешние правила к каждому пакету,
   таким образом нагружая процессор и вводя маленькую задержку при
   отправке пакетов во внутренней подсети. Правила фильтрации, основанные
   на ipf (5) позволяют создавать наборы равил sub-rulesets, чтобы пакеты
   проходили проверку только при пинадлежности к определнной группе, что
   позволяет не проверять пакеты внутреннего интерфейса. См. IPF Howto
   для более подробной информации.

   pf:

   pf -акетный фильтр OpenBSD. Он образовался как переписанный ipfilter,
   сохраняя совместимость настроек и синтаксиса правил, но быстро
   развиваясь предлагает несколько уникальных особенностей. Более
   подробную информацию можно найти здесь -
   http://pf4freebsd.love2party.net/ pf использует файлы конфигурации,
   которые в настоящее время превосходят ipfilter, основа одинакова.
   group и head считаются избыточными и более не поддерживаются, так как
   pf генерирует оптимизированный набор правил, основаннй на конфигурации
   сервера.

   Traffic shaping:

   Traffic shaping не будет увеличивать количество данных, посланных
   через интерфейс, но может изменить соотношение трафика. Напимер SSH
   довольно чувствителен к стабильности канала, тогда как скорость
   передачи ftp может варьироваться в широких пределах. ipfw (8) имеет
   собственный механизм под названием pipes, ipf (5) и pf полагаются на
   ALTQ.

   Внимание: ALTQ поддерживается ограниченным числом драйверов, таких как
   lo(4), fxp(4), xl(4), dc(4), rl(4), gx(4), ep(4), wi(4), и не
   поддерживается tun(4).

Приложения

   Apache:
   Быстродействие веб-сервера зависит в основном от мощности процессора.
   Будем считать это проблемой. не касающейся данной статьи и приведем
   следующие ссылки:
     * Official Apache 2.0 performance notes http://httpd.apache.org/docs/misc/perf-tuning.html
     * http://www.pantz.org/webservers/apache/tuningtips.shtml

   NFS:

   Ресурсы NFS используются для большого количества приложений, mount_nfs (8) 
   покажет все возможные варианты, которые могли бы повысить
   производительность сервера.
   
   Samba:
   
   В локальных сетях. где редки потери пакетов, Nagle алгоритм мог бы
   замедлить скорость передачи, так как позволяет находиться в сети
   только одному неподтвержденному пакету. Отключаем.
   Редактируем smb.conf:
       socket options = TCP_NODELAY

   дополнительные сведения можно найти в файле speed.txt, идущем вместе
   дистрибутивом samba.
   
   FTP:

   Серверы ftp можно разделить на несколько классов. Есть
   крупномасштабные сайты подобно ftp.freebsd.org, которые должны иметь
   дело с высоким количеством параллельных пользователей с разной
   скоростью подключения. А есть ftp, которые должны справиться с
   небольшим количеством клиентов на быстрых подключениях - например, в
   локальной сети. Программное обеспечение для сервера ftp выбирается в
   соответствии со стоящими задачами. В любом случае Вы должны выбрать
   сервер, который все еще поддерживается, чтобы удостовериться, что
   проблемы защиты получают требуемое внимание. В большинстве случаев
   больше (бесполезных) особенностей нуждается в большем количестве
   памяти и системного времени.

   vsftpd (http://vsftpd.beasts.org/) называет себя вероятно самым
   безопасным и самым быстрым сервером ftp для UNIX-подобных систем, и
   это возможно так.

Эталонное тестирование

   При каждом изменении конфигурации необходимо проверить быстродействие
   системы. В большинстве случаев простая статистика трафика в реальном
   масштабе времени и средства контроля эффективности помогут оценить
   производительность системы.

   Эта статья лишь поверхностно охватывает средства тестирования системы,
   хотя в интернете их великое множество. Советую обратиться к Linux

   Benchmark Suite Homepage.

   Измерение и контроль пропускной способности:
   Пассивный контроль сетевых устройств позволяет администратору
   наблюдать текущее состояние или снимок нагузки, тогда как активное
   измерение пропускной способности может использоваться, чтобы разыскать
   критические параметры и проверить стабильность сервера перед его
   "выходом в свет".

   systat:

   systat -ifstat 1 покажет сетевую статистику всех имеющихся сетевых
   интерейсов, systat-tcp 1 покажет соответственно статистику TCP
   соединений.

   slurm:

   slurm - базирурующееся на ncurses приложение, мониторящее загрузку
   сети, доступное в системе портов net/slurm или здесь - http://www.raisdorf.net/slurm/

   bing:

   bing - двухточечный инструмент измерения пропускной способности. В
   отличие от предыдущей версии (доступной на ftp://netsw.org/net/ip/audit/load/bing/) 
   генерирует флуд пакетов,  чтобы определить максимальную возможную сетевую 
   производительность  между двумя данными хостами.

   ttcp:

   Эта программа следует за подходом решения "в лоб" для определения
   пропускной способности. Используются две программы - одна как источник
   трафика, вторая используется для приема и измерения пропускной
   способности.
   % ./ttcp -srv
       ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp
       ttcp-r: socket

   В этот момент sink ждет единственного входящего подключения. ttcp -
   источник берет адрес IP для данных, которые будут переданы как
   параметры:
   % ./ttcp -t 10.11.12.13 < /dev/zero
       ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp ->
       10.11.12.13
       ttcp-t: socket
       ttcp-t: connect
       %

   Отменить предачи данных можно нажав Ctrl+C, время необходимое для
   получения сатистических данных - около 30 секунд. Данные появятся на
   принимающей стороне.
   ttcp-r: accept from 10.11.12.14
       ttcp-r: 584466432 bytes in 5.00 real seconds = 114153.60 KB/sec
       +++
       ttcp-r: 584466432 bytes in 3.33 CPU seconds = 171401.80 KB/cpu sec
       ttcp-r: 389722 I/O calls, msec/call = 0.01, calls/sec = 77944.40
       ttcp-r: 0.0user 3.2sys 0:05real 66%
       ttcp-r: buffer address 0x804c000
       %

   Определенное значение для подключения между двумя хостами примера -
   114153KB/sec, который является полной доступной скоростью Gbit. Это
   само значение бесполезно, если Вы не сохранили вывод предыдущего
   испытания ttcp. Взгляните не только на пропускную способность но также
   и на используемое процессорное время, так как большинство настроек
   включает задачи разгрузки центрального процессора и таким образом
   должно быть видимо в результатах испытаний.

   P.S. Перевод не претендует на безупречность, если что-то поломалось в
   ходе опробывания советов из этой статьи - я непричем!





Иcточник: http://www.dreamcatcher.ru/
Опубликована - 05.03.2005
Комментарии: (0) | FreeBSD | 2006-03-16

Установка и конфигурирование эмулятора Windows во FreeBSD

Установка и конфигурирование эмулятора Windows во FreeBSD


Эта статья является переводом текста Dru Lavigne.

Одним из многих достоинств FreeBSD, которое отчетливо становится видным, если на вашем компьютере установлена не одна операционная система, является то, что для доступа к данным находящимся в разделе другой операционной системы нет никакой надобности покидать FreeBSD. Другими словами вы можете просто смонтировать раздел в файловую систему FreeBSD и читать, писать или удалять файлы находящиеся в этом разделе. (Разумеется, поклонники Linux лишь хмыкнут – подобные возможности не уникальны и давно присутствуют в любимой ими операционной системе. Но что скажут поклонники Windows? – прим. переводчика.) Однако у вас может возникнуть вопрос: «А как обстоят дела с запуском исполняемых файлов?» Если ваша «другая» операционная система сделана корпорацией Майкрософт, и, кроме того, вы воспользуетесь эмулятором Windows (Wine), то на вашей FreeBSD вполне можно будет выполнять довольно большое количество Windows-приложений. (Кроме Windows-приложений, FreeBSD позволяет выполнять программы скомпилированные для операционной системы Linux. Поддержка Linux-приложений реализована гораздо полнее и лучше, чем поддержка Windows-программ. Достаточно сказать, например, что под FreeBSD прекрасно себя чувствует Linux-версия сервера баз данных Oracle версии 8 – прим. переводчика.)

В сегодняшней статье я хочу продемонстрировать процесс установки и использования эмулятора Wine. Если все пойдет нормально, то я рискну испытать судьбу, попробовав запустить какое-нибудь Windows-приложение на компьютере, на винчестере которого, кроме FreeBSD вообще ничего нет – ни одного раздела с софтом от Майкрософта.

Я поставлю Wine на двух машинах моей сети. На первой машине установлены Windows 98 и FreeBSD 4.3-RELEASE, выбор рабочей системы осуществляется в процессе загрузки. Вторая машина полностью управляется FreeBSD 4.3-RELEASE. Воспользовавшись аккаунтом суперпользователя я откомпилирую и установлю Wine на обеих машинах:

su -
Password:
cd /usr/ports/emulators/wine
make install clean

После того как Wine установлен, на обеих машинах необходимо проверить конфигурационные файлы ядра на наличие в них необходимых для работы Wine опций. Оставаясь под суперпользователем пишем:

cd /usr/src/sys/i386/conf
cp GENERIC WINE

Затем, используя мой любимый текстовый редактор, я открыл файл WINE для того, что бы убедиться в том, что в нем содержатся следующие строки:

options USER_LDT
options SYSVSHM
options SYSVSEM
options SYSVMSG

На моей FreeBSD 4.3-RELEASE, три опции SYS* уже были включены, так что мне пришлось добавить лишь параметр USER_LDT. Если вам тоже пришлось что-нибудь добавить, сохраните внесенные изменения и перекомпилируйте ядро:

/usr/sbin/config WINE
cd ../../compile/WINE
make depend && make && make install && reboot

В последней строке на самом деле я вызываю сразу четыре отдельных команды, символы «&&» означают, что следующая команда из списка будет выполнена только при условии успешного выполнения предыдущей команды. Если вы решитесь включить в список команду «reboot», убедитесь, что другие пользователи в это время ничего не делают на этой системе, поскольку система будет перезагружена немедленно после окончания этапа установки скомпилированного ядра.

После установки Wine, прилагающуюся к нему документацию можно будет прочитать при помощи команды man 1 wine, а так же посмотреть ее в каталоге /usr/local/share/doc/wine. Кроме того, я нашел очень полезное HOW-TO (см. http://www.la-sorciere.de/Wine-HOWTO/book1.html), которое может очень пригодиться при первой установке Wine.

Для начала давайте попробуем запустить Wine на системе на которой помимо FreeBSD установлена Windows 98. Для запуска Wine на этой машине мне придется преодолеть следующие этапы:

  1. Найти и где-нибудь смонтировать раздел Windows.
  2. Тщательно проверить и поправить конфигурационный файл Wine.
  3. Протестировать получившуюся систему запуском какого-нибудь Windows-приложения.

Поскольку установка операционной системы на этот компьютер была произведена довольно давно, я воспользуюсь утилитой sysinstall для того что бы восстановить в памяти карту распределения дискового пространства на винчестере. Под суперпользователем:

/stand/sysinstall
Configure
Fdisk
пробел ad0

И вот я вижу нечто подобное:

Offset Size(ST) End Name PType Desc
 0 63 62 - 6 unused
 63 4176837 4176899 ad0s1 2 fat
 4176900 4016250 8193149 ad0s2 3 freebsd

Для выхода из fdisk`а я нажал клавишу q, а затем покинул sysinstall несколько раз выбрав пункт «Cancel». Видно, что раздел Windows во FreeBSD имеет название ad0s1. Для того, что бы смонтировать этот раздел, сначала я создам для него точку монтирования под названием «dos»:

mkdir /dos

На всякий случай я проверю права доступа к новому каталогу:

ls -l / | grep dos
drwxr-xr-x 2 root wheel 512 Aug 31 13:07 dos

Все нормально, все пользователи могут «читать» и «выполнять», и лишь один root может «писать» файлы.

Перед тем, как смонтировать раздел Windows на постоянной основе при помощи файла /etc/fstab, я должен убедиться, что он может правильно монтироваться вручную:

mount -t msdos /dev/ad0s1 /dos

Заметьте, что в качестве типа файловой системы используется «msdos», название устройства «/dev/ad0s1», а точкой монтирования выступает каталог «/dos». Поскольку в результате выполнения команды я просто получил обратно приглашение к работе, система смонтирована корректно. Это можно проверить при помощи команды df:

df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s2a 97M 36M 53M 40% /
/dev/ad0s2f 1.7G 567M 1.0G 35% /usr
/dev/ad0s2e 19M 2.0M 16M 11% /var
procfs 4.0K 4.0K 0B 100% /proc
/dev/ad0s1 2.0G 783M 1.2G 38% /dos

Кроме того, я могу проверить содержимое смонтированного раздела при помощи команды ls. Я воспользуюсь ключом «-F» для того что бы названия каталогов отличались от названий файлов символом «/»:

ls -F /dos

AUTOEXEC.BAT* COMMAND.COM* MSDOS.SYS* SCANDISK.LOG*
BOOT.INI* CONFIG.SYS* My Documents/ SETUPLOG.TXT*
BOOTLOG.PRV* DETLOG.TXT* NETLOG.TXT* WINDOWS/
bootsect.bsd* IO.SYS* Program Files/ RECYCLED/
ntdetect.com* ntldr*

Если вы никогда прежде не монтировали файловые системы, то вероятно вам понадобится несколько минут что бы поиграться с командами «cd» и «ls». Имейте в виду, что многие файлы имеют названия в верхнем регистре, так что когда вы будете к ним обращаться, пишите их с учетом регистра, поскольку FreeBSD чувствительна к регистру. Мало того, некоторые файлы содержат в названии символы пробела. Для доступа к таким файлам вы можете попробовать напечатать первоначальные несколько букв такого файла и нажав клавишу «Tab» воспользоваться функцией автодополнения имени файла, или поставить перед пробелом в имени файла символ обратного слеша «»:

cd Program Files

Если вы хотите монтировать раздел Windows непосредственно во время загрузки, аккуратно добавьте следующую строку в файл /etc/fstab:

/dev/ad0s1 /dos msdos rw 0 0

Удостоверьтесь, что вы используете правильное название Windows-раздела, поскольку у вас оно может отличаться. Перед сохранением убедитесь, что вы не внесли в файл какой-нибудь ошибки. Я всегда стараюсь убедиться что мои изменения в файле fstab работоспособны следующим способом:

shutdown now
press enter when receive prompt back, then type exit

Как только вы вернетесь обратно, при помощи команды df -h, вы сможете убедиться что разделы смонтированы верно.

Теперь давайте отредактируем конфигурационный файл эмулятора Wine. В своем любимом текстовом редакторе откройте файл /usr/local/etc/wine.conf. Поскольку конфигурация Wine обычно не требует никаких изменений для работы, я сделаю в ней большие пропуски и покажу лишь участки куда вам придется внести некоторые изменения в соответствии с положением дел в вашей системе:

more /usr/local/etc/wine.conf
WINE REGISTRY Version 2
;; All keys relative to \Machine\Software\Wine\Wine\Config

<Вырезано>

[Drive A]
"Path" = "/mnt/fd0"
"Type" = "floppy"
"Label" = "Floppy"
"Serial" = "87654321"
"Device" = "/dev/fd0"

[Drive C]
"Path" = "/c"
"Type" = "hd"
"Label" = "MS-DOS"
"Filesystem" = "win95"

<Вырезано>

Вот тут следует остановиться, поскольку в этом месте необходимо внести изменения. Замените значение переменной Path с «/c» на название вашей точки монтирования. Поскольку у меня точка монтирования называется «/dos», я изменил эту строку следующим образом:

"Path" = "/dos"

Сохраните изменения. Я обнаружил, что для корректной работы Wine этот файл должен быть скопирован в домашний каталог пользователя. Под суперпользователем я произведу некоторые изменения в домашнем каталоге пользователя genisis:

mkdir ~genisis/.wine
chown genisis ~genisis/.wine
cp /usr/local/etc/wine.conf ~genisis/.wine/config

Обратите внимание, что при копировании в каталог .wine я переименовал конфигурационный файл в «config». На данном этапе я покину аккаунт суперпользователя, поскольку конфигурация окончена. Под пользователем genisis, я запущу сессию XWindow:

startx

Находясь в XWindow, в окне xterm`а, выберем для запуска какое-нибудь приложение:

cd /dos/WINDOWS
ls | more

Среди прочего я обнаружил файл PROGMAN.EXE. Интрига заключается в том, что это Диспетчер Программ Windows. Я решил посмотреть, смогу ли я запустить его в FreeBSD под эмуляцией Wine:

wine -winver win98 -managed PROGMAN.EXE

После нескольких секунд ожидания, я был поприветствован Диспетчером Программ. Щелкнув по меню «Файл», я выбрал пункт «Выполнить» и нажал на кнопку «Обзор». В результате этого я увидел обширный список файлов находящихся на моем Windows-разделе.

Теперь началось веселье. При помощи метода проб и ошибок я стал выяснять какие приложения я смогу запустить. Я начал с Калькулятора, поэтому выбрав CALC.EXE я нажал кнопку «Открыть», а затем кнопку «ОК». И, вуаля, я пользуюсь Калькулятором Windows. Вы можете просидеть ночь тестируя приложения на «запускаемость» или вы можете воспользоваться функцией поиска на любом из этих двух сайтов:

В базе первого сайта на момент написания статьи содержится 2704 приложения которые протестированы на совместимость с Wine. Второй сайт имеет более удобный дизайн, но находится в стадии разработки.

Теперь давайте сделаем что-нибудь поинтереснее. Я вошел под суперпользователем и решил проверить, могу ли я установить и запустить какое-нибудь Windows-приложение под эмуляцией Wine. Для поиска программ, я пошел на http://www.download.com.

Я щелкнул по ссылке «самые популярные» игры и увидел Solsuite 2001. Реклама обещала 282 различных пасьянса. Я выкачал инсталлятор, который назвался solsuite.exe и сохранил его в каталоге /dos.

Вернувшись в xterm`е я напечатал:

cd /dos
wine -winver win98 -managed solsuite.exe

И тут же получил сообщение об ошибке, гласящее об отсутствии каталога .wine. Давайте создадим в домашнем каталоге суперпользователя этот подкаталог и скопируем туда конфигурационный файл Wine:

mkdir ~/.wine
cp /usr/local/etc/wine.conf ~/.wine/config

Теперь, когда я повторил запуск wine, запустился мастер инсталляции программы. Я проследовал через все этапы установки и проследил за процессом копирования файлов. В самом конце инсталлятор завис, однако он сообщал, что до конца процесса установки осталось 0 минут, 0 секунд, поэтому я решил попытать счастья и для завершения установки воспользовался комбинацией «^c». Затем я набрал:

cd Program Files/SolSuite
wine -winver win98 -managed Solsuite.exe

Наступило время обзванивать соседей и хвастаться. Я успешно установил и запустил Windows-программу из FreeBSD и, кроме того, у меня возобновился свой интерес к карточным играм.

В качестве последнего теста, я перезагрузил компьютер в Windows 98. Там я нажал на кнопку «Пуск», и в меню «Программы» увидел новый пункт «Solsuite-Solitaire Card Games», внутри правда было пусто. Не испугавшись, я запустил проводник и дважды щелкнул по папке «Program Files», а затем вошел в каталог «Solsuite», где и обнаружил выполняемые файлы. Это хороший знак, подумал я. Я открыл в проводнике папку Windows, затем «Программы», а затем «Solsuite-Solitaire Card Games», и перетащив туда правой кнопкой мыши файл solsuite.exe, выбрал в появившемся контекстном меню пункт «Создать ярлык».

Теперь нажав «Пуск», «Программы», «Solsuite-Solitaire Card Games» и выбрав «Ярлык на SolSuite», я опять могу выбирать интересующий меня пасьянс. Я впечатлен.

Настало время для самого серьезного испытания. Я перехожу к компьютеру, на котором установлена только FreeBSD. Его жесткий диск полностью отформатирован в файловой системе UFS и, разумеется не содержит ни одного компонента Windows. (На самом деле уважаемый автор зря так пугает потенциальных пользователей Wine – он изначально разрабатывался для выполнения Windows-приложений без какого-либо использования кода Windows – прим. переводчика).

Я вошел в систему под суперпользователем и создам там несколько каталогов и пустых файлов, наличие которых предполагается Windows-программами:

su -
Password:
mkdir -p /usr/local/lib/win/windows
cd /usr/local/lib/win/windows
mkdir system
touch win.ini
cd system
touch shell.dll shell32.dll winsock.dll wsock32.dll

Помните как нам пришлось отредактировать одну строчку в файле /usr/local/etc/wine.conf, что бы она указывала на точку монтирования раздела Windows? Сейчас нам придется сделать это снова, правда указывать она будет на «поддельную» структуру Windows-каталогов:

[Drive C]
"Path" = "/usr/local/lib/win"

Затем я создам необходимые каталоги и скопирую конфигурационный файл суперпользователю и пользователю genisis:

mkdir ~/.wine
cp /usr/local/etc/wine.conf ~/.wine/config
mkdir ~genisis/.wine
chown genisis ~genisis/.wine
cp /usr/local/etc/wine.conf ~genisis/.wine/config

Оставаясь суперпользователем, я вернусь на http://www.download.com и загружу инсталлятор Solsuite 2001. Теперь я сохраню его в /usr/local/lib/win. Теперь запущу сессию XWindow, xterm и напечатаю:

cd /usr/local/lib/win
wine -winver win95 -managed solsuite.exe

Опять начнет выполняться инсталляционная программа. Я получил сообщение об ошибке, в котором говорилось о невозможности обнаружить файл «explorer.exe», но я успешно его проигнорировал. Когда все закончилось, я напечатал:

cd Program Files/SolSuite
wine -winver win95 -managed SolSuite.exe

И хотя это было немного медленнее (но это и более старый компьютер), и, кроме того, мне пришлось подстроить конфигурацию дисплея, но я все-таки смог поиграть в карточную игру написанную для Windows, на компьютере, который полностью выделен под FreeBSD. Человек с исследовательским складом натуры получит массу удовольствия от Wine.

Все вышесказанное говорит о том, что эмулятор Wine это программа из коллекции портов FreeBSD, с которой можно неплохо поразвлечься. Если в результате ваших экспериментов с Wine вам удастся запустить под ним программу, которая не включена в базу данных выполняемых под Wine программ, добавьте вашу запись в эту базу на любом из двух сайтов о которых я упомянул выше.



Иcточник: http://www.computerra.ru/
Опубликована - 03.03.2005
Комментарии: (0) | FreeBSD | 2006-03-16

Я живу в FreeBSD

Я живу в FreeBSD

Нередко приходится слышать рассуждения типа: "FreeBSD - прекрасная серверная платформа, но ей не место на рабочем компьютере. Повседневные задачи среднему пользователю проще выполнять на операционных системах типа Windows 98/NT". В ответ собеседник многозначительно кивает головой..

Но кто такой "средний пользователь"? Что такое "повседневные задачи"? Что означает "проще"? Подразумевается, что ответ на эти вопросы очевиден. Так ли это?

FreeBSD - UN*X-подобная операционная система, работающая на платформах Intel x86 и Alpha. Подробнее об этой системе - ее возможностях, истории и перспективах - можно прочитать в статье "BSD жила, живет и будет жить". Несмотря на то, что она датирована 1997 годом и выпуск FreeBSD 3.* в ней только предвкушается, чтение может оказаться достаточно занимательным. Может быть интересно также посетить web-сервер команды разработчиков FreeBSD и русский сайт, посвященный этой операционной системе. Последняя версия системы на настоящий момент- FreeBSD 3.2.

Безусловно, моя статья невероятно субъективна. Трудно оставаться объективным, говоря о столь личных вещах! (Собственно, мы именно субъективного взгляда от автора и хотели - прим. ред.) Я использую FreeBSD в качестве настольной системы уже не первый год; также на моем столе побывала OS/2, DOS и Windows (первая увиденная версия Windows несла гордое имя "Microsoft Windows 2.0" и поставлялась в комплекте с Aldus PageMaker). Попадались на жизненном пути и улыбающиеся Маки. В силу специфики работы (компьютерные сети, администрирование, программирование) также постоянно приходится иметь дело с Solaris, AIX и Windows NT. Все это рассказывается для того, чтобы подвести к ключевой мысли: FreeBSD - осознанный выбор. В ней мне хорошо и комфортно. Все, сказанное ниже - не теория, не дань моде, а повседневность. Однако все сказанное в статье применимо не только к FreeBSD, но и ко всему миру открытых систем - например, к OpenBSD или столь модному сегодня Linux'у.

Задумайтесь, почему общественное мнение (в формировании которого немалую роль играет СМИ) воспринимает Windows 95/NT как единственную систему для массового пользователя? Компьютерная индустрия в этом отношении просто уникальна. Сравним, например, с рынком аудиотехники - там прекрасно сосуществуют и дешевые корейские магнитолы, и музыкальные центры среднего класса, и дорогие hi-end решения - каждый может выбрать по себе; никому не приходит в голову, что одно решение можно навязать всем. Каждый выбирает то, что ему нравится и подходит для его кошелька.

Я предпочитаю иметь выбор и делать его. Специфика компьютерной отрасли такова, что качество и цена не всегда связаны (что, на самом деле, грустно!). Поэтому вполне реально претендовать на решение "выше среднего" по приемлемой цене (а то и бесплатно).

Итак, переходим к конкретике. Чтобы изложение было более полным, приведу описание машины, которая в настоящий момент является моим рабочим местом. Это Pentium-166, 64 MB RAM, 4 GB HDD, SoundBlaster AWE64, Diamond Stealth 64 VRAM, IBM P70 17" monitor, Intel EtherExpress Pro 10/100B, Logitech Trackman Marble FX (trackball); операционная система FreeBSD 2.*. Вряд ли стоит упоминать, что работает весь этот комплекс очень стабильно, перезагружаясь лишь тогда, когда этого хочу я, а не система.

Что мы видим в первую очередь, бросив заинтересованный взгляд на соседний монитор? Внешние проявления. Интерфейс.

Этот спор вечен - CLI (интерфейс командной строки) против GUI (графический интерфейс пользователя). Я больше склоняюсь в сторону CLI (он быстрее, если только Вы не занимаетесь рисованием в Photoshop'е), однако в работе пользуюсь и тем, и другим.

предпочитаю freebsd систему работы интерфейс приходится использую windows postscript компьютере удобно система использовать
 всегда позволяет unix помощью vim tex работает

Я использую графическую систему X Window System; разрешение экрана - 1152x864, 16bit color. Внешний вид окон и экрана не "вшит" в систему жестко и полностью определяется внешной программой, называемой "Диспетчер Окон" (Window Manager); в зависимости от желания пользователя, его экран может напоминать экран Windows'95, NeXT'а, Mac'а или выглядеть как-то еще. Это удобная возможность позволяет подобрать для себя именно тот "look-and-feel", которые тебя устраивает. Удобству и неудобству графического интерфейса, мыслям по его обустройству можно посвятить отдельную статью.

Я предпочитаю диспетчер окон fvwm2. Компактный, быстрый, надежный, настраивающийся, он меня полностью удовлетворяет. Рабочее пространство состоит из четырех виртуальных экранов, между которыми можно свободно переключаться с помощью клавиш (или мыши).

Кстати, мышке я предпочитаю трекбол - но вполне конкретную модель, Logitech TrackMan Marble FX. Изумительная вещь.

предпочитаю freebsd систему работы интерфейс приходится использую windows postscript компьютере удобно система использовать
 всегда позволяет unix помощью vim tex работает

Большую часть моего рабочего времени составляет редактирование текстов (от исходного кода на Си до файлов конфигурации какой-либо системы), поэтому удобный текстовый редактор - вещь немаловажная. Я предпочитаю vi, вернее, его современную разновидность: VIM.

Vi, по мнению многих, слишком необычный и неудобный текстовый редактор; система команд и идеология резко отличается от общепринятого (опять эти обобщения!) подхода. Давно, в молодости, я выходил из редактора "vi" с помощью кнопки Reset, потому что просто не мог понять, как это сделать иначе.

Но необычность интерфейса не означает его неудачности. Взглянем на интерфейс такого средства для создания письменных текстов, как обыкновенный карандаш: мы тратим довольно большое количество времени на то, чтобы научиться писать, но более никогда об этом не задумываемся. Мы просто пишем! Вот он, идеальный интерфейс.

Текстовый редактор - важный инструмент, и я готов потратить некоторое время на то, чтобы освоить его в совершенстве. Я совсем не хочу иметь "интуитивно- понятный" редактор, который использует крупные пиктограммы и меню. Мой любимый vim управляется исключительно с клавиатуры - мне даже не нужно использовать мышь или стрелки. Работает vi на любой платформе (знание vi - обязательное умение любого системного администратора); потребляет мало ресурсов, позволяет работать очень быстро и эффективно (после того, как он будет освоен, конечно :).

Я пользуюсь Vim'ом для программирования - у него прекрасная поддержка свойственных для этого задач, от общепринятого выделения цветом синтаксиса до специфических возможностей (например, находясь на переменной, я могу мгновенно перескочить на ее определение). Я использую Vim для редактирования HTML-страниц. Я использую Vim для сочинения рассказов. Я использую Vim для всего!

Поскольку Unix задумывался как система работы с текстами/файлами, средства работы с текстами (в том числе и для пакетной, неинтерактивной обработки) в нем чрезвычайно развиты. Столкнувшись в Windows в необходимостью переименовать три десятка файлов по некоторому принципу (например, отрезать у всех файлов расширение ".gif" и приписать спереди порядковый номер), чувствуешь себя как без рук без привычной Unix-оболочки и стандартных Unix-средств. В FreeBSD на получение результата уходит менее минуты.

Конечно, порой необходимо оформить тексты так, чтобы они красиво выглядели на печати. Я использую для этого TeX, издательскую систему, разработанную Дональдом Кнутом; для редактирования TeX-кода применяю тот же vim (хоть пробовал и "более визуальную" систему Lyx). TeX распространяется в различных дистрибутивах, я выбрал для себя TeTeX. Из LaTeX-файлов легко получить хоть PostScript (который быстро и красиво распечатывается на нашем HP LaserJet 5000L), хоть PDF. Если существующий принтер не поддерживает PostScript, можно воспользоваться программным интерпретатором (например, GhostScript от Aladdin Software). Утилиты работы с TeX, PostScript очень мощны; например, для того, чтобы напечатать существующий PostScript-файл в виде книжки-брошюрки, необходимо выполнить лишь несколько команд (уменьшить масштаб страниц, перетасовать их, развернуть четные и т.д.). Попробуйте-ка добиться этого в Microsoft Word!

предпочитаю freebsd систему работы интерфейс приходится использую windows postscript компьютере удобно система использовать
 всегда позволяет unix помощью vim tex работает

Мощь TeX'а в том, что это не просто способ раскрасить текст шрифтами, но настоящая издательская система. Поэтому создаваемые документы (порой имеющие сложную структуру) выглядят строго и красиво. При этом можно не бояться, что файл по-разному распечатается на разных принтерах, что где-то не прочитается... кроме того, можно сосредоточится на сути документа, а не на его оформлении - TeX постарается все сделать сам.

TeX очень нетребователен к ресурсам машины. Компилятор TeX'а работает без особых проблем на моей домашней 486DX2/66 16MB (под FreeBSD 3.*).

Теоретически можно использовать и любой из офисных пакетов, что существуют под Unix - например, StarOffice, Applix или Corel WordPerfect. Однако я сторонник старого доброго TeX'а и vim'а, как по идеологическим (StarOffice должен был бы называться скорее "Windows'95 for Unix"), так и по практическим причинам (нелюбовь к монстрообразности что StarOffice, что Corel WordPerfect)...

Для создания растровой графики под Unix'ом обычно используют gimp, но получается так, что мне практически не приходится этим заниматься. Если приходится - запускаю на втором домашнем компьютере Photoshop, Illustrator или CorelDraw!

предпочитаю freebsd систему работы интерфейс приходится использую windows postscript компьютере удобно система использовать
 всегда позволяет unix помощью vim tex работает

Однако просматривать картинки приходится часто и проблем с этим нет. В последнее время появилось много новых программ просмотра графики, но я по-старинке предпочитаю xv. Он позволяет не только просмотреть картинку, но и поправить яркость, контрастность, цветовой баланс... Для пакетной обработки ("сконвертировать 20 Photoshop-файлов в JPEG-файлы") исключительно удобно пользоваться пакетом Image Magic.

Нет проблем и с программами просмотра других форматов; например, PostScript я смотрю с помощью gv (он использует GhostScript в качестве интерпретатора); для просмотра MPEG'ов можно использовать xanim или коммерческий MpegTV.

Переходим к Интернету; и начинаем с главного - с электронной почты. Моя машина сама является почтовым сервером (я использую Postfix), и потому не зависит от других. Приходящая почта автоматически фильтруется по различным признакам и разбрасывается по различным папкам (с помощью procmail). Я подписан на несколько списков рассылки с очень большим трафиком и без автоматической фильтрации почты я бы, пожалуй, долго не прожил. Состояние папок всегда отображается в левом верхнем углу экрана; я вижу, сколько непрочитанных писем лежит в каждой папке; щелкнув левой клавишей, вижу заголовки писем; щелчок средней клавишей автоматически запускает программу чтения почты (описываю это так подробно, чтобы дать представление о том, что жить в FreeBSD не менее удобно, чем в Windows).

Для чтения пришедших писем и написания ответов я использую mutt, очень мощную и функциональную программу. Для чтения новостей используется slrn.

Web-браузеры - Netscape и текстовый Lynx. Жду выхода Mozilla, очень хочется верить, что она получится компактнее, "совместимее" и быстрее. Иногда нужны средства для неинтерактивной работы с web (предположим, сделать копию какого-то набора web-страничек) - для такого случая есть достаточно много программ, я предпочитаю wget и w3mir.

Естественно, на компьютере работает локальный web-сервер, который несет мою домашнюю страничку и который используется для различных проектов; сервер называется boa, черезвычайно компактен и работает очень быстро (впрочем, возможностей у него немного: статические html-странички и CGI-скрипты). Boa я использую не потому, что не работает Apache (прекрасно работает), а потому, что он мне очень нравится.

Для программирования я использую GNU C/C++ compiler, gdb (отладчик) и порой DDD - графический интерфейс к gdb. На компьютере стоит система управления версиями (CVS, RCS), что позволяет мне удобно вести мои проекты.

В дереве CVS у меня хранятся и тексты программ, которые я пишу; и документы, которые я создаю; и web-странички, что лежат у меня на сервере. Очень удобно - всегда можно вернуться к предыдущей версии, посмотреть, когда, что и где изменялось (для этого можно использовать web-интерфейс к CVS, cvsweb.cgi).

Я не играю на работе в игрушки, однако Doom, Quake и другие игры, выпущенные под Linux, хорошо работают на FreeBSD. О качестве linux-эмуляции говорит тот факт, что выпущенная недавно Quake3 preview (Arena) прекрасно работает под FreeBSD: с графическим ускорителем, со звуком.

Мощности компьютера вполне хватает на то, чтобы воспроизводить в фоновом режиме mp3-файлы (с ними веселее :), тем более что проигрыватель mpg123 (http://mpg.123.org) считается одним из лучших mp3 decode engine.

Под FreeBSD не составляет сложности найти клиента для IRC или ICQ. Я предпочитаю tirc.

Конечно, помимо пользовательских приложений, на системе работают и системные программы - как уже упомнятые Postfix, Boa, анонимный ftp-сервер и т.п. Несмотря на это, реакция системы на действия человека исключительно достойна и быстра; интерактивная работа очень комфортна.

Все перечисленное выше программное обеспечение (за исключением одной-двух программ) распространяется свободно.

Как уже было сказано, дома я использую FreeBSD на 486DX2/66 16RAM, 150MB HDD. Помимо всех своих обязанностей, эта машина играет роль маршрутизатора с NAT (Network Address Translation) для нашей маленькой домашней сети из 2-х машин (на второй работает Windows'95, сеть - 10 mbit коаксиал). В результате и я, и моя жена можем пользоваться Интернетом одновременно, что, несомненно, делает жизнь проще. В планах - поставить VT100-терминал для кошки.

Установка ПО очень проста - FreeBSD обладает специальной системой "ports and packages", позволяющая установить программное обеспечение одной-двумя командами. Выбор его чрезвычайно широк. Система поставляется с полными исходными текстами, и Вы всегда можете обратиться к ним, чтобы понять, как работает какая-то конкретная утилита или поправить что-нибудь (естественно, это требует соответствующей квалификации).

Таким образом, мне полностью хватает FreeBSD в моей повседневной жизни. Я надеюсь, что эта маленькая статья поможет Вам поверить, что жить под FreeBSD комфортно и приятно. Почему бы это не попробовать и Вам? Дружелюбный мир открытых систем и свободного программного обеспечения ждут Вас!

Комментарии: (0) | FreeBSD | 2006-03-20

Пошаговая установка FreeBSD (со скриншотами)

«Пошаговая установка FreeBSD (со скриншотами)»

       Я буду рассматривать процесс установки ОС FreeBSD-5.3-RELEASE, но так как установщик не менялся очень давно, практически все описанное в этой статье справедливо и для более ранних версий. В моем случае установка будет производиться с CD-ROM'а.
   
       В биосе (BIOS) компьютера задаем загрузку с CD-ROM'а, вставляем диск с дистрибутивом в привод и перезагружаемся. Мы видим меню программы sysinstall:
   
   
   
    Ее можно вызывать и после установки для некоторых настроек, но я бы не рекомендовал. В большинстве случаев подходит тип установки «standart», который я и выбрал. Другие типы установки нужны для тех, кому надо что-то настроить нестандартно или тем, кто точно знает, что ему нужно, чтобы не устанавливать лишнее.
   
       Первым делом нам необходимо создать на жестком диске раздел для установки ОС, что нам и предлагается сделать:
   
   
   
       Мы видим список уже существующих разделов и свободное место (все цифры даны в байтах, нажимая «z» можно переключаться между вариантами). Чтобы создать раздел, надо поставить курсор на полоску с указанным количеством свободного места на диске и нажать «c» (create). Вводим желаемый размер раздела (по умолчанию предлагается использовать все доступное место). Если вы хотите использовать не все место, то надо задать количество (чтобы указать количество в мегабайтах надо в конце дописать MB, например 4096MB, по умолчанию предполагается что размер вводится в секторах) . Далее задаем тип (оставляем 165). Удалить раздел можно нажатием «d» (delete). Внимание!Будьте осторожны на этой стадии — можно легким движением руки удалить нужные разделы ;) Теперь сохраняем изменения — «w», и завершаем — «q». Далее переходим в меню создания разделов файловой системы FreeBSD.
   
       Здесь есть два варианта: доверится автоматическому процессу, нажав «a» (auto) или же вручную создать, нажимая «c» (create, курсор должен находится вверху на строчке с нашим разделом для FreeBSD). Если вы решили создавать вручную, то в диалоге создания раздела файловой системы надо будет вести имя и размер (размер по умолчанию вводится в секторах, чтобы указывать его в мегабайтах, надо в коне цифры дописывать MB, например 256MB).
   
   
   
   
   
       Разделы, обязательные для создания:
   
/
/swap
/var
/tmp
/usr
   
       В принципе, автоматического распределения вполне достаточно, но я бы посоветовал сделать вручную. Сначала посмотреть, что предложит нам установщик, нажав «a», записать эти значения, затем удалить их — «d» и сделать по своему усмотрению. Могу предложить следующие размеры:
   
/ 128 Mb
/swap RAM*2 или больше (RAM -- размер оперативной памяти компьютера)
/var сервер: 2Gb, домашний компьютер: 128 Mb
/tmp сервер: 1 Gb, домашний компьютер: 64 Mb
/usr все остальное

   
       Когда мы выбрали размеры разделов, можем, нажав «w» сохранить их и «q», чтобы продолжить. Будет предложено установить менеджер загрузки — надо выбрать этот вариант, если вы хотите чтобы на вашем компьютере совместно жили FreeBSD и, например, Windows или другая ОС (Install the FreeBSD bootmanager).
   
   
   
   
       Если же на компьютере планируется только FreeBSD, то отказываемся от менеджера загрузки (Standart). Последний пункт (None) можно выбрать, в случае если на компьютере уже была установлена ОС FreeBSD и изменять загрузчик на жестком диске нет необходимости.
   
       В этом месте мы выбираем, что установить дополнительно: исходные тексты ОС, документация и пр. В большинстве случаев достаточно просто установить все. Но лучше выбрать custom и там отметить: base, crypto, manpages, doc, src (можно все исходники, но если экономим место, но будем пересобирать ядро, то только sys), ports, compat4x (некоторые программы могут вести себя странно, если не установлен этот режим совместимости).
   
   
   
       Далее жмем exit, подтверждаем, что хотим установить ОС FreeBSD, и установка начнется.
   
   
   
       Вот файлы скопированы.
   
   
   
       Теперь необходимо задать некоторые настройки системы. Первым делом можно настроить SLIP/PPP-устройство (если оно есть). Это обычно выделенная линия в интернет. если такой вариант есть, то в диалоге соглашаемся, нажав «YES», выбираем внешний интерфейс (обычно ed0), указываем нужные настройки:
   
   
   
       есть ли поддержка протокола IPv6?
   
   
   
       Конфигурация DHCP, IP-адрес компьютера и гейта (компьютера, через который происходит выход в интернет; все эти настройки необходимо узнать у провайдера).
   
   
   
       Затем нас спрашивают, желаем ли мы сразу же включить этот интерфейс.
   
   
   
       Следом идут вопросы:
   
    — хотите ли вы, чтобы этот компьютер служил гейтом для других?
    — хотите ли вы настроить программу inetd и сервисы, которая она предоставляет? (если компьютер используется как сервер, то настроить надо, можно, конечно, все те же сервисы запустить и без помощи inetd, но это уже дело вкуса).
   
   
   
   
   
    — хотите ли разрешить доступ к компьютеру удаленно по протоколу ssh (secure shell). Если необходим удаленный доступ, то советую использовать именно ssh, а telnet отключить т.к. telnet — очень небезопасный сервис.
   
   
   
    — надо ли разрешить анонимный доступ к машине по ftp? (конечно же, начиная с определенной папки, а не ко всему диску ;)
   
   
   
    — используется ли машина в качестве NFS-сервера и клиента? (Network File System)
    — будем ли настраивать консоль? (надо настроить русский язык, так что выбираем да, заходим по очереди во все категории и выбираем пункт с пометкой «russian» — русский, затем нажимаем «exit»)
   
   
   
   
    — предлагается настроить часы компьютера. Если вы выбрали да, то дальше последуют следующие вопросы:
   
    — настроены ли часы этого компьютера на международное время? (если да, выбираем «YES», если же они настроены на местное время, или вы не уверены — «NO»)
    — предлагается выбрать регион из списка:
   
   
   
    — страна;
    —, что географически ближе всего к вашему городу;
    — предлагается аббревиатура местности, и вопрос «похоже ли это на правду»? Если нет, надо будет выбрать снова.)
   
   
   
    — устанавливать ли программу для совместимости с Linux-системами? (если ее установить, то можно будет запускать программы для Linux. Если компьютер для дома, советую установить.)
   
   
   
    — есть ли мышь? :) (думаю, вы выберете «YES», в диалоге надо указать тип мыши, порт (для USB выбирайте BusMouse), и нажать «enable». Конфигуратор спросит, «заработала ли мышь?», надо согласится. Возможно, сразу мышь не заработает, но после перезагрузки обычно все мыши определяются и работают на ура).
   
   
   
   
   
    — диалог выбора дополнительных программ для установки. Программы разбиты по категориям. Советую просмотреть все. Название обычно отражает назначение программы, и вы легко сможете выбрать нужные (конечно, если вы хоть немного знаете английский).
   
   
   
   
   
       Здесь все зависит от задачи, для которой устанавливается FreeBSD:
   
    — если это сервер, то надо выбрать какие-либо сетевые программы (apache, samba и т.д.);
    — если же это ОС на домашнем компьютере, то логично будет установить систему X-Window (графический сервер) и мультимедийные программы.
   
       Далее необходимо добавить пользователей ОС, т.к. работать под root'ом (администратор) может быть опасно. В диалоге надо ответить утвердительно на предложение добавить пользователей:
   
   
   
       В меню будет два пункта для работы с группами и с пользователями:
   
   
   
       Сейчас я покажу пример настроек для пользователя vasya, который входит в группу wheel (группа администраторов) — это необходимо, чтобы он мог в будущем получать права root командой su. Если пользователь не входит в группу wheel, то он не сможет получить права суперпользователя (это сделано из соображений безопасности).
   
   
   
       После того, как вы настроили группы и пользователей, нажимайте exit. Появится приглашение для задания пароля пользователя root.
   
   
   
       На этом установка ОС FreeBSD завершена! Теперь необходимо настроить ее для своих нужд: сделать локализацию шрифтов в KOI8-R или CP-1251, настроить все сервисы, которые будет предоставлять ОС и т.д. Информацию о том, как это делать, можно найти на сайтах bsdekaterinburg.ru, nixp.ru, а также в handbook (настольная книга пользователей FreeBSD; она доступна на сайте freebsd.org.ru, а также, если вы устанавливали документацию, на жестком диске: file:///usr/share/doc/ru_RU.KOI8-R/books/handbook/index.html).
   
       А вот так выглядит рабочий стол во FreeBSD на моем домашнем компьютере:
   
   
   
   
Автор: dmq
E-mail: dmq на bouncer точка ru
URL: http://mura.org.ru
P.S. Советами помогал anbioZz.
Комментарии: (0) | FreeBSD | 2006-04-02


Страница 1 из 41234 »