Диалапные радости рыбаков - Рулим модемом в собственной операционке

Andrushock

Xakep, номер #050, стр. 050-072-2


/* поддержка сетевого протокола TCP/IP версии 6 */

option INET6

/* включение режима выборочных подтверждений получения пакетов */

option TCP_SACK

/* возможность мониторинга пакетов, проходящих через PPP-интерфейс */

option PPP_FILTER

/* включение программного сжатия для PPP-соединений */

option PPP_BSDCOMP

option PPP_DEFLATE

/* поддержка брандмауэра Packet Filter (pf) */

pseudo-device pf 1

/* псевдоустройство для журналирования работы pf */

pseudo-device pflog 1

/* фильтры пакетов Беркли, требуются для работы tcpdump, nmap и др. */

pseudo-device bpfilter 8

/* поддержка сетевого интерфейса обратной петли */

pseudo-device loop 2

/* поддержка модулятора-демодулятора */

pseudo-device tun 2

Я обычно директивы INET6 и PPP_FILTER не включаю в ядро и использую минимальное количество экземпляров псевдоустройств обратной петли и поддержки ppp-оборудования, необходимое для корректной работы:

pseudo-device loop 1

pseudo-device tun 1

4) Теперь, чтобы произвести синтаксический анализ конфигурационного файла, а также выработать специальный каталог с файлом правила сборки ядра и заголовочными файлами, требуемыми для компиляции, необходимо программе config передать в качестве аргумента имя нашего будущего ядра:

# config FISH

5) При отсутствии ошибок перейти в созданный каталог:

# cd ../compile/FISH

6) Удалить временные файлы, выработать зависимости, скомпилировать ядро:

# make clean && make depend && make

7) Сохранить копию старого ядра на случай аварии:

# cp /bsd /bsd.generic

8) Заменить старое ядро новым:

# cp bsd /bsd

9) Перезагрузиться:

# reboot

Для оптимизации кода можно перед четвертым пунктом в файле /usr/src/sys/arch/i386/conf/Makefile.i386 изменить тип аппаратных средств:

CMACHFLAGS=-march=i486 на CMACHFLAGS=-mcpu=i686 -march=i686

Вот мы и добрались до пересборки всей операционной системы. Сначала необходимо создать файл с описанием пакетов и модулей, которые для нас не представляют никакого интереса (все возможные варианты настройки можно посмотреть в файле /usr/share/mk/bsd.own.mk):

# vi /etc/mk.conf

/* отключаем систему одноразовых паролей S/Key */

SKEY=no

/* отключаем службу сетевой аутентификации Kerberos */

KERBEROS=no

KERBEROS5=no

/* отключаем поддержку сетевой файловой системы. Yellow Pages (YP) – это устаревшее название NFS */

YP=no

/* отключаем механизм контроля доступом TCP-Wrappers */

TCP_WRAPPERS=no

/* отключаем службу AFS */

AFS=no

Сохраняем изменения и пересобираем систему:

# cd /usr/src

# rm -r /usr/obj/*

# make obj

# make build

Этот процесс, правда, занимает довольно много времени, зато в итоге ты получишь _собственный_ BSD дистрибутив, заточенный под твои конкретные нужды. Разве не об этом ты мечтал? ;) Строго говоря, в OpenBSD нужно довольно осторожно подходить к перекомпиляции ядра без перекомпиляции всей системы или отдельных ее частей, например, только библиотек и некоторых программ, так как может произойти десинхронизация kernel'а и userland'а, вследствие чего такие утилиты как w, who, ps, top, pfctl и другие просто откажутся работать.

Назад на стр. 050-072-1  Содержание  Вперед на стр. 050-072-3