АНДРЕЙ БЕШКОВ
NetBSD: установка и настройка
Сегодня мы поговорим о NetBSD, которая является одной из разновидностей BSD-систем. Несмотря на то что она широко распространена среди англоязычных пользователей, в России о ней почти никто не знает. Эта статья призвана исправить сей досадный недостаток.
Первая версия NetBSD, появившаяся в 1993 году, называлась NetBSD 0.8. Основывалась она на исходном коде системы 4.3BSD Lite, разработанной университетом Berkeley, и системе 386BSD, которая стала первым вариантом BSD UNIX, способным работать на процессорах Intel 386. В течение последующих лет система NetBSD впитывала самые лучшие идеи из всех веток BSD-систем. Многие из этих идей постепенно трансформировались и улучшались энтузиастами, работающими над развитием NetBSD. Список приобретенных возможностей довольно длинный, поэтому перечислим лишь малую часть из них:
- Управление заданиями
- Быстрая файловая система Berkeley
- Надежный механизм сигналов
- Концепция виртуальной памяти
- Работа с TCP/IP
- Командная оболочка C
Впоследствии многое из того, что было опробовано или создано на основе BSD, и NetBSD в частности, стало стандартом для всех UNIX-систем. Несмотря на свой малый размер, NetBSD является полноценной UNIX-системой. Важнейшими приоритетами в процессе разработки стали хорошо продуманный, но в то же время простой дизайн, отличное качество кода и приверженность стандартам. Система в первую очередь задумывалась как среда для обучения студентов основам проектирования UNIX-систем и полигон для проверки новых идей. Это позволило легко портировать систему на огромное количество разнообразнейшего оборудования. Лозунгом системы стала фраза «если внутри этой штуки есть процессор, значит, мы будем на нем работать». На данный момент NetBSD отлично чувствует себя более чем на 20 разных платформах. Давайте кратко пробежимся по их списку:
- Sun SPARC
- Sun 3
- Sun 3X
- Digital Alpha (64 бита)
- Commodore Amiga, MacroSystem DraCo
- Все клоны IBM PC на процессорах I386
- Acorn RiscPC/A7000, CATS, EBSA-285, Digital Shark, VLSI RC7500
- ATARI TT030, Falcon, Hades
- Hewlett-Packard 9000/300
- Hewlett-Packard 9000/400
- Apple Power Macintosh
- Apple Macintosh
- Motorola MVME 86k SBCs
- NeXT 68k DECstations и DECsystem, созданные на основе Digital MIPS
- PC 532
- Digital VAX
- Sharp X680x0
Среди аппаратного обеспечения, на котором успешно выполняет свои задачи NetBSD, есть как большие 64-битные системы вроде Digital Alpha, так и домашние машины вроде Atari или клоны IBM PC. В то же время не только Macintosh, но и карманные компьютеры не обойдены вниманием. Примером миниатюризации может служить следующая фотография, на которой запечатлен карманный компьютер HP Jordana 720:
Если внимательно присмотреться к картинке, можно заметить отлично работающий оконный менеджер BlackBox и игру XDoom, в которой увлеченно сражается с монстрами владелец этого миниатюрного аппарата. Практически все приложения, запускаемые на обычных компьютерах, работающих под управлением BSD-систем, будут работать и на этой машине.
Можно посмотреть галерею снимков рабочих столов пользователей NetBSD по этому адресу: http://www.netbsd.org/gallery/in-Action. Я думаю, вас удивит KDE, GNOME и множество других отлично работающих на этой платформе программ. Благодаря бинарной совместимости с Linux (Linux Binary Compatibility), присущей всем BSD-системам, есть возможность запросто запустить и успешно использовать более 90% программ, скомпилированных для Linux.
Приятно осознавать, что в компьютере размером чуть больше пивной алюминиевой баночки живет свой собственный BSD UNIX. Судя по всему, создатели NetBSD крепко усвоили истину, не дающую покоя многим мужчинам – размер имеющегося в распоряжении железа значения не имеет. Главное – уметь им пользоваться как следует. Тут искушенный в UNIX читатель должен нахмуриться и высказать мнение, что, дескать, есть системы и поменьше. Например, безвременно почивший LRP (Linux Router Project) или PicoBSD, помещающиеся на одной дискете. А я триумфально отвечу, что не стоит путать полноценный и богатый возможностями UNIX с урезанными системами, главным смыслом возникновения которых была необходимость создавать нетребовательные к железу платформы для межсетевых экранов и маршрутизаторов.
Для того, кто решил работать с NetBSD, на первый взгляд количество аппаратных платформ, на которые портирована система, не имеет особого значения. Но если посмотреть с другой стороны на тот же вопрос, оказывается, что между переносом на другое оборудование и качеством исходного кода есть очень тесная связь. Без отлично спроектированного, простого для понимания и хорошо организованного кода поддерживать такое количество разношерстного оборудования и разных его комбинаций абсолютно невозможно.
Многие системы в процессе разработки руководствуются принципом «если код работает, значит, он написан правильно». NetBSD в отличие от них считает, что такой ход мыслей неверен. Вместо этого пропагандируется следующий подход к созданию систем: код не считается работающим до тех пор, пока не будет полностью проверен на правильность. Кажется странным, что большинство людей не видят или не хотят понимать этих отличий.
Опираясь на университетские традиции, сообщество, работающее над развитием NetBSD, позиционирует свой проект как свободную систему для профессионалов и энтузиастов, которую все желающие могут использовать для любых целей. Каждому предоставляется свободный доступ к исходным кодам и бинарным пакетам системы. А значит, внесение модификаций и дальнейшее распространение системы всячески приветствуется.
На мой взгляд, все вышеперечисленные характеристики NetBSD делают ее идеальной системой не только для изучения UNIX, но и для многих других начинаний. Одним из приятных моментов в общении с этой системой является то, что для начала работы не нужно покупать дорогостоящего оборудования, а можно использовать старые PC, Mac и прочие компьютеры. Это большой плюс для развития малобюджетных исследовательских проектов. Ну а если вам нужен UNIX, работающий одинаково стабильно на множестве платформ, то вполне возможно, что NetBSD – ваш единственный выбор.
Обсудив все плюсы NetBSD, перейдем от теории к практике. Ну а чтобы у вас не сложилось впечатления о предвзятом и однобоком освещении системы, я в процессе установки обязательно буду говорить о замеченных недостатках.
Начать инсталляцию можно со следующих носителей:
- ftp
- гибкий диск
- CD-ROM
- nfs
- локальная директория
Так как статья не задумывалась в качестве исчерпывающего руководства по установке NetBSD, я выбрал CD-ROM как наиболее простой путь инсталляции. Не будем осложнять себе жизнь возней с загрузочной дискетой, настройкой nfs и прочими изысками. Для того чтобы создать загрузочный CD-ROM, нам нужно скачать iso – образ диска с любого из зеркальных серверов NetBSD. На момент написания статьи для скачивания была доступна версия NetBSD 1.6.1. Именно ее мы и будем использовать. Идем по адресу: http://www.netbsd.org/mirrors/#iso и выбираем ближайший к нам сервер дистрибутивов. Лично я использовал работающий подозрительно быстро Эстонский сервер ftp://ftp.ee.netbsd.org. Для моего PC предназначается дистрибутив, в названии которого содержится имя используемого нами процессора i386. Ну а вы, соответственно, должны выбирать дистрибутив для своего процессора. Переходим в директорию /pub/NetBSD/iso/1.6.1/ и качаем оттуда файл с образом загрузочного диска i386cd.iso размером в 125 мегабайт. Интересно, как разработчики системы смогли упаковать полнофункциональный Unix в такой малый объем. В этой же директории находятся еще 8 дисков с пакетами дополнительного программного обеспечения. Они нам пока не нужны, поэтому скачивать их не станем. В качестве бонуса можно взять файл i386pkg-cover.pdf, содержащий внутри себя картинки обложек для CD-ROM.
По окончании скачивания тем или иным способом записываем образ на CD-ROM. Я использовал для этого старенькую машину с Linux и программу cdrecord. Впрочем, для Windows-программ, выполняющих данную функцию, тоже вполне достаточно.
В BIOS выставили загрузку с CD-ROM, вставили диск и перезагрузили компьютер. Как и во всех остальных BSD-системах, вначале видим стандартное меню с таймером. Нажимаем клавишу «Enter» или ждем, пока сработает таймер, и загрузка продолжится сама по себе.
В зависимости от скорости процессора на экране в разном темпе начинает появляться информация, выводимая модулем диагностики и обнаружения оборудования. Иногда процесс вывода замирает на 20-40 секунд. Как только мы добрались до этапа, изображенного на следующем снимке, нужно немного подождать. Система задумывается примерно на минуту и, казалось бы, зависает.
Но не стоит беспокоиться и пробовать вмешиваться в процесс начальной загрузки. Через минуту-другую все снова зашевелится. Программа-загрузчик была занята созданием файловой системы в оперативной памяти. И вот на экране появилось заглавное меню программы sysinst. На протяжении всего процесса инсталляции мы будем работать именно с ней.
Пользуясь появившимся меню, можно выполнить следующие действия:
- начать инсталляцию;
- обновить уже установленную систему NetBSD;
- инсталлировать заново имеющееся в системе или добавить новое программное обеспечение;
- перезагрузить машину.
Если с первыми тремя пунктами все более или менее ясно, то необходимость четвертого пункта, позволяющего перегрузить машину, для меня лично довольно сомнительна. Почему это нельзя сделать с помощью кнопки «Reset» или, на крайний случай, «Power», мне было непонятно. Впоследствии после консультаций со знающими людьми было выяснено, для чего именно эта опция необходима. Оказалось, что нужна она для того, чтобы размонтировать разделы, используемые во время обновления пакетов с программным обеспечением и добиться корректного завершения установки.
Например, запуск оболочки командного интерпретатора /bin/sh. На следующем рисунке мы можем видеть результат выполнения команд pwd и ls. Нам предоставлена самая обычная оболочка, с помощью которой можно поработать внутри запущенной сейчас системы и подправить все, что нужно, если вдруг что-то пойдет не так. Выйти из оболочки можно, как обычно, нажав .
Дальше идет интерфейс для установки временной зоны. Меню это настолько лаконично, что и писать-то о нем особенно нечего. Кстати, воспользоваться им для изменения данных так и не удалось. Странно, но нажатие каких угодно клавиш не давало никаких результатов.
Следом за ним появляется меню настройки сетевых интерфейсов, отображающее две сетевые карты, установленные на моей машине.
К примеру, можно выбрать первый адаптер pcn0. Затем следует определение типа сетевой среды. Обычно рекомендуется устанавливать autoselect.
Следующий вопрос позволяет указать, используем ли мы DHCP для получения сетевых параметров.
Если согласиться, то адрес TCP/IP для этого интерфейса будет получен автоматически при условии наличия в сети DHCP-сервера. Вводим данные о домене и имени хоста. Я использовал в качестве имен строки «netbsd» и «unreal.net» соответственно. Так как вокруг меня нет сетей, работающих с протоколом IPv6, я отказался от его использования. И в результате получил вот такую картинку:
Точно такого же результата можно достичь, если отказаться от DHCP и отвечать на все задаваемые вопросы самостоятельно. DHCP-сервер на основе FreeBSD, работающий по 192.168.10.2, выделил мне адрес 192.168.10.128. Ответив «Yes» на вопрос о том, верно ли проведено конфигурирование сетевой карты, я решил проверить, насколько правильно она будет после этого работать. Пользуясь меню, о котором мы говорили ранее, запустил оболочку /bin/sh. Затем с помощью команды ping попытался посмотреть, доступен ли наш DHCP-сервер. Также по совместительству он является DNS-сервером и шлюзом по умолчанию.
Как видите, сервер оказался доступен. Окрыленный таким успехом, я решил проверить другие протоколы и для этого воспользовался ftp-сервисом, работающим на том же сервере. Авторизовавшись, скачал из домашней директории пользователя tigrisha файл .cshrc. Убедился, что файл появился в локальной файловой системе.
Вы можете спросить меня, зачем производились все эти странные манипуляции. А я отвечу: просто для эксперимента. Из чистейшего любопытства и желания проверить, насколько гибко работает мини-система, управляющая инсталляцией. Кстати, все настройки, которые мы сейчас определили, можно по окончании инсталляции сохранить как используемые системой по умолчанию. А это значит, что нам не придется вносить их руками в конфигурационные файлы после первой перезагрузки системы. Учитывая тот факт, что система вместе с ядром и прочими программами, с которыми мы работали, находится в оперативной памяти, а на жестком диске еще нет никаких данных, стоит признать ее впечатляющие возможности. Я предвижу, что в этом месте многие читатели поморщатся и выскажут свое скептическое мнение. Дескать, экая невидаль ping и ftp у них работает. А я им в ответ заявлю, что для сравнения пусть попробуют сделать что-либо подобное во время установки Windows или Linux. Итак, наигравшись и выяснив потенциальные возможности системы, возвращаемся в самое первое меню и приступаем к созданию разделов на жестком диске. Для этого выбираем пункт «Install NetBSD to hard disk».
Следующая подсказка повествует о том, что для продолжения инсталляции нам необходимо создать разделы на жестком диске. Затем внутри этих разделов разместить файловые системы нашей операционной системы. И уж только после этого установить нужные наборы программного обеспечения, называемые почему-то «distribution sets». Согласившись с предлагаемым планом, выбираем целевой жесткий диск. В моей системе он назывался wd0. Последствия выбора не заставляют себя долго ждать.
Тут нам разрешают использовать данные о геометрии жесткого диска, собранные мастером оборудования, или задать свои. Я использовал данные, определенные мастером. После этого наступает черед очень опасного выбора. Нужно решить, использовать все пространство, доступное на этом диске, или только часть из него. Выбирать использование части стоит в том случае, если на диске есть разделы других операционных систем или вы желаете их создать в дальнейшем. При использовании всего пространства данные, ранее находившиеся на этом диске, будут уничтожены.
У меня ничего ценного на этом диске отродясь не водилось, поэтому было решено полностью использовать доступное пространство, которое было равно 1023,97 Мб. Следует отметить, что NetBSD для исправного функционирования довольствуется гораздо более скромным пространством. Инсталляция всех пакетов плюс система X Windows займет 290 Мб, а без него 200 Мб. Следующий вопрос, заданный системой, уточняет тип разбиения диска на файловые системы.
- Standart – вопрос о размерах и размещении необходимых файловых систем программа инсталляции решает сама.
- Standart X – размеры и размещение файловых систем совпадают со стандартным размещением, за исключением того, что раздел swap увеличивается в два раза. Также стоит обратить внимание на тот факт, что система резервирует место для бинарных файлов X-сервера. Таким образом, мы получим графический интерфейс на основе XFree.
- Custom – ручное разбиение файловых систем и определение точек монтирования.
- Use existing – использовать уже имеющиеся файловые системы. Нужно будет всего лишь указать точки монтирования для них.
Я выбрал Standart X и получил следующую картину распределения файловых систем по жесткому диску:
Поверив, что все на первый взгляд выглядит нормально, решил не пользоваться опцией «Change partitions», вызывающей местный аналог программы fdisk, и выбрал взамен пункт меню «Partitions are ok». На следующем экране система интересовалась, не хочу ли я дать имя жесткому диску вместо используемого по умолчанию «mydisk». Я решил, что хочу и назвал его «system». Впрочем, вы можете поступить, как вам заблагорассудится, потому что название некритично. Затем последовало предупреждение о том, что изменения на жесткий диск пока не записаны и у нас есть последний шанс все отменить. Недрогнувшей рукой выбираем пункт меню, разрешающий продолжать инсталляцию. Некоторое время на экране будут мелькать надписи, извещающие нас о процессах создания и о ходе разметки новых файловых систем. Нарисовав следующее меню, система пытается узнать, что мы хотим использовать в качестве системной консоли. Выбрать можно один из двух вариантов:
- Normal bootblock – системной консолью служит монитор, подключенный к машине.
- Serial bootblock – присоединяем системную консоль к первому последовательному порту.
Я выбрал Normal bootblock, в ответ система немножко пожужжала диском и радостно сообщила о том, что первый этап инсталляции завершен и теперь мне необходимо выбрать наборы программного обеспечения, которые будут установлены далее. Как обычно, дают выбрать из двух наборов – Full и Custom. Повинуясь своему неуемному любопытству, решил использовать нестандартный набор пакетов. На следующем экране слева виден список выбранных пакетов, а справа – меню со списком доступных для установки пакетов. Установить или снять пометку о выборе можно с помощью клавиши «Enter».
После того как разберемся с выбором пакетов, система задаст вопрос о носителе, с которого будет производиться инсталляция.
Я выбирал CD-ROM, ну а вы можете использовать все, что душе угодно. В следующем меню определяем, является у нас CD-ROM устройством или директорией. Такой подход удобен, если CD-ROM примонтирован в нестандартное место.
Выбрав пункт device, соглашаемся с предлагаемым системой вариантом: считать нужный нам CD-ROM устройством cd0. Несмотря на то что в вашей системе маркировка может отличаться, я думаю, догадаться, что есть что, особого труда не составит. Указав, где у нас находится CD-ROM, используем пункт меню «Continue» и приказываем продолжать установку. Минут 5 любуемся на бегущие по экрану списки устанавливаемых пакетов. К сожалению, с таким составом пакетов с первого раза удачно завершить инсталляцию мне не удалось. Начались шаманские танцы с бубном, но, несмотря на все старания, процедура установки с завидным постоянством прерывалась сообщениями о фатальной ошибке в пакете X11-fonts. Хорошо, что установка длится всего 5 минут. На третьей неудачной попытке были отключены все пакеты, связанные с X Windows. И только после этого инсталляция удалась. Либо при скачивании из сети образ диска был поврежден, либо у меня плохо работает CD-ROM.
В голове крутятся мысли о том, что, конечно, хотелось посмотреть, насколько хорошо работает оконная система, но все же это некритично. Посмотрев на настенные часы, понимаю, что 3 часа ночи – не самое лучшее время для того, чтобы разбираться с неполадками. Ложусь спать с твердым намерением завтра обязательно победить эту досадную ошибку. На следующий день подопытная машина почувствовала на своей шкуре все прелести профилактики и техобслуживания. После этого была начата новая инсталляция NetBSD с полным набором пакетов X Window, завершившаяся успешно. Судя по всему этот старый CD-ROM нужно чистить гораздо чаще.
Как только нужные пакеты установились на жесткий диск, система покажет меню с вопросом, корректно ли у нас настроена сетевая подсистема и можно ли записать настройки, использовавшиеся в этом сеансе как настройки по умолчанию. С радостью соглашаемся и жмем «Yes»: все-таки редактировать системные файлы с помощью vi – удовольствие не из самых приятных. После этого наступает черед установить часовой пояс, в котором находится эта машина. Для меня это зона EUROPE/Moscow. Выбираем ее с помощью клавиши «Enter» и выходим из меню, нажав одну за другой клавиши «x» и «Enter». Далее выбираем схему шифрования паролей. Доступны шифры DES и MD5. В большинстве UNIX-подобных систем стандартом де факто является DES. Решено было использовать именно его.
Система спросит, не хотим ли мы проинициализировать пароль пользователя root. Изъявляем желание и устанавливаем в качестве пароля что-то очень длинное и сложно-запоминаемое.
Читаем поздравления, говорящие об удачном завершении установки, а когда надоест, нажимаем «OK» и снова попадаем в самое первое меню инсталляции. Теперь нужно перегрузить машину, наконец-то нам пригодилась загадочная опция «Reboot machine».
Следующим сюрпризом для нас будет тот факт, что теперь во время загрузки для отображения сообщений на системную консоль используется шрифт ярко-зеленого цвета. Под конец процедуры загрузки демонов шрифт снова станет белым. Не UNIX, а какой то калейдоскоп. Войдя в систему под пользователем root, смотрим состояние сетевых интерфейсов с помощью команды ifconfig –a. Настройки, определенные в процессе инсталляции, сохранились. Затем настраиваем X Windows с помощью программ xf86config или XF86SETUP. Процесс этот ничем от остальных UNIX-систем не отличается, поэтому писать о нем не станем. Стоит отметить, что X Windows запустились сразу же без каких-либо ошибок. А вот с русской локализацией консоли разобраться так и не удалось. На этом, наверное, стоит завершить нашу совместную экскурсию по системе и пожелать вам успехов в освоении этого варианта UNIX. Если отклик на эту статью будет достаточно сильным, то, наверное, я буду продолжать писать об освоении NetBSD.