Первые шаги В NetBSD. Часть 1::Журнал СА 6.2004
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6143
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6856
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4139
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2978
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6282
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3433
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12336
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13968
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9099
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7052
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5361
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4593
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3400
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3127
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3378
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 2999
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Первые шаги В NetBSD. Часть 1

Архив номеров / 2004 / Выпуск №6 (19) / Первые шаги В NetBSD. Часть 1

Рубрика: Администрирование /  Продукты и решения

АЛЕКСАНДР БАЙРАК

Первые шаги в NetBSD

Часть 1

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

Хотя на Западе NetBSD достаточно популярна. В принципе это легко объяснить. Главный козырь NetBSD в ее многоплатформенности, она одинаково хорошо будет работать как на карманных компьютерах типа HP Jordana 728, так и на больших 64-разрядных Alpha. Конечно, она работает и на x86. И если за рубежом количество машин с отличной от x86 архитектурой достаточно велико, у нас же если где и есть SPARC или MIPS, то люди в основном предпочитают использовать на них их родные ОС. На x86 NetBSD тоже почему-то ставят нечасто, вроде как и «остальных» систем достаточно, а разбираться с чем-то новым у кого времени, а у кого и желания нет. До недавнего времени в рунете была только одна статья, посвященная NetBSD (http://www.linuxshop.ru/unix4all/?cid=28&id=325). Не так давно Андрей Бешков написал отличную статью, посвященную этой системе (смотри августовский номер журнала за 2003 г. или http://onix.opennet.ru/netbsd/netbsd.html). Я вам очень советую ее почитать, в статье в простой и доступной форме расписан процесс установки ОС. После этого интерес к системе возрос, все чаще на форумах юниксоидов можно встретить вопросы и, что самое главное, ответы, посвященные NetBSD. Эта система заинтересовала и меня, результат моего изучения перед вами. За неимением компьютеров с отличной от x86 архитектурой все мои эксперименты с NetBSD проводились на обычном PC (Cel 433 МГц/64 Мб RAM). Я предполагаю, что NetBSD в том или ином виде уже установлена на вашем компьютере. Далее нам понадобится только диск с исходниками системы. Взять образ этого диска можно тут: ftp://ftp.netbsd/pub/NetBSD/iso. Далее выбираете версию системы, которая установлена у вас, и списываете файл sourcecd.iso.

Afterboot, или Что следует сделать сразу после первой загрузки

Вполне логично сразу после загрузки сконфигурировать сеть. Делается это так: в /etc/rc.conf (предварительно изучив /etc/defaults/rc.conf) пишем:

hostname=”you.host.name”

Задается имя вашего хоста:

defaultrouter=”x.x.x.x”

Указывается IP шлюза:

ifconfig_zz=”x.x.x.x/xx”

В качестве zz необходимо вписать имя вашего сетевого интерфейса. (Если точно не знаете, как он будет называться в NetBSD, его название можно посмотреть с помощью команды dmesg.) Вместо иксов соответственно вписать ваш IP-адрес. Маску подсети можно указать как в «дробном» виде (/xx), так и в виде netmask x.x.x.x.

IP DNS-сервера(ов) прописывается в /etc/resolv.conf, синтаксис таков:

netmask x.x.x.x

Должен заметить, что есть альтернативный вариант указания имени хоста и IP шлюза. Имя хоста можно поместить в файл /etc/myname. А IP шлюза – в /etc/mygate. Делайте, как вам удобно.

В /etc/rc.conf не забудьте указать:

sshd=YES

После этого мы можем заходить удаленно на нашу NetBSD через ssh.

Следующим шагом является заведение нового пользователя. Не всегда же под аккаунтом root работать.

# useradd –g groupname –d /path/to/homedir –m –p yourpassword –s /path/to/shell username

Рассмотрим, что и как мы создали. После опции –g указывается имя группы, к которой будет принадлежать новый пользователь. Должен заметить, что с помощью опции -g бесполезно пытаться добавить нового пользователя в группу wheel, надо напрямую его вписать в /etc/group. Тогда он действительно окажется в группе wheel. После опции -d указывается путь до домашнего каталога пользователя. После -p указывается новый пароль. После опции -s указывается путь к командному интерпретатору.

Если эту опцию не задать, будет использоваться стандартный /bin/sh. Который, впрочем, позже можно будет сменить на что-нибудь другое при помощи команды chsh.

Мною была замечена интересная вещь – какой бы password ни указывался, после опции –p useradd ругается:

Password `testpassword" is invalid: setting it to `*"

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

Установка нужного софта

Установить новый софт можно:

  • Собрав из исходников.
  • Используя пакаджи.
  • Используя систему портов.

Если с первыми двумя методами все более-менее понятно, то третий способ я распишу немного подробней. Замечу только, что все пакаджи берутся с ftp://ftp.netbsd.org/pub/NetBSD/packages.

Далее выбираете, для какой версии системы и архитектуры вы ищете нужный вам пакадж.

Для удобства можно использовать вот эту ссылку: ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/README.html. Здесь весь софт разделен на тематические разделы (как в коллекции портов). Для меня вторая ссылка более удобная, благодаря наличию комментариев к каждому пакаджу с указанием всех зависимостей.

Установить пакадж просто:

#pkg_add packagename.tar.gz

Замечу, что заранее пакадж можно и не списывать, а команде pkg_add указать точный url, где лежит пакадж, который вы желаете установить. Например:

#pkg_add ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6.1/i386/shells/bash-2.05.2.tgz

Это командой мы установим пакадж с bash для 1.6.1 версии NetBSD, работающей на x86 машине.

Важное замечание: по умолчанию исполняемые файлы пакаджей помещаются в /usr/pkg/bin.

Система портов в NetBSD тоже называется пакаджами, что вносит некоторую неразбериху. Получается, что есть binary-packages, которые уже кто-то скомпилировал до нас, и которые только и остается что установить командой pkg_add, и есть «порты-пакаджи», которые списываются из сети в виде исходников, а компилируются уже на вашей машине. Чтобы не вносить дальнейшую путаницу, далее по тексту «порт-пакадж» буду называть просто порт.

Для того чтобы начать работать с коллекцией портов, берем с уже знакомого нам диска файл pkgsrc.tgz.

Самую последнюю версию этого файла можно списать на ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/tar_files/pkgsrc.tar.gz.

Распакуем:

# tar zxvpf pkgsrc.tar.gz –c /usr

После распаковки архива в /usr/pkgsrc/ появляются каталоги, разделенные по группам (audio/www/x11), в которых соответственно содержатся каталоги, названные по имени программ с файлами, необходимыми для установки по сети. Установка нужной программы происходит следующим образом (для примера установим редактор ne):

#cd /usr/pkgsrc/editors/ne

#make install

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

#make clean

Все исходники, которые были списаны системой из сети, хранятся в /usr/pkgsrc/distfiles.

Перекомпиляция ядра

Я думаю, желание собрать ядро под себя и со своими предпочтениями вполне закономерное. Из стандартного хочется выкинуть все ненужное (а выкинуть, я думаю, много чего можно, GENERIC-ядро весит ~ 6.3 Мб!), и соответственно добавить нужное. Для перекомпиляции ядра нам понадобятся непосредственно исходники ядра. Я уже упомянул о sourcecd.iso, на котором находятся исходники всей системы. Вот сейчас из этого самого образа мы берем нужный нам syssrc.tgz. Распакуем:

# tar zxvpf syssrc.tgz –c /

Все, теперь в /usr/src/sys есть все, что нам нужно для дальнейшей работы.

Надо заметить, что в / есть ссылка на этот каталог (/sys-> /usr/src/sys/). Перейдем в /usr/src/sys/arch – тут выбираем нужную нам платформу/архитектуру. Для меня это i386, которая как-то затерялась среди всех остальных поддерживаемых платформ. Всего их 56 штук!

После нахождения каталога с нужной нам архитектурой переходим в его подкаталог – conf, именно тут лежат файлы конфигурации ядра. Для i386 представлено с десяток различных готовых файлов конфигурации, созданных для разных задач. Ради интереса их стоит посмотреть.

Файл конфигурации стандартного ядра находится в файле GENERIC. Очень жаль, что разработчики не сделали аналога файла LINT (такого, как в FreeBSD), в котором с подробными комментариями перечислены все возможные параметры, допустимые в файле конфигурации ядра. Ну да ладно, и так разберемся.

# cp GENERIC newkernel

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

Разберем структуру и содержимое файла конфигурации ядра для x86 архитектуры более подробно. Комментарии в нем начинаются с символа #.

  • include «arch/i386/conf/std.i386» – в std.i386 хранятся некоторые опции, которые необходимы для работы NetBSD на x86 платформе.
  • options INCLUDE_CONFIG_FILE – вставить содержимое файла конфигурации ядра в бинарник нового ядра.
  • ident «my new kernel» – указываем имя нашего будущего ядра.
  • maxusers 32 – указываем примерное количество пользователей нашей системы. Но даже если вы намерены использовать ее в гордом одиночестве, рекомендую поставить значение «с запасом».
  • CPU support – указываем, какой тип процессора установлен на компьютере. Например: options I686_CPU.

CPU-related options

Опции, связанные с процессором:

  • options MATH_EMULATE – эмулирование математического сопроцессора.
  • options VM86 – виртуальная 8086 эмуляция.
  • options USER_LDT – стоит включить, если планируется использование эмулятора WINE.
  • options PERFCTRS – поддержка мониторинга некоторых счетчиков.

Если NetBSD не полностью видит память, установленную в вашем компьютере, имеет смысл воспользоваться следующими опциями.

  • options REALBASEMEM= – размер базовой памяти (в Кб).
  • options REALEXTMEM= – размер расширенной памяти (в Кб).

Standard system options

Стандартные опции системы:

  • options UCONSOLE – пользователи могут использовать TIOCCONS (нужно для xconsole).
  • options INSECURE – отключить уровни безопасности ядра.
  • options RTC_OFFSET=0 – установка времени по GMT.
  • options NTP – запрещение цикла фазы/частоты NTP.
  • options KTRACE – системные вызовы идут через ktrace.
  • options SYSVMSG – очереди сообщений, как в SysV.
  • options SYSVSEM – семафоры, как в SysV.
  • options SYSVSHM – разделение памяти, как в SysV.
  • options LKM – возможность загружать модули ядра.

Diagnostic/debugging support options

Задаются опции поддержки диагностики и отладки.

Compatibility options

Различные опции совместимости. Также тут мы указываем поддержку запуска уже скомпилированных для других ОС программ. Например:

  • options COMPAT_LINUX – совместимость с приложениями, собранными для Linux.
  • options COMPAT_FREEBSD – совместимость с приложениями от FreeBSD.

File systems

Указываем, поддержку каких файловых систем мы хотим иметь. Замечу, что поддержку файловых систем можно подключать также в виде модуля ядра.

File system options

Различные опции для файловых систем:

  • options QUOTA – возможность установки квот на дисковое пространство.
  • options SOFTDEP – поддержка «soft updates» для файловой системы FFS. Очень рекомендую включить, потому как скорость работы с данными на жестком диске значительно возрастет.
  • options NFSSERVER – стоит включить, если машина будет использоваться как NFS-сервер.

Networking options

Опции для поддержки сети:

  • options GATEWAY – поддержка фовардинга пакетов.
  • options INET – «базовый» набор (IP + ICMP + TCP + UDP).
  • options INET6 – поддержка IPv6.
  • options IPSEC – поддержка IP security.
  • options MROUTING – IP multicast routing.
  • options NS – поддержка XNS.
  • options NSIP – XNS-туннель через IP.
  • options ISO,TPIP – поддержка OSI.
  • options EON – OSI-туннели через IP.
  • options CCITT,LLC,HDLC – поддержка x.25 сетей.
  • options NETATALK – поддержка протокола AppleTalk.
  • options PPP_BSDCOMP – поддержка BSD-Compress сжатия для PPP.
  • options PPP_DEFLATE – поддержка Deflate-сжатия для PPP.
  • options PPP_FILTER – активный фильтр для PPP. Нужен bpf.
  • options IPFILTER_LOG – поддержка ведения логов firewall.
  • options IPFILTER_DEFAULT_BLOCK – запрещение прохождения всех пакетов по умолчанию.

Дальше в файле конфигурации ядра идут опции для включения вывода подробных сообщений от некоторых подсистем. Добавление этих опций может существенно увеличить размер вашего ядра. Для примера включим поддержку подробных сообщений для USB-устройств: options USBVERBOSE.

wscons options

Различные опции для консоли wscons.

  • options WSEMUL_xxx – в качестве xxx вписываем, какой тип эмуляции терминала мы хотим видеть на экранах, которые автоматически создаются системой. По умолчанию VT100/VT220.
  • options WS_KERNEL_FG=WSCOL_color – цвет сообщений на консоли.
  • options WS_KERNEL_BG=WSCOL_color – цвет фона в консоли. По умолчанию используется черный фон и зеленые сообщения (как в «Матрице»).
  • compatibility to other console drivers – совместимость с другими драйверами консоли.
  • options WSDISPLAY_COMPAT_xxx – задаем совместимость, с какими драйверами консоли мы хотим иметь дело.
  • options WSDISPLAY_DEFAULTSCREENS=x – количество экранов, которые система создает автоматически. Рекомендую поставить 1 или 2, почему именно будет рассказано в разделе русификация.
  • options PCDISPLAY_SOFTCURSOR – использование курсора, который не мигает.
  • options VGA_CONSOLE_SCREENTYPE=««80x24»» – изменение стандартного разрешения в консоли.

Kernel root file system and dump configuration

Указываем, где располагается корневая файловая система с ядром.

config     netbsd root on ? type ?

Device configuration

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

  • Продвинутая система управления питания.

apm0at mainbus0

Можно также задавать различные опции. Все подробно описано в man 4 apm.

  • mainboard audio chips – поддержка некоторых встроенных звуковых карт. Для примера включим поддержку ESS AudioDrive.

ess* at =pnpbios? index ?

  • com port – поддержка com-порта.

com* at pnpbios? index ?

  • parallel port – параллельный порт.

lpt* at pnpbios? index ?

  • Клавиатуры и мышки:

pckbc*  at pnpbios? index ?

  • Контроллер флопа:

fdc* at pnpbios? Index

  • PCI bus support поддержка шины PCI.
  • Configure PCI using BIOS information – различные опции, для того чтобы шина PCI использовала информацию из BIOS.
  • PCI bridges – поддержка различных PCI-мостов.
  • EISA bus support – поддержка шины EISA.
  • ISA bus support – поддержка шины ISA.
  • PCMCIA bus support – поддержка шины PCMCIA.
  • MCA bus support – поддержка шины MCA.
  • ISA PCMCIA controllers – включение различных ISA PCMCIA-контроллеров.
  • PCI PCMCIA controllers – включение различных PCI PCMCIA-контроллеров.
  • ISA Plug-and-Play bus support – поддержка ISA PnP-шины.
  • ISA Plug-and-Play PCMCIA controllers – ISA PnP PCMCIA-контроллеры.
  • CardBus bridge support – поддержка CardBus-мостов.
  • CardBus bus support – поддержка CardBus-шины.
  • Coprocessor Support – поддержка математического сопроцессора (не отключите случайно).
  • Console Devices – драйвера консоли.
  • Keyboard layout configuration – конфигурация клавиатуры для нескольких языков. Русского среди них, к сожалению, нет.
  • pccons-specific options – специальные pccons-опции.
    • options XSERVER_DDB – PF12 – переведет вас в DDB, когда будет запущен X-сервер.
    • options XSERVER – поддержка X-сервера.
    • Контроллер клавиатуры.

    pckbc0  at isa?

    • Клавиатура.

    pckbd* at pckbc?

    • PS/2 мышка для wsmouse.

      pms* at pckbc?

  • Serial Devices – последовательные устройства.
  • PCI serial interfaces – PCI-последовательные интерфейсы.
  • ISA Plug-and-Play serial interfaces – ISA PnP-последовательные интерфейсы.
  • PCMCIA serial interfaces – PCMCIA-последовательные интерфейсы.
  • CardBus serial interfaces – CardBus-последовательные интерфейсы.
  • ISA serial interfaces – последовательные интерфейсы для ISA.
  • MCA serial interfaces – последовательные интерфейсы для MCA.
  • Parallel Printer Interfaces – параллельные интерфейсы для принтеров.
  • PCI parallel printer interfaces – PCI-параллельный интерфейс для принтеров.
  • ISA parallel printer interfaces – ISA-параллельный интерфейс для принтеров.
    • Стандартный параллельный порт:

      lpt0 at isa? port 0x378 irq 7

  • Hardware monitors – различные системные мониторы. (Естественно, не те, на которых мы видим выводимую информацию, а те, которые занимаются мониторингом состояния чего бы то ни было).
  • I2O devices – различные I2O-устройства.
  • SCSI Controllers and Devices – различные SCSI-контроллеры и устройства.
  • PCI SCSI controllers – PCI SCSI-контроллеры.
  • EISA SCSI controllers – EISA SCSI-контроллеры.
  • PCMCIA SCSI controllers – PCMCIA SCSI-контроллеры.
  • ISA Plug-and-Play SCSI controllers – ISA PnP SCSI-контроллеры.
  • ISA SCSI controllers – ISA SCSI-контроллеры.
  • CardBus SCSI cards – SCSI CarBus-карты.
  • MCA SCSI cards – SCSI MCA-карты.
  • SCSI bus support – поддержка шины SCSI.
  • SCSI devices – различные SCSI-устройства.
    • SCSI-диски:

    sd* at scsibus? target ? lun ?

    • SCSI-ленточные устройства:

    st* at scsibus? target ? lun ?

    • SCSI CDROM:

    cd* at scsibus? target ? lun ?

    • SCSI-«автосменщики» чего-нибудь:

    ch* at scsibus? target ? lun ?

    • SCSI-«автовкладыватели» чего-нибудь:

    ses* at scsibus? target ? lun ?

    • SCSI-сканеры:

    ss* at scsibus? target ? lun ?

    • Неизвестные SCSI-устройства:

     uk* at scsibus? target ? lun ?

  • RAID controllers and devices – различные RAID-контроллеры и устройства.
  • ISA Plug-and-Play IDE controllers – ISA PnP IDE-контроллеры.
  • PCMCIA IDE controllers – PCMCIA IDE-контроллеры. Также есть поддержка некоторых ISA ST506, ESDI и IDE-контроллеров.
  • IDE drives – IDE-устройства.
  • ATAPI bus support – поддержка ATAPI-шины.
  • ATAPI devices – различные ATAPI-устройства.
    • ATAPI CDROM:

    cd* at atapibus? drive ? flags 0x0000

    • ATAPI HDD:

    sd* at atapibus? drive ? flags 0x0000

    • TAPI-ленточные устройства:

    st* at atapibus? drive ? flags 0x0000

    • Неизвестные устройства для шины ATAPI:

      uk* at atapibus? drive ? flags 0x0000

  • Miscellaneous mass storage devices – различные устройства для хранения информации.
  • ISA floppy – поддержка флопов.
    • Стандартный контроллер для флопа:

      fdc0 at isa? port 0x3f0 irq 6 drq 2

  • ISA CD-ROM devices – CD-ROM, подключенные к ISA-устройствам.
  • ISA tape devices – различные ленточные устройства, подключенные к ISA-шине.
  • MCA ESDI devices – различные MCA ESDI-устройства.
  • Network Interfaces – различные сетевые карты.
  • PCI network interfaces – PCI-сетевые карты.
  • EISA network interfaces – EISA-сетевые карты.
  • ISA Plug-and-Play network interfaces – ISA PnP-сетевые карты.
  • PCMCIA network interfaces – PCMCIA-сетевые карты.
  • ISA network interfaces – ISA-сетевые карты.
  • CardBus network cards – CarBus-сетевые карты.
  • MCA network cards – MCA-сетевые карты.
  • MII/PHY support – поддержка различных MII/PHY-устройств.
  • USB Controller and Devices – различные USB-контроллеры и устройства.
  • PCI USB controllers – PCI USB-контроллеры.
  • USB bus support – поддержка шины USB.
  • USB Hubs – USB-хабы.
  • USB HID device – USB HID-устройства.
  • USB Mice – USB-мышки.
  • USB Keyboards – USB-клавиатуры.
  • USB Printer – USB-принтеры.
  • USB Modem – USB-модемы.
  • USB Mass Storage – устройства хранения информации на USB.
  • USB audio – USB-звуковые карты.
  • USB MIDI – USB MIDI-устройства.
  • USB IrDA – USB IrDA-устройства.
  • USB Ethernet adapters – USB-сетевые карты.
  • Serial adapters – различные последовательные USB-адаптеры.
  • USB scanners – USB-сканеры и сканеры, которые используют эмуляцию SCSI.
  • USB Generic driver – USB-драйвер.
  • Audio Devices – различные звуковые карты.
  • PCI audio devices – PCI-звуковые карты.
  • ISA Plug-and-Play audio devices – ISA PnP-звуковые карты.
  • ISA audio devices – ISA-звуковые карты.
  • PCMCIA audio devices – PCMCIA-звуковые карты.
  • Audio support – поддержка звука для вышеперечисленных карт.
  • MPU 401 UARTs – различные MPU 410 карты.
  • MIDI support – поддержка MIDI.
    • PC-спикер:

      spkr0 at pcppi?

  • FM-Radio devices – различные FM-тюнеры.
  • ISA radio devices – ISA FM-тюнеры.
  • PCI radio devices – PCI FM-тюнеры.
  • TV cards – TV-тюнеры.
  • Mice – различные мышки.
  • Joysticks – различные джойстики.
  • ISA Plug-and-Play joysticks – ISA PnP-джойстики.
  • PCI joysticks – PCI-джойстики.
  • ISA joysticks – ISA-джойстики.
  • Pseudo-Devices – различные псевдоустройства.
  • disk/mass storage pseudo-devices – псевдоустройства для хранения информации.
    • pseudo-device ccd – concatenated/striped disk devices.
    • pseudo-device raid – RAIDframe disk drive.
    • options RAID_AUTOCONFIG – автоконфигурирование RAID-компонентов.
    • pseudo-device md – поддержка дисков в память – ramdrive.
    • pseudo-device vnd – похожий на диски интерфейс для файлов.
  • network pseudo-devices – сетевые псевдоустройства.
    • pseudo-device bpfilter – берклинский пакетный фильтр.
    • pseudo-device ipfilter – firewall + NAT.
    • pseudo-device loop – интерфейс обратной петли (127.0.0.1).
    • pseudo-device ppp – протокол Point-to-Point.
    • pseudo-device pppoe – поддержка PPP через Ethernet.
    • pseudo-device sl – Serial line IP.
    • pseudo-device irframetty – IrDA frame line discipline.
    • pseudo-device tun – сетевые туннели через tty.
    • pseudo-device gre – L3 через IP-туннель.
    • pseudo-device gif – IPv[46] через IPv[46]-туннель.
    • pseudo-device faith – трансляция IPv[46] tcp релея.
    • pseudo-device stf – инкапсуляции IPv6 через IPv4
    • pseudo-device vlan – поддержка VLAN.
    • pseudo-devic bridge – сетевой мост.
  • miscellaneous pseudo-devices – другие псевдоустройства.
    • pseudo-device pty – псевдотерминалы.
    • pseudo-device rnd – поддержка /dev/random.
    • pseudo-device clockctl – контроль часов.
  • wscons pseudo-devices – псевдоустройства wcons.
    • pseudo-device wsmux – мультиплексор клавиатуры и мышки.
    • pseudo-device wsfont – /dev/wsfont.

После того как закомментировано все ненужное и добавлено нужное, приступаем к сборке нового ядра.

#config newkernel

Если никаких ошибок не выявлено, то:

#cd ../compile/newkernel/

#make depend && make

Начинается непосредственно компиляция. Процесс компиляции проходит достаточно быстро, у меня на Cel466/64 Мб RAM она заняла порядка 15 минут. На PIII-550/320 Мб RAM – меньше 5 минут.

Если компиляция прошла успешно, устанавливаем новое ядро.

#cp /netbsd /netbsd.old

Делаем резервную копию старого ядра, которое располагается в корневом разделе.

#cp netbsd /

Копируем новое ядро (которое находится в текущем каталоге) в корень. Перезагружаемся:

#reboot

Если новое ядро не загружается по каким-либо причинам, нам нужно загрузить старое, работоспособное ядро, недаром мы его сохранили. В самом начале загрузки NetBSD, когда идет обратный отсчет времени, нажимаем любую клавишу, отличную от enter, и попадаем в boot-меню. Далее вводим:

netbsd.old –s

Вот и все, система загружается со старым ядром. Смотрите внимательно файл конфигурации ядра и думайте, что вы не так сделали. Да, вернемся к размерам ядра, после того как я первый раз пересобрал ядро, его размер уменьшился до ~1.5 Мб. Потом удалось сделать рабочее ядро размером ~1.2 Мб, что почти в 5.5 раз меньше, чем стандартное ядро.

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

#dmesg > dmesg.file

Поместим вывод команды dmesg в файл dmesg.file. На основе этих данных и будет строиться наше новое ядро. Так же в текущий каталог положите ваш файл конфигурации ядра, ну или GENERIC.

#adjustkernel –mesg dmesg.file –outfile newkernel –file GENERIC

Я решил посмотреть, какой файл конфигурации программа создаст на основе GENERIC-файла. В принципе файл конфигурации получился вполне работоспособный. Но в любом случае ему требуется доводка руками. Ведь программа не знает, нужна ли нам на этой машине поддержка IPv6 или файловой системы CODA. А в остальном только положительные отзывы.

Настройка firewall

В качестве firewall в NetBSD используется IPFILTER. Для начала добавляем в /etc/rc.conf строку: IPFIREWALL=YES. Удостоверимся, что ядро собрано с опцией IPFILTER_ DEFAULT_BLOCK, как видно, эта опция служит для того, чтобы по умолчанию все пакеты отвергались. Мне кажется, такой подход при конфигурировании firewall единственно правильный – сначала все закроем, а потом откроем только то, что нам нужно. Правила firewall в файле /etc/ipf.conf. Давайте разберем синтаксис написания правил для IPFILTER. Для того чтобы обозначить, пропускать пакет или нет, используются ключевые слова – pass и block. Для обозначения направления, в котором проходит пакет, используются ключевые слова in и out. Интерфейс указывается ключевым словом on, за которым следует название интерфейса. Маска сети задается как в «дробном», так и в виде xxx.xxx.xxx.xxx. Имеется поддержка фильтрации по имени протокола. Узнать полный список протоколов можно из файла /etc/protocols.

Поддерживается блокировка фрагментированных IP-пакетов. Для TCP/UDP работает фильтрация по номеру порта. Можно использовать некоторые операции над номерами портов.

  • = или eq – истина, если номер порта равен передаваемому значению.
  • > или gt – истина, если номер порта больше, чем передаваемое значение.
  • < или lt – истина, если номер порта меньше, чем передаваемое значение.
  • != или ne – истина, если номер порта не равен передаваемому значению.
  • => или ge – истина, если номер порта больше или равен переданному значению.
  • <= или le – истина, если номер порта меньше или равен переданному значению.

Возможно сравнение диапазонов:

  • N <> N1 – истина, если порт меньше, чем N, или больше, чем N1.
  • N >< N1 – истина, если порт больше, чем N, и меньше, чем N1.

Также в этом firewall есть поддержка фильтрации по TCP-флагам, возможность ответа на заблокированный пакет, keep-state-фильтрация. В общем поддерживается все, что нужно для гибкой настройки правил, и даже немного больше. Для примера напишем простенький набор правил firewall.

Разрешаем весь icmp-трафик:

pass in on proto icmp all

pass out on proto icmp all

Открываем порты для работы с SSH:

pass in proto tcp from any to port = 22

pass out proto tcp from to any port = 22

Открываем порты для работы с DNS:

pass in proto udp from any to port = 53

pass out proto udp from to any port = 53

Вместо xx указываем сетевой интерфейс, вместо IP указываем наш IP-адрес. Я умышленно привел такой простой пример, так как написание правил для firewall – дело достаточно личное, каждый их составляет так, как ему удобно.

Но, я думаю, вышеприведенного примера вполне достаточно, для того чтобы на его основе построить более сложный набор правил. Для получения более подробной информации о IPFILTER очень рекомендую почитать IPFILTER HOW-TO (http://www.unixcircle.com/ipf).

Заключение

Подошла к концу первая часть статьи. Для начала изучения, по-моему, достаточно. Если этой статьей я привлек ваше внимание к NetBSD, значит моя цель несомненно выполнена.

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


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru