Ядро FreeBSD (...вроде не ламер, а никак...)

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Alve
Сообщения: 12

Ядро FreeBSD

Сообщение Alve »

Привет, All! Подскажите, пожалуйста, где найти _работоспособную_ инструкцию по пересборке ядра БСД 5.2.1 или расскажите основные пункты. Не могу найти - в разных книжках всё по разному, рекомендуют разные наборы команд. Хотелось бы конкретнее :) Заранее спасибо.
З.Ы. Исходники есть, конфиги уже исправил. Что правильнее всего делать дальше?
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Ядро FreeBSD

Сообщение alv »

(Alve @ Среда, 14 Сентября 2005, 10:01) писал(а):Привет, All! Подскажите, пожалуйста, где найти _работоспособную_ инструкцию по пересборке ядра БСД 5.2.1 или расскажите основные пункты. Не могу найти - в разных книжках всё по разному, рекомендуют разные наборы команд. Хотелось бы конкретнее :) Заранее спасибо.
З.Ы. Исходники есть, конфиги уже исправил. Что правильнее всего делать дальше?

наиболее правильный порядок действий для любой текущей версии описан в ее исходниках - /usr/src/Makefile,
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: Ядро FreeBSD

Сообщение polachok »

в хендбуке, а также у скромного alv'a в книжке :)
а вообще я делаю так:
cvsup -g -L 2 ~/current.sup
cd /usr/src
make buildkernel && make buildworld && shutdown +1
после перехода в single user:
mergemaster -p
make installkernel && make installworld
mergemaster

(я всегда после обновлений пересобираю world - вам это, наверное, не надо -так что хватит только make KERNCONF=YOUR_CONF buildkernel && make KERNCONF=YOUR_CONF installkernel
И немедленно выпил.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Ядро FreeBSD

Сообщение alv »

2polachok
Вы все совершенно правильно сказали на данный момент времени. Просто на моей памяти весь этот процесс столько раз менялся в мелочах (влекших иногда, однако, фатальные последствия), типа - нужна обязательная перезагрузка с single mode или достаточно перейти в single mode просто, и так далее, что я, подобно папаше Мюллеру из гестапо, перестал верить кому бы то ни было, кроме Makefile текущей ветки исходников (в том числе и самому себе :-))
Впрочем, и Makefile текущих версий - тоже не панацея. ИМХО, один из mergemaster вовсе не обязателен
И еще они забывают предупредить, что после перезагрузки в single mode нужно перемонтировать на r/w все задействуемые файловые системы

/sbin/mount -a
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: Ядро FreeBSD

Сообщение polachok »

да-да, необязателен первый (но рекомендуется - с комментарием типа "все равно хуже не будет, а лучше вполне возможно"), это верно.
/OFFTOP а что это Вы ко мне на вы :) ?
И немедленно выпил.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Ядро FreeBSD

Сообщение alv »

(polachok @ Среда, 14 Сентября 2005, 18:42) писал(а):/OFFTOP а что это Вы ко мне на вы :) ?

привычка старого бюрократа, исправлюсь :-)
Спасибо сказали:
Alve
Сообщения: 12

Re: Ядро FreeBSD

Сообщение Alve »

Спасибо. Сегодня попробую. Но тогда спрошу ещё и вот о чём. Точно такая же ситуация с файлом конфигурации - по учебнику(!) не получается собрать ядро, причём конфиг ядра очень мал :blink: . Встречаются в разных источниках шаманские команды, после которых (насколько я понял) можно доп. опции получить. Так ли это?
Понимаете ли, ядро тоже же Red Hat'a собирал без проблем, а с BSD не совладаю - почему-то при всей логичности и стройности системы, сборка ядра выглядит странно. А пересобирать надо, будем сервера переводить на Free...
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Ядро FreeBSD

Сообщение alv »

полный список опций - в файле LINT (в NOTES, говорят, не все)
по умолчанию в пятерке LINT'а нет, его нужно создать командой make LINT
но реально обычно требуется наоборот - из ядра GENERIC повычеркивать все ненужные опции (отсутствующие сетевые и скази-карты, например)
Спасибо сказали:
Аватара пользователя
Kotjara
Сообщения: 307
ОС: FreeBSD 7.0/Ubuntu 8.04

