Пробуем создать свой собственый кернел

Пробуем создать свой собственый кернел

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

Главный шаг в этом процессе определяется процедурой "make config". Скрипт задаст Вам ряд вопросов о том, какие именно параметры кернела Вы хотите подвергнуть изменению. Эти параметры включают:

- Эмуляцию математического сопроцессора,

- Различные драйвера устройств,

- Поддержку файловой системы,

- Поддержку сети,

- Поддержку приводов компакт-дисков, мыши, звуковых плат... и так далее.

Скрипт ненавязчиво предложит свои значения этих параметров, но целью регенерации кернела является изменение этих параметров на Ваши собственные, которые лучше согласуются с конфигурацией Вашего компьютера. Если Ваш компьютер включает в себя мышь Logitech, звуковую плату GUS и соединен с сетью через модем и dial-up РРР, то Вам не нужна поддержка NFS, сетевых плат Ethernet или приводов компакт-дисков. Если Вы дадите неправильный ответ на один из вопросов о конфигурации Вашего компьютера, это не приведет к фатальной ошибке ОС, просто в систему будет включен драйвер неработающего устройства (кернел очень большой и занимает много памяти) или Вы лишитесь какой-либо функции, например, поддержки мыши.

Поэтому прежде всего нужно ознакомиться с технической документацией по ОС Linux, которая сейчас широко доступна в печатном или электронном виде в сети Интернет. Затем следует досконально изучить, из каких устройств состоит Ваш компьютер, чтобы определиться с набором необходимых драйверов и сервисов при конфигурации кернела. Рекомендую составить список всех устройств с указанием их моделей и технических характеристик.

После этого можно приступить к работе по следующему графику:

1. Получить исходные тексты ядра ОС Linux

2. Распаковать его в каталог /usr/src

3. Создать ссылку с /linux-2.0.x на /linux - ln -s /linux-2.0.x linux

4. Открыть каталог (cd/usr/src/linux)... и можно начинать

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

make mrproper ; make config ; make dep ; make clean ; make zImage

Это пока все. Километры строк с системными сообщениями и вопросами о конфигурации кернела заполнят Ваш экран. Отвечайте на вопросы... и новое ядро для ОС Linux готово.

Сколько времени это займет?

- pentium/133 - можно принять душ, но ненадолго.

- pentium/66 - можно спуститься вниз выпить газировки.

- 486DX2/66 - можно спуститься вниз выпить газировки и почитать журнал.

- 486SX/25 - можно спуститься вниз выпить газировки, съесть мороженое, почитать журнал, посмотреть кинофильм.

- 386DX40 - можно спуститься вниз выпить газировки, съесть мороженое, почитать журнал, посмотреть кинофильм, постирать белье.

- 386SX-16 - можно спуститься вниз выпить газировки, съесть мороженое, почитать журнал, посмотреть кинофильм, съездить домой навестить родственников.

- 286 - ... это не охотничья собака.

Когда компиляция будет закончена, Вы можете найти свой новенький, блестящий кернел в каталоге:

/usr/src/linux/arch/i386/boot

Он будет называться zImage. Получилось!

Уверен, что сразу захочется попробовать его в деле. Но прежде несколько важных советов:

Совет #1: будьте уверены, что у Вас есть рабочая загрузочная дискета, перед тем как Вы начнете следующий этап.

Совет #2: проверьте, загружается ли эта дискета!

Совет #3: сделайте резервную копию текущего ядра ОС (обычно это файл /vmlinuz).

Теперь переименуйте текущий рабочий кернел - например,

mv vmlinuz vmlinuz.bak

и скопируйте новый кернел zImage в корневой каталог:

cp zImage /vmlinuz.

Установите атрибуты для нового файла кернела:

chmod 400 vmlinuz

и перезапустите LILO - загрузчик ОС!

/sbin/lilo

Теперь можно перегрузить компьютер:

shutdown -r now

Не работает??!!! Аааааааххххх... какая досада!!! Не волнуйтесь, все поправимо. Если Ваша система не хочет загружаться с новым кернелом, можно загрузиться с дискеты и восстановить предыдущую версию, благоразумно сохраненную в надежном месте, и перезапустить LILO:

/sbin/lilo

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

Игорь Грень - титульная страница


Компьютерная газета. Статья была опубликована в номере 30 за 1998 год в рубрике soft :: linux

©1997-2024 Компьютерная газета