Краткие впечатления от NetBSD

Алексей Федорчук
[email protected]

Версия 2. Первая версия доступна на сайте Софтерра Онлайн.

Эта заметка, в первом варианте написанная осенью 2002 г., не претендует на сколько-нибудь полное описание NetBSD. Однако дать о ней некоторое представление, думается, способна. Почему я и решил разместить ее в BSD-цикле. Ну и полтоты картины для - тоже...

Насколько в мире открытых систем FreeBSD уступает Linux'у в части всенародной известности, настолько же в *BSD-клане NetBSD оказывается на положении бедной родственницы, по крайней мере, в нашей стране. Если о FreeBSD более или менее регулярно появляются некоторые материалы, если об OpenBSD можно кое-что почитать на http://www.openbsd.ru/ или на http://www.opennet.ru/, то о NetBSD в Рунете, пожалуй, не найти ни строки. А ведь существует мнение, не лишенное оснований, что именно она воплощает в себе дух открытых и свободных Unix-подобных систем par exellence. По крайней мере, в отношении максимально полной независимости от аппаратной части: NetBSD портирована на все "железо", которое может запускаться, и немножко - на то, которое запускаться не способно. Чтобы убедиться в этом, достаточно посмотреть на список поддерживаемых платформ на http://www.netbsd.org - там обнаружатся и VAX, и Sun Sparc, и RISC-системы от Hewlett-Packadr, и Alpha, и PowerPC, и Amiga, вкупе с мало кому ведомыми Acorn, Atari, Sharp, и так далее, и так далее, и так далее... Список столь обширен, что PC-платформа как-то просто теряется в середине его. Тем не менее, и она не обойдена вниманием разработчиков NetBSD.

Именно о PC-реализации NetBSD и пойдет речь в настоящей заметке. Применительно к последней версии этой ОС, на момент написания имеющей номер 1.6 (текущая - 1.6.1). На ftp-сервере проекта, прорвавшись сквозь дебри архитектур, можно увидеть, что доступна она в следующих формах:

  • iso-образ установочного диска, объемом (всего-то навсего!) около 70 Мбайт;
  • iso-образ диска, содержащего полные исходники системы (порядка 200 Мбайт - тоже вполне скромно);
  • шесть iso-образов дисков с прекомпилированными пакетами - эти уж забиты под завязку, каждый тянет на свои законные 650 Мбайт.

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

Должен заметить, что от установочной программы NetBSD веет древнегреческой архаикой. Начать с того, что инсталляционный диск - не загрузочный. И для начала требуется изготовить дискеты с имеющихся на нем образов. Образов этих - изрядное количество. В большинстве случаев можно ограничиться двумя - boot1.fs и boot2.fs, прочие предназначены для всяких специальных случаев. Имеется и образ по имени boot-big.fs - для легендарной дискеты объемом 2,88 Мбайт (кто такие видел?). Причем, судя по документации на сайте проекта, с помощью этого образа можно изготовить и загрузочный CD. Интересно, почему разработчики такового не сделали - чтоб служба юзеру малиной не казалась, что ли? Или это нечто вроде экзамена на чин: могеш загрузочную дискету изготовить - значит, достоин, нет - отвали-подвинься...

Короче говоря, сделать загрузочные дискеты не сложно. В любой Unix-like системе это делается так:

$ dd if=/path/boot*.fs of=/dev/fd0

А в Windows - и того проще: запустить сеанс MS DOS, найти на диске (или в закромах Родины) программку rawrite.exe, запустить ее, указать целевой дисковод, ввести ручьмя (кто забыл - в командной строке DOS нет автодополнения клавишей TAB) путь к файлу образа в виде c:catalogoot*.fs (желательно - без ошибок), и так два раза. После чего, засунув первую дискету в привод, можно приступать к установке (в ходе загрузки, правда, придется еще сменить дискету).

Программа установки NetBSD носит имя sysinst. И, как это принято в благородном BSD-семействе, одновременно является (почти) универсальной утилитой конфигурирования. Каковая может быть легко запущена и в любой последующий (после инсталляции) момент времени.

sysinst - программа чисто текстовая, даже без намека на псевдографику, как аналогичная утилита из FreeBSD. Правда, в отличие от установщика OpenBSD, рисуется она не на радикально черном, а на синеватом фоне. И главное ее меню, появляющееся по окончании загрузки, содержит пункты:

  • Install;
  • Upgrade;
  • Re-install;
  • Rebbot;
  • Utility;
  • Exit.