Re: Ядро FreeBSD

Сообщение Kotjara »

Alve
Процессс проще некуда. Вам нужна просто пересборка ядра? Или всего мира?
I Для ядра
1) cd /usr/src/sys/i386/conf
2) cp GENERIC MY_CONFIG (соответсвенно правим его как надо)
3) /usr/sbin/config MY_CONFIG
4) cd ../compile/MY_CONFIG && make depend&&make&&make install
Всё :)

II Для мира и ядра (после cvsup-а для исходников системы)
1) cd /usr/src/sys/i386/conf
2) cp GENERIC MY_CONFIG (соответсвенно правим его как надо)
3) cd /usr/src
4) make buildworld (сборка мира)
5) make buildkernel KERNCONF=MY_CONFIG (сборка ядра)
6) make installkernel KERNCONF=MY_CONFIG (установка ядра)
7) Сейчас точно не помню как для версии 5, но для версии 6 обычно советуют после этого шага перезагрузиться в single mode и выполнить команду
mergemaster -p
9) перезагрузка, cd /usr/src
10) make installworld
11) Перезагрузка
Всё, процесс окончен. ;)
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Ядро FreeBSD

Сообщение alv »

Kotjara писал(а):
22.09.2005 09:30
7) Сейчас точно не помню как для версии 5, но для версии 6 обычно советуют после этого шага перезагрузиться в single mode и выполнить команду
mergemaster -p

да в общем-то помнить и не обязательно (я тоже перестал запоминать), просто поглядеть в /usr/src/Makefile, там точная последовательность действий именно для той версии, к которой относится /usr/src
PS В случае расхождения с др. источниками - верить только /usr/src/Makefil
Спасибо сказали:
Аватара пользователя
Marduk
Сообщения: 247

Re: Ядро FreeBSD

Сообщение Marduk »

Kotjara писал(а):
22.09.2005 09:30
Alve
Процессс проще некуда. Вам нужна просто пересборка ядра? Или всего мира?
I Для ядра
1) cd /usr/src/sys/i386/conf
2) cp GENERIC MY_CONFIG (соответсвенно правим его как надо)
3) /usr/sbin/config MY_CONFIG
4) cd ../compile/MY_CONFIG && make depend&&make&&make install
Всё :)

II Для мира и ядра (после cvsup-а для исходников системы)
1) cd /usr/src/sys/i386/conf
2) cp GENERIC MY_CONFIG (соответсвенно правим его как надо)
3) cd /usr/src
4) make buildworld (сборка мира)
5) make buildkernel KERNCONF=MY_CONFIG (сборка ядра)
6) make installkernel KERNCONF=MY_CONFIG (установка ядра)
7) Сейчас точно не помню как для версии 5, но для версии 6 обычно советуют после этого шага перезагрузиться в single mode и выполнить команду
mergemaster -p
9) перезагрузка, cd /usr/src
10) make installworld
11) Перезагрузка
Всё, процесс окончен. ;)

После make installworld должен следовать mergemaster.
[ Arch Linux || xmonad || dzen2 ]
Спасибо сказали:
Аватара пользователя
Kotjara
Сообщения: 307
ОС: FreeBSD 7.0/Ubuntu 8.04

Re: Ядро FreeBSD

Сообщение Kotjara »

После make installworld должен следовать mergemaster.

точнее mergemaster -p
и перед installworld. Так у меня в 6.5 BETA. А так првильно alv сказал, читайте в /usr/src/
Спасибо сказали:
Аватара пользователя
koshak
Сообщения: 61

Re: Ядро FreeBSD

Сообщение koshak »

а чем лучше makeworld? Мне время жалко убивать на это. Почему не легче просто ядро пересобрать?
Время уходит. А мы остаемся.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: Ядро FreeBSD

Сообщение alv »

koshak писал(а):
28.09.2005 13:59
а чем лучше makeworld? Мне время жалко убивать на это. Почему не легче просто ядро пересобрать?

