Где хранится файл ядра freebsd 11. Дополнительные материалы по Freebsd. Подготовка сервера к настройке шлюза

дМС УВПТЛЙ СДТБ ОЕПВИПДЙНП ОБМЙЮЙЕ ЧУЕИ ЙУИПДОЩИ ЖБКМПЧ FreeBSD.

чП-РЕТЧЩИ, ДБЧБКФЕ УДЕМБЕН ЛТБФЛЙК ПВЪПТ ЛБФБМПЗБ, Ч ЛПФПТПН ВХДЕФ РТПЙУИПДЙФШ УВПТЛБ СДТБ. чУЕ ЛБФБМПЗЙ, ЛПФПТЩЕ ВХДХФ ХРПНЙОБФШУС, ВХДХФ ПФОПУЙФЕМШОЩНЙ РП ПФОПЫЕОЙА Л ПУОПЧОПНХ ЛБФБМПЗХ /usr/src/sys , ЛПФПТЩК ФБЛЦЕ ДПУФХРЕО ЛБЛ ЛБФБМПЗ /sys . ьФПФ ЛБФБМПЗ УПДЕТЦЙФ НОПЦЕУФЧП РПДЛБФБМПЗПЧ, РТЕДУФБЧМСАЭЙИ УПВПК ТБЪМЙЮОЩЕ ЮБУФЙ СДТБ, ОП ОБЙВПМЕЕ ЧБЦОЩН ДМС ОБУ ВХДЕФ ЛБФБМПЗ arch /conf , Ч ЛПФПТПН ЧЩ ВХДЕФЕ ТЕДБЛФЙТПЧБФШ ЛПОЖЙЗХТБГЙПООЩК ЖБКМ СДТБ Й Ч ЛПФПТПН ОБИПДЙФУС ЛБФБМПЗ compile , ЗДЕ ВХДЕФ УПВЙТБФШУС ЧБЫЕ СДТП. arch НПЦЕФ ВЩФШ i386 , amd64 , ia64 , powerpc , sparc64 ЙМЙ pc98 (БМШФЕТОБФЙЧОБС ЧЕФЧШ БРРБТБФОПЗП ПВЕУРЕЮЕОЙС, РПРХМСТОБС Ч сРПОЙЙ). чУЕ, ЮФП ОБИПДЙФУС ЧОХФТЙ ЛБФБМПЗБ ПРТЕДЕМЕООПК БТИЙФЕЛФХТЩ, ПФОПУЙФУС ФПМШЛП Л ЬФПК БТИЙФЕЛФХТЕ; ПУФБМШОПК ЛПД СЧМСЕФУС НБЫЙООП ОЕЪБЧЙУЙНЩН Й ПВЭЙН ДМС ЧУЕИ РМБФЖПТН, ОБ ЛПФПТЩЕ FreeBSD НПЦЕФ ВЩФШ РПФЕОГЙБМШОП РПТФЙТПЧБОБ. пВТБФЙФЕ ЧОЙНБОЙЕ ОБ МПЗЙЮЕУЛХА УФТХЛФХТХ ЛБФБМПЗПЧ, Ч ЛПФПТПК ЛБЦДПЕ РПДДЕТЦЙЧБЕНПЕ ХУФТПКУФЧП, ЛБЦДБС ЖБКМПЧБС УЙУФЕНБ Й ЛБЦДБС ПРГЙС ТБЪНЕЭБЕФУС Ч УЧПЈН УПВУФЧЕООПН ЛБФБМПЗЕ.

ч РТЙНЕТБИ ЬФПК ЗМБЧЩ РПДТБЪХНЕЧБЕФУС, ЮФП ЧЩ ЙУРПМШЪХЕФЕ БТИЙФЕЛФХТХ i386. еУМЙ БТИЙФЕЛФХТБ ЧБЫЕК УЙУФЕНЩ ПФМЙЮБЕФУС ПФ ЙУРПМШЪХЕНПК Ч РТЙНЕТБИ, ФП ЧБН ОЕПВИПДЙНП ВХДЕФ УППФЧЕФУФЧЕООП ЙЪНЕОЙФШ ЙНЕОБ ЛБФБМПЗПЧ.

рТЙНЕЮБОЙЕ:

еУМЙ ЛБФБМПЗ /usr/src/ ПФУХФУФЧХЕФ Ч ЧБЫЕК УЙУФЕНЕ (ЙМЙ ЬФПФ ЛБФБМПЗ РХУФ), ФП ЬФП ЪОБЮЙФ, ЮФП ЙУИПДОЩЕ ФЕЛУФЩ ОЕ ВЩМЙ ХУФБОПЧМЕОЩ. оБЙВПМЕЕ РТПУФПК УРПУПВ ХУФБОПЧЙФШ ЙИ - ЧПУРПМШЪПЧБФШУС , ЛБЛ ПРЙУБОП Ч тБЪДЕМљ21.5, > . дБМЕЕ, УПЪДБКФЕ УЙНЧПМЙЮЕУЛХА УУЩМЛХ ОБ /usr/src/sys/ :

# ln -s /usr/src/sys /sys

ъБФЕН, РЕТЕКДЙФЕ Ч ЛБФБМПЗ arch /conf Й УЛПРЙТХКФЕ ЖБКМ ЛПОЖЙЗХТБГЙЙ GENERIC Ч ЖБКМ У ЧЩВТБООЩН ЧБНЙ ЙНЕОЕН. оБРТЙНЕТ:

# cd /usr/src/sys/ i386 /conf # cp GENERIC MYKERNEL

рП ФТБДЙГЙЙ ЙНС УПУФПЙФ ЙЪ ВХЛЧ Ч ЧЕТИОЕН ТЕЗЙУФТЕ, Й ЕУМЙ ЧЩ РПДДЕТЦЙЧБЕФЕ ОЕУЛПМШЛП ЛПНРШАФЕТПЧ FreeBSD ОБ ТБЪМЙЮОПН ПВПТХДПЧБОЙЙ, ИПТПЫБС ЙДЕС ДПВБЧМСФШ ЬФП ЙНС Л ЙНЕОЙ ИПУФБ. нЩ ОБЪЧБМЙ СДТП MYKERNEL Ч ЬФПН РТЙНЕТЕ.

рПДУЛБЪЛБ:

рПНЕЭЕОЙЕ ЖБКМБ ЛПОЖЙЗХТБГЙЙ СДТБ Ч /usr/src НПЦЕФ ВЩФШ РМПИПК ЙДЕЕК. еУМЙ ЧЩ ЙУРЩФЩЧБЕФЕ РТПВМЕНЩ, ЙИ НПЦОП ТЕЫЙФШ ХДБМЙЧ /usr/src Й ОБЮБЧ ЧУЕ У ОБЮБМБ. рПУМЕ ЬФПЗП ПВЩЮОП ФТЕВХЕФУС ОЕУЛПМШЛП УЕЛХОД, ЮФПВЩ РПОСФШ, ЮФП ЧЩ ХДБМЙМЙ УПВУФЧЕООЩК ЖБКМ ОБУФТПКЛЙ СДТБ. оЕ ТЕДБЛФЙТХКФЕ ОЕРПУТЕДУФЧЕООП GENERIC , ПО НПЦЕФ ВЩФШ ФБЛЦЕ РЕТЕЪБРЙУБО Й РТЙ УМЕДХАЭЕН ПВОПЧМЕОЙЙ ДЕТЕЧБ ЙУИПДОЩИ ФЕЛУФПЧ , Й ЙЪНЕОЕОЙС СДТБ ВХДХФ РПФЕТСОЩ.

чЩ НПЦЕФЕ УПИТБОЙФШ ЖБКМ ЛПОЖЙЗХТБГЙЙ СДТБ Ч ДТХЗПН НЕУФЕ, Б ЪБФЕН УПЪДБФШ УЙНЧПМЙЮЕУЛХА УУЩМЛХ ОБ ЬФПФ ЖБКМ Ч ЛБФБМПЗЕ i386 .

оБРТЙНЕТ:

# cd /usr/src/sys/ i386 /conf # mkdir /root/kernels # cp GENERIC /root/kernels/ MYKERNEL # ln -s /root/kernels/ MYKERNEL

фЕРЕТШ ПФТЕДБЛФЙТХКФЕ ЖБКМ MYKERNEL Ч УЧПЈН МАВЙНПН ФЕЛУФПЧПН ТЕДБЛФПТЕ. еУМЙ ЧЩ ФПМШЛП ОБЮЙОБЕФЕ, ЕДЙОУФЧЕООЩН ДПУФХРОЩН ТЕДБЛФПТПН УЛПТЕЕ ЧУЕЗП ВХДЕФ vi , ЛПФПТЩК УМЙЫЛПН УМПЦЕО ДМС ФПЗП, ЮФПВЩ ПРЙУБФШ ЕЗП ЪДЕУШ, ОП Ч ВЙВМЙПЗТБЖЙЙ РЕТЕЮЙУМЕОП НОПЦЕУФЧП ЛОЙЗ, Ч ЛПФПТЩИ ЕЗП ЙУРПМШЪПЧБОЙЕ ИПТПЫП ПУЧЕЭЕОП. пДОБЛП FreeBSD РТЕДПУФБЧМСЕФ ВПМЕЕ РТПУФПК ТЕДБЛФПТ ee , ЛПФПТЩК, ЕУМЙ ЧЩ - ОПЧЙЮПЛ, РПДПКДЈФ ЧБН ВПМШЫЕ ЧУЕЗП. оЕ УФЕУОСКФЕУШ ЙЪНЕОСФШ УФТПЛЙ ЛПННЕОФБТЙЕЧ Ч ОБЮБМЕ ЖБКМБ, У ФЕН, ЮФПВЩ ПФПВТБЪЙФШ ЧБЫХ ЛПОЖЙЗХТБГЙА ЙМЙ ЙЪНЕОЕОЙС, ЛПФПТЩЕ ЧЩ УДЕМБМЙ РП УТБЧОЕОЙА У GENERIC .

еУМЙ ЧБН РТЙИПДЙМПУШ УПВЙТБФШ СДТП ДМС SunOS TM ЙМЙ ЛБЛПК-МЙВП ДТХЗПК ПРЕТБГЙПООПК УЙУФЕНЩ ФЙРБ BSD, НОПЗПЕ ЙЪ ФПЗП, ЮФП УПДЕТЦЙФУС Ч ЬФПН ЖБКМЕ ВХДЕФ ПЮЕОШ ЪОБЛПНП ЧБН. еУМЙ ЦЕ ЧЩ, ОБРТПФЙЧ, ЙУРПМШЪПЧБМЙ ДТХЗХА ПРЕТБГЙПООХА УЙУФЕНХ, ФБЛХА ЛБЛ DOS, ЖБКМ ЛПОЖЙЗХТБГЙЙ GENERIC НПЦЕФ РПЛБЪБФШУС ЧБН ЛТБКОЕ УМПЦОЩН, РПЬФПНХ УМЕДХКФЕ ЙОУФТХЛГЙСН Ч ТБЪДЕМЕ лПОЖЙЗХТБГЙПООЩК ЖБКМ НЕДМЕООП Й ЧОЙНБФЕМШОП.

оПЧПЕ СДТП ВХДЕФ УЛПРЙТПЧБОП Ч ЛБФБМПЗ /boot/kernel ЛБЛ /boot/kernel/kernel , Б УФБТПЕ СДТП ВХДЕФ РЕТЕНЕЭЕОП Ч /boot/kernel.old/kernel . фЕРЕТШ РЕТЕЪБЗТХЪЙФЕ УЙУФЕНХ ДМС ФПЗП, ЮФПВЩ ЙУРПМШЪПЧБФШ ОПЧПЕ СДТП. еУМЙ ЮФП-ФП РПКДЈФ ОЕ ФБЛ, ЧЩ НПЦЕФЕ ПВТБФЙФШУС Л ТБЪДЕМХ тЕЫЕОЙЕ РТПВМЕН Ч ЛПОГЕ ЬФПК ЗМБЧЩ, ЛПФПТЩК НПЦЕФ ПЛБЪБФШУС РПМЕЪЕО. оЕ ЪБВХДШФЕ РТПЮЙФБФШ ТБЪДЕМ, ЛПФПТЩК ПВЯСУОСЕФ ЛБЛ ЙУРТБЧЙФШ УЙФХБГЙА, ЛПЗДБ СДТП ОЕ ЪБЗТХЦБЕФУС .

рТЙНЕЮБОЙЕ:

дТХЗЙЕ ЖБКМЩ, ПФОПУСЭЙЕУС Л РТПГЕУУХ ЪБЗТХЪЛЙ, ФБЛЙЕ ЛБЛ ЪБЗТХЪЮЙЛ () Й ЕЗП ЛПОЖЙЗХТБГЙПООЩЕ ЖБКМЩ, ТБЪНЕЭБАФУС Ч /boot . нПДХМЙ УФПТПООЙИ РТПЙЪЧПДЙФЕМЕК НПЗХФ ВЩФШ РПНЕЭЕОЩ Ч /boot/kernel , ИПФС РПМШЪПЧБФЕМЙ ДПМЦОЩ ЪОБФШ, ЮФП ПЮЕОШ ЧБЦОП, ЮФПВЩ НПДХМЙ ВЩМЙ УЙОИТПОЙЪЙТПЧБОЩ У УПВТБООЩН СДТПН. нПДХМЙ, ОЕ ТБУУЮЙФБООЩЕ ОБ ТБВПФХ У УПВТБООЩН СДТПН, НПЗХФ ЧЩЪЧБФШ ОЕУФБВЙМШОПУФШ Й ОЕЛПТТЕЛФОПУФШ ТБВПФЩ.

