Как правильно построить минимальное ядро ​​FreeBSD?

Есть ли подходящий способ создания минимального ядра для FreeBSD? В руководстве FreeBSD отсутствует информация об этом. По умолчанию каталог /boot/kernel имеет довольно большой размер – около 450 МБ. Я хочу минимизировать отпечаток ядра и удалить все ненужные модули ядра и параметры. Должен ли я использовать параметр "NO_MODULES" в "NO_MODULES" /etc/make.conf ? Или использовать флаговые C-компиляции?

2 Solutions collect form web for “Как правильно построить минимальное ядро ​​FreeBSD?”

Есть несколько вещей, которые вы можете сделать, чтобы уменьшить размер и количество файлов в /boot/kernel .

Возможно, лучшее сохранение пространства должно быть установлено, установив WITHOUT_KERNEL_SYMBOLS в /etc/src.conf (если этот файл еще не существует, просто создайте его), и в следующий раз, когда вы installkernel , файлы символов отладки не будут установлены , Теперь их можно удалить, если вам нужно пространство сразу ( rm /boot/kernel/*.symbols )

Есть несколько настроек make.conf , которые контролируют, какие модули построены:

  • NO_MODULES – полностью отключить создание модулей
  • MODULES_OVERRIDE – указать модули, которые вы хотите создать.
  • WITHOUT_MODULES – список модулей, которые не должны быть построены

Опция NO_MODULES вероятно, слишком NO_MODULES , поэтому разумная комбинация двух других является лучшим выбором. Если вы точно знаете, какие модули вы хотите, вы можете просто установить их в MODULES_OVERRIDE . Обратите внимание, что WITHOUT_MODULES оценивается после MODULES_OVERRIDE , поэтому любой модуль, названный в обоих списках, не будет создан.

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

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

Хотя это может быть очень утомительно, наилучшим подходом является принятие небольших шагов, одновременное удаление одной или двух вещей и обеспечение правильной сборки и правильной сборки результирующей конфигурации. Однако, что бы вы ни делали, я настоятельно рекомендую вам сделать копию /usr/src/sys/<arch>/config/GENERIC и отредактировать копию. Если вы когда-нибудь так запутались, что единственный выход – начать с конфигурации по умолчанию, вы будете рады, что у вас все еще есть файл GENERIC в вашей системе!

Чтобы создать собственное ядро, вы можете либо передать имя конфигурации в командной строке, либо make KERNCONF=MYKERNCONF buildkernel , либо вы можете установить KERNCONF в KERNCONF /etc/make.conf . Убедитесь, что вы установили собственный файл конфигурации в /usr/src/sys/<arch>/config и система сборки сможет его найти.

«Правильное» ядро ​​является относительным понятием и зависит от ваших потребностей. Люди, которые должны спросить о создании ядра, не имеют бизнес-здания. Кстати, как вы придумали размер ядра FreeBSD размером 450 МБ

 root@neill-backup:~ # uname -a FreeBSD neill-backup.int.autonlab.org 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 21:02:49 UTC 2014 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 

Вот

 root@neill-backup:~ # du -h /boot/kernel/kernel 20M /boot/kernel/kernel 
  • Как удалить или сократить F1 Boot Prompt на USB-накопителе NanoBSD 4G с ошибкой «fdisk: / boot / mbr: Устройство не настроено»?
  • Почему FreeBSD обесценивает GCC в пользу Clang / LLVM?
  • Как отличить пул ZFS от монстров?
  • Руководство по загрузке BTX
  • Как вам заставить fsck при перезагрузке на FreeBSD10?
  • Пропущенные буквы в поиске zathura
  • Включение поддержки AddressSanitizer во FreeBSD
  • Изменение имени ОС по электронной почте от exim
  • PKG замедляется на FreeBSD, установленном на VirtualBox
  • Как объединить несколько жестких дисков в один большой жесткий диск в Linux?
  • Как установить аффинность определенного потока на FreeBSD?
  • Linux и Unix - лучшая ОС в мире.