при переходе с ветки на ветку весь юзерланд, скорее всего, просто не будет нормально работать
при переходе с версии на версию такое тоже случается :-)
но обычно с версии X.Y на X.Z, если Z=Y+1(2), можно обойтись и без пересборки мира. Правда, и смысла в этом не очень много :-)
Спасибо сказали:
Аватара пользователя
Marduk
Сообщения: 247

Re: Ядро FreeBSD

Сообщение Marduk »

Kotjara писал(а):
27.09.2005 15:38
После make installworld должен следовать mergemaster.

точнее mergemaster -p
и перед installworld. Так у меня в 6.5 BETA. А так првильно alv сказал, читайте в /usr/src/

Kotjara и написал mergemaster -p перед make installworld. А после - запускается ведь просто mergemaster без -p.
[ Arch Linux || xmonad || dzen2 ]
Спасибо сказали:
Rohan
Сообщения: 170

Re: Ядро FreeBSD

Сообщение Rohan »

А какое ядро у FreeBSD ? Монолитное?
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: Ядро FreeBSD

Сообщение polachok »

как и у линукс - смешанное. монолит + модули.
Кстати, не пойму зачем повторяться?! В посте нумеро труа я описал правильный способ.
И немедленно выпил.
Спасибо сказали:
RedStalker_Mike
Сообщения: 108

Re: Ядро FreeBSD

Сообщение RedStalker_Mike »

На самом деле у FreeBSD не полностью монолитное ядро ) Его можно облегчить до такой степени, что оно будет напоминать ядро Соляриса. Официально это называется "Улучшенной архитектурой монолитного ядра", или просто говоря модульной. В хэндбуке об этом написано.
Along the Unixway...
Спасибо сказали:
Аватара пользователя
Kotjara
Сообщения: 307
ОС: FreeBSD 7.0/Ubuntu 8.04

Re: Ядро FreeBSD

Сообщение Kotjara »

RedStalker_Mike
Облегчить то его можно только в /boot/loader.conf дофига запихнуть прийдётся, вопрос только зачем?
И скорость IMHO не увеличится.
Кстати и каков объём kernel в Solaris?
У меня на сервере во Free 4.11 2119489
Спасибо сказали:
Аватара пользователя
Paul7
Сообщения: 40

Re: Ядро FreeBSD

Сообщение Paul7 »

Kotjara писал(а):
29.09.2005 15:58
RedStalker_Mike
Кстати и каков объём kernel в Solaris?
У меня на сервере во Free 4.11 2119489

OpenSolaris Nevada-22 SPARC - 1151216 B)
Кстати, "смешанных" ядер не бывает. Или микро, или нет. Модульность и микроядерность - теплое с мягким.
HP i2000 Dual Itanium / Debian Sarge & Win2k3
Sun Ultra 5 M270 / OpenSolaris Nevada-41
DEC Multia VX42 / OpenBSD 3.8
HP 9000 Model C100 / HP-UX B.11.00
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux

Re: Ядро FreeBSD

Сообщение polachok »

ну-ну, мелкое с мягким... микроядро - есть предельный вид модульности.
(я не говорил что это возможно в рамках одного ядра)

естественно с точки зрения пользователя, с точки зрения умника смешанных ядер и впрямь не бывает.
И немедленно выпил.
Спасибо сказали:
RedStalker_Mike
Сообщения: 108

Re: Ядро FreeBSD

Сообщение RedStalker_Mike »

2Kotjara:
Многие вещи не надо просисывать в loader.conf, они сами подгрузятся в момент необходимый. Модульность имеет то преимущество, что когда постоянно не нужен некий код в ядре, то мы его можем вынести за его пределы и загружать / выгружать по своему усмотрению.

Микроядро - это микроядро, а модульность - это модульность. Между ними есть схожие черты, безусловно, но тем не менее это разные вещи. Модульные - это улучшенные монолитные ядра, которые на самом деле тоже не являются уже монолитными ядрами, коли поддерживают модульность до значительного уровня. Но подобное разделение - это уже черта микроядерных систем. Т.е. мы получаем смешанную архитектуру. Но если строго формализовывать, то да, получается всё таки моно-ядро.
Along the Unixway...
Спасибо сказали: