- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF124:BSD
Материал из Linuxformat.
Содержание |
BSD: Приручаем демона
- Считается, что он мог бы занять нишу Linux, если бы не юридические проблемы с AT&T в начале 90-х. Но история не терпит сослагательного наклонения, и Евгений Зобнин разбирается, какое место занимает BSD в современном мире.
Так уж сложилось исторически, что системы семейcтва BSD, истинные наследники Unix, остались в тени более разрекламированного конкурента в лице Linux. А между тем, у BSD есть масса достоинств, которыми «пингвин» в ближайшее время обладать не сможет.
Что может дать пользователю, администратору или программисту BSD-система? Меньшую поддержку оборудования, отсутствие коммерческого ПО или устаревшую файловую систему? BSD заслужили славу вечно догоняющих ОС, которым «до Linux» еще лет пять; но стоит ли судить о труде столь прославленной команды разработчиков по крикам форумных троллей? Попробуем разобраться в этом вопросе.
FreeBSD: живая история
На сегодня существуют четыре ОС, основанные на коде давно почившего варианта Unix, разработанного в Университете Беркли. Это NetBSD, OpenBSD, DragonFly BSD и FreeBSD. Первые три рассчитаны на достаточно узкий круг задач, и только FreeBSD движется по пути всестороннего развития и готовности играть роль ОС общего назначения. FreeBSD одинаково хорошо подходит как для повседневного применения рядовым пользователем, так и для поддержки высоконагруженного сервера, маршрутизатора или балансировщика нагрузки – всех тех областей, где Linux зарекомендовал себя с лучшей стороны и пользуется большей популярностью. Почему же тогда FreeBSD продолжает собирать вокруг себя массы приверженцев и все никак не отдает концы, чего многие недальновидные «профи» ожидают уже на протяжении 10 лет? Ответить на этот вопрос не так просто, но мы постараемся это сделать.
FreeBSD монолитна.
Разработкой всех компонентов ОС, начиная от драйверов и заканчивая стандартными POSIX-утилитами, занимается одна команда. А значит, пользуясь FreeBSD, вы всегда будете чувствовать себя «в своей тарелке». Если для настройки терминала вы брали vidcontrol, то для клавиатуры возьмете kbdcontrol, а для жесткого диска – atacontrol. Во FreeBSD вы никогда не увидите двух утилит, выполняющих одинаковые действия (как ifconfig и ip в Linux): у каждой, даже самой простой программы есть свое назначение и место в системе. Вы не запутаетесь в выборе планировщика заданий (различные варианты Cron в Linux) или службы Syslog, не наткнетесь на парадоксальпарадоксальные различия между методами передачи аргументов командной строки. Все во FreeBSD подчинено единым правилам и хорошо согласовано.
FreeBSD не создает лишних сложностей.
Она проста, но не как Ubuntu, а как Slackware и Arch. Особую эстетику ОС можно заметить на всех уровнях, начиная от настройки ядра (для чего используется простой, понятный и хорошо прокомментированный текстовый файл, в сравнении с которым /usr/src/linux/.config кажется инопланетным языком) и заканчивая RAID и логическими томами. Все, кто создавал LVM в Linux, знают, что эта работа требует долгого медитирования и проникновения в философию используемого инструмента. Во FreeBSD все на порядок проще и разумнее: одна-две простых наглядных команды – и программный RAID готов (и это без ущерба гибкости и функциональности). Вместо размазывания настроек по множеству конфигурационных файлов, все параметры системы хранятся в /etc/rc.conf. Модули ядра не разбросаны по ветвистому дереву каталогов, а аккуратно сложены в одном месте. Во FreeBSD нет пакетов со странными и не всегда отражающими содержимое названиями (coreutils, util-linux), весь базовый набор приложений и библиотек устанавливается по умолчанию и не подчиняется пакетному менеджеру (но может обновляться с помощью специальной утилиты).
FreeBSD едина.
Сторонние дистрибутивы можно пересчитать по пальцам одной руки, и это при том, что процент их использования несоизмеримо мал в сравнении с официальной версией, доступной на http://www.freebsd.org. А это значит, что используя FreeBSD, вы (почти) никогда не наткнетесь на нестыковки (как это часто бывает с Linux), сможете применять любые советы, найденные в сети, без опасения, что они не подойдут для вашего варианта ОС, а также получите доступ к всеобъемлющему руководству (FreeBSD Handbook), написанному тысячами пользователей ОС по всему миру и переведенному на многие языки (да, и русский тоже).
FreeBSD технологична.
Она оснащена сразу тремя брандмауэрами (в том числе наиболее продвинутым во всем Unix-мире pf из операционной системы OpenBSD), включает порты ZFS и универсального трассировщика DTrace из OpenSolaris (которые не могут быть перенесены в Linux из-за лицензионных разногласий). Для FreeBSD реализована единственная в своем роде модульная система GEOM, которая позволяет пропускать все операции ввода- вывода через цепочку специальных модулей, производящих определенные действия (например, шифрование, разбиение на логические разделы, ведение журнала транзакций). Это чрезвычайно мощный инструмент, благодаря которому администратор может выполнять с записываемой или считываемой информацией самые невообразимые действия, используя лишь нескольких простых команд. Подсистема NetGraph наделяет такими же свойствами и сетевой стек, позволяя создавать самые причудливые схемы туннелирования, шифрования, приоритизации, инкапсуляции трафика (и все это на уровне, достойном дорогостоящего оборудования от Cisco).
FreeBSD производительна.
Не так давно код FreeBSD подвергся значительной переработке, в результате чего ОС стала отлично масштабироваться на SMP-системах, работающих в условиях высокой нагрузки. Последние тесты показывают, что в большинстве задач FreeBSD не отстает, а иногда даже и опережает Linux.
FreeBSD «дружит» с Linux.
Она оснащена слоем совместимости, благодаря чему пользователь может запускать коммерческие Linux-приложения, недоступные для FreeBSD. Причем способ их установки (вместе со всеми библиотеками) не отличается от стандартного и сводится к выполнению трех простых команд (например, cd /usr/ports/games/linux-quake3; make; make install clean).
За всеми этими достоинствами скрывается и несколько досадных недостатков, к коим можно отнести не такой полный (но тем не менее вполне достаточный) спектр поддерживаемого оборудования (главная проблема – web-камеры и нестандартные гаджеты, а также отсутствие проприетарных драйверов для видеокарт ATI), низкий по современным меркам уровень производительности стандартной файловой системы (FFS), анархичный способ установки ОС (инсталлятор с псевдо-графическим интерфейсом), а также консерватизм команды разработчиков, который сдерживает появление инноваций.
От Linux к FreeBSD
Неискушенный пользователь, впервые увидевший FreeBSD в действии, вряд ли сможет отличить ее от Linux. Все те же KDE и Gnome, все тот же Firefox, эффекты рабочего стола и огромный набор сторонних приложений, доступных из единого репозитория. Различия начинаются, если вы решаете копнуть глубже и ознакомиться со внутренностями ОС, и простираются от довольно замысловатого способа именования дисков и сетевых адаптеров и до способа установки стороннего ПО.
Мы опишем FreeBSD такой, какой ее увидит линуксоид, собравшийся попробовать другой вариант Unix. Если «фря» вам уже знакома, то вы вряд ли узнаете из следующего раздела что-то новое, а вот новичкам он будет весьма и весьма полезен.
Установка
Полная схема именования дисков и разделов во FreeBSD выглядит так: имя устройства (см. ниже), номер диска (начиная с нуля), буква ‘s’, за которой следует номер раздела (слайса), буквенное обозначение подраздела (‘c’ ссылается на раздел в целом).
- ad – (S)ATA-диск;
- acd – ATAPI CD-ROM;
- da – SCSI-диск или Flash-накопитель.
FreeBSD распространяется в виде загрузочных CD- или DVD-образов. В первом случае вам предложат 6 дисков, из которых можно взять только три: 7.2‑RELEASE-i386‑disc{1,2,3}.iso. Образы 7.2‑RELEASE-i386‑{bootonly,livefs,docs}.iso содержат минимальный инсталлятор, используемый для установки ОС по сети, загружаемый LiveCD для восстановления системы и коллекцию документации. Скачав DVD-образ 7.2‑RELEASE-i386‑dvd1.iso.gz, вы получите все вышеперечисленное в одном флаконе. Образы доступны как с официальных FTP-зеркал, например, ftp://ftp.ru.freebsd.org/pub/FreeBSD/releases/i386/ISOIMAGES/7.2/, так и с torrent-трекера, располагающегося по адресу http://torrents.freebsd.org:8080, и DVD этого номера.
Скачав образ, создайте на жестком диске раздел (10 ГБ будет достаточно). Убедитесь, что он основной, а не логический, иначе FreeBSD не сможет загрузиться. Если на жестком диске установлен Linux и вы не хотите потерять возможность его загрузки, откройте файл /boot/grub/grub.conf и добавьте в него следующие строки:
title FreeBSD 7.2 root (hd0,2) makeactive chainloader +1
Закомментируйте строку hiddenmenu, если она имеет место быть. В опции root укажите корректный номер раздела, который вы выделили для FreeBSD (hd0,2 – это /dev/sda3 в терминологии Linux). Запишите образы на CD-R, вставьте первый диск в привод и перезагрузите ПК.
Установщик ОС встретит вас предложением выбрать страну вашего проживания. Прокрутите список вверх, найдите строку “182 Russian Federation» и нажмите Enter. Далее следует указать раскладку клавиатуры (примите вариант по умолчанию), и после нажатия Enter вы увидите главное окно инсталлятора FreeBSD – sysinstall. Выберите опцию «Standard» для начала установки ОС.
В появившемся окне редактора найдите созданный вами ранее раздел, выберите его и нажмите клавишу t для указания типа. В открывшемся окне введите цифры 165 и нажмите Enter. Обратите внимание на то, что FreeBSD использует другую схему именования дисков, так что sda3 в Linux для FreeBSD будет выглядеть как ad0s3, то есть третий раздел («слайс») на первом жестком диске (нумерация которых начинается с нуля), подключенном к (S)ATA-каналу. Нажмите q для подтверждения изменений. В следующем окне выберите пункт «none», если не хoтите затереть уже существующий загрузчик, или BootMgr в противном случае.
Следующий этап – создание так называемых подразделов (или просто разделов на языке FreeBSD). Не углубляясь в детали, скажу, что в отличие от Linux, BSD-системы используют не стандартную DOS-разметку диска (основные и логические разделы), а свою собственную. Это значит, что внутри выделенного вами основного DOS-раздела FreeBSD должна создать набор подразделов, понятных только ей и не видных ни в Linux, ни в Windows. Эта операция имеет свою специфику и подводные камни, поэтому я рекомендую просто нажать клавишу A, а затем Q, чтобы установщик сам разметил раздел и перешел к следующему этапу.
Далее вас встретит окно выбора компонентов установки; отметьте пункт «All» и нажмите Enter, в открывшемся окне подтверждения установки коллекции портов вновь нажмите Enter, затем выберите пункт «X Exit» для выхода из окна.
В диалоге выбора источника установки нажмите клавишу Enter для указания первого пункта (CD/DVD), и в следующем окне, предупреждающем о необратимости всех последующих действий инсталлятора, вновь нажмите Enter. С этого момента начинается установка базовой системы (загрузчик, ядро, модули, утилиты командной строки, библиотеки, документация).
После завершения установки и показа поздравительного сообщения вам предложат произвести базовую настройку системы, которая охватывает:
- настройку Ethernet и SLIP/PPP;
- активирование функции маршрутизатора;
- включение демона inetd и сервисов, которые он обслуживает;
- включение возможности входа по SSH;
- анонимный доступ по протоколу FTP;
- включение NFS-сервера и клиента;
- настройку консоли;
- выбор часового пояса;
- активирование слоя совместимости с Linux;
- включение поддержки мыши.
Сервисы во FreeBSD запускаются с помощью скриптов, расположенных в каталогах /etc/rc.d (сервисы базовой системы) и /usr/local/etc/rc.d (сервисы, устанавливаемые с помощью системы портов или пакетного менеджера). За каждым сервисом закреплен скрипт, принимающий аргументы start, stop и restart, поэтому для запуска, например, SSH вы должны использовать команду:
# /etc/rc.d/sshd start
Нет смысла настраивать все это через интерфейс установщика, потому как в конечном счете это приведет к автоматическому редактированию конфигурационного файла /etc/rc.conf, хороший пример которого вы найдете на диске. Поэтому нажимайте N (то есть No) на все вопросы установщика.
Наконец, вам будет предложено указать сторонние пакеты, которые вы бы хотели добавить. Чтобы попасть в окно выбора пакетов, нажмите Y. Как и любой современный Unix, FreeBSD учитывает зависимости, поэтому если вы просто перейдете в раздел «kde», выберете все имеющиеся в нем пакеты (с помощью клавиши Пробел) и нажмете I (то есть Install), рабочее окружение KDE будет установлено в систему со всеми необходимыми зависимостями.
После завершения установки пакетов вам будет предложено добавить в систему новых пользователей. Смело нажимайте Y, выбирайте пункт «User» и заполняйте необходимые поля формы. Достаточно будет указать имя пользователя в поле «Login ID», его пароль в строке «Password», группы wheel,operator в поле «Member groups» и нажать клавишу O (Ok). Все остальные поля установщик заполнит самостоятельно. После этого нажмите X (Exit), чтобы выйти из окна добавления пользователей.
Следующий обязательный шаг – ввод пароля для root. Просто наберите его два раза в ответ на приглашение командной строки. На последующий вопрос о посещении меню конфигурации нажмите N, после чего вы вновь окажетесь в главном окне установщика и сможете нажать клавишу x для выхода из него и перезагрузки.
Первое знакомство
Выберите пункт «FreeBSD 7.2” в меню Grub, чтобы передать управление загрузчику FreeBSD и нажмите F1. Вас встретит меню с надписью FreeBSD справа; нажмите клавишу 1 или просто подождите 10 секунд. После непродолжительной загрузки вас встретит приглашение «Login:”. Введите root и пароль, указанный во время установки.
Первое, что вам необходимо сделать – это настроить систему X Window. Наберите ee /etc/xorg.conf для вызова редактора и поместите в открывшееся окно следующие строки:
Section “Monitor” Identifier “Monitor” EndSection Section “Screen” Identifier “Screen” Monitor “Monitor” Device “Video Device” DefaultDepth 24 EndSection Section “Device” Identifier “Video Device” Driver “vesa” EndSection
В последней секции вместо vesa укажите nv, если в вашем ПК установлена видеокарта от NVIDIA, ati – если от AMD/ATI, intel для видеокарт на чипсете Intel, в противном случае оставьте строку неизменной. Для выхода из редактора нажмите Esc, а затем два раза Q.
Выполните команду ee /etc/ttys и найдите в файле строку
ttyv8 “/usr/local/bin/xdm -nodaemon” xterm off secure
Исправьте off на on, если вы не используете графическое окружение, или замените всю строку на одну из приведенных ниже:
# Вариант для KDE ttyv8 “/usr/local/bin/kdm” xterm on secure # Вариант для Gnome ttyv8 “/usr/local/bin/gdm” xterm on secure
Выйдите из редактора. Внесенные изменения заставят программу инициализации init загружать менеджер дисплея выбранного вами графического окружения сразу после старта ОС.
Теперь вы можете настроить сетевое соединение, активировать мышь и произвести другие системные настройки. Но прежде всего надо выяснить имя вашего сетевого адаптера. Дело в том, что в отличие от Linux, его название во FreeBSD уникально. В противовес безликому eth0, имя сетевой карты во FreeBSD напрямую зависит от ее драйвера, поэтому RealTek 8029, использующая драйвер de, будет видна в системе как /dev/de0, а встроенная в чипсет nForce – как /dev/nfe0.
Flash-накопитель виден FreeBSD под именем вроде /dev/da0s1, где 0 – это порядковый номер (если подключить второй накопитель, не вынимая первый, им будет 1), а s1 – номер раздела (даже если на «флэшке» их нет). Поэтому для монтирования «флэшек», отформатированных в FAT16 или FAT32, достаточно добавить в /etc/fstab следующую строку:
/dev/da0s1 /mnt msdosfs rw,noauto,longnames,-m=777,-L=ru_RU.KOI8-R,-D=CP866
Монтировать накопитель можно с помощью стандартной команды mount /mnt. Помните, перед отключением файловую систему нужно обязательно размонтировать, иначе ядро может уйти в kernel panic (вот такой вот курьезный недочет, который обещают исправить в версии 8.0).
Чтобы выяснить имя вашего адаптера, выполните dmesg | grep Ethernet. Первое слово появившейся строки как раз и будет искомым. Скопируйте файл rc.conf с LXFDVD и измените его в соответствии со своими требованиями, заменив слово de0 в строке
ifconfig_de0=”inet 172.16.67.143 netmask 255.255.224.0”
на имя вашего сетевого адаптера. Выйдите из редактора и выполните команду EDITOR=ee vipw. Она откроет файл базы пользователей (/etc/passwd). Найдите в нем созданного вами во время установки пользователя, и в пятом поле (они разделяются двоеточием) укажите russian. Это позволит менеджерам входа автоматически устанавливать для него локаль ru_RU.KOI8‑R. Выйдите из редактора и выполните команду reboot для перезагрузки. Если вы все сделали правильно, то после рестарта вы увидите графическое окно входа в систему.
Больше программ
Вероятно, вы захотите установить дополнительное ПО, которое не смогли найти в списке пакетов в инсталляторе. Как это сделать? FreeBSD предлагает два варианта: сборку исходных текстов средствами системы портов или установку двоичных пакетов. В первом случае достаточно перейти в нужный раздел каталога /usr/ports (например, /usr/ports/www – программы для работы с Web), найти нужное приложение и выполнить команду make install clean (с правами root) в его каталоге. Например, установим Firefox:
$ cd /usr/ports/www/firefox3 $ su # make install clean
После выполнения последней команды исходные тексты приложения будут скачаны из Интернета, собраны и установлены в систему.
Второй способ быстрее. Вы просто находите пакет для FreeBSD в сети (он имеет расширение .tbz) и выполняете команду pkg_add файл_пакета. tbz или же набираете pkg_add -r имя_пакета-версия, и он скачивается из сети и устанавливается автоматически. Вместо номера версии можно указать ‘latest’, что означает последний доступный релиз.
Обратите внимание, что порты и пакеты устанавливаются в каталог /usr/local, а не /usr, как это принято в Linux.
Что дальше?
В одной статье невозможно раскрыть все тонкости использования FreeBSD, но при должном терпении вы сможете освоить эту замечательную ОС самостоятельно. Полное руководство по операционной системе вы найдете в каталоге /usr/share/handbook. Интернет изобилует документами и форумами, посвященными FreeBSD. Существуют официальные IRC-каналы, списки рассылки и Jabber-конференции, в которых обсуждают BSD-системы. Задавайте вопросы, участвуйте в конференциях, и не забывайте: Linux хорош, но в мире существует и множество других отличных ОС! LXF