В статье описано как компилировать ядро FreeBSD. При правильной конфигурации размер ядра может намного уменьшиться.

Для того, чтобы скомпилировать свое ядро необходимо установить исходники ядра (src- Source for everything but encryption). Если они уже установлены то заходим в каталог /usr/src/sys (FreeBSD kernel).Если же у вас не установлены исходники ядра, установить их можно через sysinstall. Считаем, что исходники ядра вы установили.

Под пользователем root идем в папку /usr/src/sys/i386/conf.

# cd /usr/src/sys/i386/conf

Копируем файл GENERIC, например в mykernel. Полученный файл и будем править.

Если у вас машина Pentium4, то советую сразу закоментировать строки:

Цитата
cpu I386_CPU
cpu I486_CPU
cpu I586_CPU

пусть наша машина будет настроена на определенный процессор и не распыляется на всякую фигню;)

Можно отключить не используемые устройства, что уменьшит размер ядра и соответсвенно нагрузку на процессор. Посмотреть какие у вас устройства можно коамандой dmesg, после загрузки компьютера.

Так же можно добавить устройства, которые по умолчанию не поддерживаются в ядре. Более подробно устройства описаны в файл LINT для FreeBSD ветки 4.х, и в файле NOTES для FreeBSD ветки 5.х.

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

Нам надо будет выполнить следующие команды:

Если все прошло удачно, то все что нам надо это перезагрузиться.

P.S. Советую перед эксперементами сохранить нормальное ядро, например под именем kernel.good и тогда если не загрузилось наше новое ядро, мы вместо kernel.old указажем boot kernel.good. Это предлагаю сделать, потмоу что при новом собирании ядра наш kernel.old перезапишется например не рабочим ядром и мы вообще не сможем загрузиться.

P.P.S. Сохранение хорошего рабочего ядра:

Для FreeBSD 4.x - команда cp /kernel /kernel.good

Для FreeBSD 5.x - команда cp -R /boot/kernel /boot/kernel.good

Второй способ обновления ядра:

Перейдите в каталог /usr/src.

Соберите ядро.

# make buildkernel KERNCONF=MYKERNEL

Установите новое ядро.

# make installkernel KERNCONF=MYKERNEL

Замечание: Этот способ построения требует наличия всех исходных файлов систем. Если вы только установили исходные файлы ядра, то используйте традиционный способ, как описано выше.

MYKERNEL - конфигурационный файл вашего ядра, который для i386 находится в папке /usr/src/sys/i386/conf. Если не указывать параметр KERNCONF, то соберется ядро GENERIC.

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

src — Source for everything but encryption

и потом выбрать

sys — /usr/src/sys (FreeBSD kernel)

.
Доставить можно через /stand/sysinstall.
Считаем, что исходники ядра вы установили.
Под пользователем root идем в папку /usr/src/sys/i386/conf.
Копируем файл GENERIC, например в mykernel. Полученный файл и будем править.
Если у вас машина Pentium4, то советую сразу закоментировать строки:

cpu I386_CPU
cpu I486_CPU
cpu I586_CPU

пусть наша машина будет настроена на определенный процессор и не распыляется на всякую фигню 😉
Можно отключить не используемы устройства, что уменьшит размер ядра и соответсвенно нагрузку на процессор. Посмотреть какие у вас устройства можно коамандой dmesg, после загрузки компьютера.
Так же можно добавить устройства, которые по умолчанию не поддерживаются в ядре. Более подробно устройства описаны в файл LINT для FreeBSD ветки 4.х, и в файле NOTES для FreeBSD ветки 5.х.

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

config mykernel - конфигурим ядро
cd ../../compile/mykernel
make depend
make
make install - устанавливаем ядро

Если все прошло удачно, то все что нам надо это перезагрузиться.