Смысл большинства более или менее ясен. Отмечу только, что Re-install - это доустановка наборов пакетов (именуемых здесь sets), а Utility предназначено для дополнительного конфигурирования (в частности, сети) или просто выхода в командную строку (что позволяет производить всякого рода ремонтно-спасательные манипуляции).

Нас же в данный момент интересует исключительно пункт Install. Выбрав его, нам приходится заняться созданием раздела для NetBSD (если, конечно, нет желания или возможности отвести под нее весь диск). Согласно BSD-системе разбиения дисков, под это дело следует выделить один первичный раздел (в терминологии FreeBSD - слайс), внутри которого создаются логические тома (то есть собственно Partitions, или файловые системы). Процедура не сложна. Однако у меня уже имелся UFS-раздел под FreeBSD, и именно на него система упорно пыталась установиться (видимо, по родственному). Однако этой опасности избежать легко - до определенного момента из программы установки легко (и - без последствий) выйти комбинацией клавиш Control+C, после чего можно запустить ее повторно командой sysinst.

После создания раздела предлагается определиться с меню начальной загрузки - как и во FreeBSD, по умолчанию в него попадают все имеющиеся на диске разделы, даже если никаких средств загрузки они не содержат. Затем остается выбрать тип установки - стандартный, стандартный плюс оконная система X или заказной. С последним, каюсь, справиться мне не удалось - именно при нем NetBSD упорно стремилась затереть соплеменную FreeBSD, что в мои планы не входило (благо, указанная выше клавишная комбинация всегда была наготове).

Да и с первым двумя вариантами нужно быть внимательным. Именно выбор одного из них предопределяет разбиение BSD-партиции на файловые системы. По умолчанию их создается три - корневая, под каталог /usr, и раздел подкачки. Причем при выборе стандартной установки размер последнего равен удвоенному объему оперативной памяти, а при желании установить еще и X'ы - учетверенному. И отступать от этого, как будет показано ниже, не след.

Теперь наступает время выбрать наборы пакетов (set'ы). Ими являются:

  • Base,
  • System,
  • Compiler,
  • Games,

и так далее, вплоть до X'ов. Любой из них можно выбрать или исключить, вне зависимости от выбора варианта установки. Однако следует учесть, что если предварительно была выбрана стандартная установка, то последующий выбор для инсталляции X'ов очень быстро повлечет за собой сообщение об ошибке сегментации и прекращение процесса: видимо, не зря X'овый вариант предписывает удвоенный, относительно стандартного в BSD-системах RAM*2, объем swap-раздела.

На этом, собственно говоря, процесс установки заканчивается. Далее выбранные наборы быстренько (действительно - быстро, что показалось мне, учитывая специфику UFS, весьма задумчивую в отношении большого количества маленьких файлов, примечательным) переписываются на диск - и можно, извлекши дискету из привода, перезагружаться (на таких мелочах, как выбор часового пояса и алгоритма шифрования паролей, останавливаться не буду). Можно начинать знакомство с системой. Правда, перед этим хорошо бы озаботиться налаживанием ее загрузки - но это, как обычно, выливается в отдельную историю, о которой мне говорить здесь не хочется. Замечу только, что тогдашней версией GRUB загрузить NetBSD нормально (то есть через считывание ее ядра) мне не удалось. Пришлось воспользоваться методом "цепочечной" загрузки, применяемым в GRUB для запуска Windows 95-го семейства (см. статью Владимира Попова на эту тему).

Все сказанное ранее - дела (давно) минувших дней. А давеча выкроил я время глянуть краем глаза и на нынетекущюю (1.6.1) версию NetBSD. Никаких принципиальных отличий в ней я не заметил, за одним существенным моментом: ISO-образ дистрибутива для i386, наконец-то, стал загрузочным (для других платформ загрузочные сидюшники были и раньше).

О внутреннем устройстве NetBSD распространяться не буду - слишком мало времени мы провели вместе. Общий impression - BSD как BSD, с консольным драйвером wscons (как в OpenBSD, начиная с версии 2.9). То есть принципиальных трудностей в русификации консоли не предвидится. Ну а Икс - он и в Африке X...

Можно ли использовать NetBSD в мирных (сиречь домашне-десктопных) целях? Вопрос из серии, можно ли спать с открытой форточкой (ответ, кто не знает, такой: можно, если больше не с кем). Но особых показаний к тому не вижу. Разве что дома завалялся парк из Амиг, Атарей и прочих Паккардов. В общем, ну очень специфическая система. Хотя, повторяю, дух первозданного Unix'а в ней чувствуется за версту. Чем и интересна - посмотреть на досуге.