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

Автор: Алексей Федорчук
2002 г

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

Насколько в мире открытых систем FreeBSD уступает Linux’у в части всенародной известности, настолько же в *BSD-клане NetBSD оказывается на положении бедной родственницы, по крайней мере, в нашей стране. Если о FreeBSD более или менее регулярно появляются некоторые материалы, если об OpenBSD можно кое-что почитать на opennet.ru, то о NetBSD материалы в Рунете еще в недавнем прошлом найти не очень легко.

А ведь существует мнение, не лишенное оснований, что именно NetBSD воплощает в себе дух открытых и свободных POSIX-совместимых систем par exellence. По крайней мере, в отношении максимально полной независимости от аппаратной части: NetBSD портирована на все «железо», которое может запускаться, и немножко — на то, которое запускаться не способно. Чтобы убедиться в этом, достаточно посмотреть на список поддерживаемых платформ — там обнаружатся и 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-700 Мбайт.

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

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

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

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

  • Install;
  • Upgrade;
  • Re-install;
  • Reboot;
  • 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-го семейства.

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

NetBSD имеет собственную портообразную систему — pkgscr, сопряженную с менеджером бинарных пакетов. Она доводит до логического завершения идею портов FreeBSD — обособление базовых компонентов системы от всего дополнительного программного обеспечения. В использовании весьма подобна портам FreeBSD и ее инструментарию pkg_add сотоварищи.

Разрабатываясь преимущественно для NetBSD, система pkgscr изначально задумывалась как ОС-независимая: существуют ее реализации для FreeBSD, ряда дистрибутивов Linux (Debian, Red Hat, Slackware), ряда проприетарных Unix (IRIX, Solaris). А не так давно система pkgsrc была принята в качестве официальной системы управления пакетами в DragonFlyBSD.

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