P.S. Советую перед эксперементами сохранить нормальное ядро, например под именем kernel.good и тогда если не загрузилось наше новое ядро, мы вместо kernel.old указажем boot kernel.good. Это предлагаю сделать, потмоу что при новом собирании ядра наш kernel.old перезапишется например не рабочим ядром и мы вообще не сможем загрузиться.

P.P.S. Сохранение хорошего рабочего ядра:
Для FreeBSD 4.x — команда cp /kernel /kernel.good
Для FreeBSD 5.x — команда cp -R /boot/kernel /boot/kernel.good

Второй способ обновления ядра:
Перейдите в каталог /usr/src.
# cd /usr/src

Соберите ядро.
# make buildkernel KERNCONF=MYKERNEL

Установите новое ядро.
# make installkernel KERNCONF=MYKERNEL

Замечание: Этот способ построения требует наличия всех исходных файлов систем. Если вы только установили исходные файлы ядра, то используйте традиционный способ, как описано выше.

MYKERNEL — конфигурационный файл вашего ядра, который для i386 находится в папке /usr/src/sys/i386/conf. Если не указывать параметр KERNCONF, то соберется ядро GENERIC.

Июнь 3, 2015 12:15 пп 2 161 views | Комментариев нет

Операционная система FreeBSD 10.1 по умолчанию использует ядро GENERIC. Эта стандартная конфигурация используется для поддержки большого количества аппаратных средств из коробки. Компиляция пользовательского ядра, в свою очередь, позволяет повысить безопасность, увеличить функциональность и улучшить производительность сервера.

Для этого FreeBSD использует две ветки кода: стабильную и текущую. Стабильная ветка – это последний релиз кода, готовый к производству. Текущая ветка – это последний релиз кода от команды разработчиков, который предоставляет передовые функции, но при этом более уязвим к ошибкам и нестабильностям системы. В данном руководстве используется стабильная ветка кода.

Это руководство покажет, как выполнить пользовательскую компиляцию ядра FreeBSD.

Требования

1: Загрузка исходного кода ядра

Сначала нужно загрузить исходный код операционной системы.

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

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

sudo pkg install subversion

По умолчанию система FreeBSD использует оболочку tcsh, которая использует внутреннюю хэш-таблицу команд в $PATH. После установки Subversion нужно выполнить команду rehash, благодаря которой система повторно читает конфигурационные файлы.

Теперь найдите копию последней стабильной ветки в каталоге /usr/src.

sudo svn co https://svn0.us-east.FreeBSD.org/base/stable/10 /usr/src

Возможно, система предложит принять сертификат сервера. Чтобы принять его, введите p, убедившись, что контрольная сумма файла (или fingerprint) совпадает с суммой, указанной внизу этой страницы .

2: Пользовательская настройка ядра

Теперь можно приступать к настройке ядра системы.

Согласно конвенции об именах конфигурационных файлов ядра, имя ядра должно записываться в верхнем регистре. В данном руководстве этот файл будет называться EXAMPLE. Настройки ядра хранятся в каталоге /usr/src/sys/architecture/conf; допустим, используется архитектура AMD64.

Откройте конфигурационный каталог:

cd /usr/src/sys/amd64/conf

Создайте файл EXAMPLE и откройте его для редактирования в любом текстовом редактореданном случае используется ее):

Ядро GENERIC поддерживает огромное количество различной аппаратуры; ядро EXAMPLE поддерживает только оборудование, необходимое для запуска сервера, все стандартные и ненужные устройства удалены. Также EXAMPLE поддерживает фаервол для фильтрации пакетов (pf), шейпинг трафика (altq), шифрование файловой системы (geom_eli) и безопасность IP (IPsec).

Примечание : Подробнее об опциях можно прочесть в документации FreeBSD . Попробуйте самостоятельно написать код для ядра.

3: Сборка и установка ядра

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

Вернитесь в каталог /usr/src и выполните команду make buildkernel, используя новый конфигурационный файл:

cd /usr/src
sudo make buildkernel KERNCONF=EXAMPLE

Это может занять некоторое время в зависимости от объёма ресурсов сервера (в среднем сервер в 1GB компилируется 90 минут).

После завершения перекомпиляции установите новое ядро:

sudo make installkernel KERNCONF=EXAMPLE

Затем перезапустите систему.

sudo shutdown -r now

После этого сервер отключит текущие сервисы, синхронизирует диски и обновит ядро.

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

sysctl kern.conftxt | grep ident

На экране должен появиться такой результат:

Настройка и перекомпиляция ядра выполнена успешно.

Tags: ,


Top