Создаем свой Линукс-дистрибутив

Xakep, номер #045, стр. 045-054-1

Кирилл Тихонов (aka_shaman@mail.ru)

Привет, многоуважаемый любитель Линукса. Наверняка ты уже давно поставил своего Пингвина и теперь радуешься жизни. Но позволь-ка спросить, какой дистрибутив ты используешь? Ответ очевиден: в преобладающем большинстве случаев это будет Red Hat, Mandrake, ASP, SuSe, в более редких случаях - Debian или Slackware. Почти все эти и многие другие дистрибутивы, коих в последнее время появилось невиданное множество, объединяет одно общее свойство - в них много ненужного лично тебе: большинство программ, идущих в поставке, ты и использовать не будешь. Сегодня я расскажу о том, как собрать свой дистрибутив Линукса, заточенный конкретно под свои нужды. А поможет нам в этом проект LFS.

Конечно, устанавливать с дистрибутива удобнее и быстрее - на то он и дистрибутив, чтобы работать на любой машине. Но при компиляции своей версии Линукса, при помощи флагов оптимизации, можно добиться повышения производительности в среднем на 30%, т.е. практически на треть!

Что есть LFS

Эта аббревиатура расшифровывается как Linux From Starch, что есть не что иное, как проект сборки ОС Линукс с нуля из исходников. Последняя версия (на момент написания статьи - 3.3) с пошаговым руководством по установке доступна на сайте http://www.linuxfromscratch.org. Тебе следует скачать LFS-book и LFS-packages-3.3 (можно качать как одним архивом, так и по частям). Система собирается на уже установленном Линуксе, в качестве которого подойдет любой дистрибутив, главное, чтобы в нем были компилятор и необходимые системные утилиты. Сборка LFS поможет тебе в полной мере разобраться в работе Линукса и, что наиболее важно, в том, как настроить его для твоих собственных нужд и задач. LFS занимает очень мало места, повторю, это связано с тем, что при установке с обычного дистрибутива обычно ставятся программы, которые ты никогда не будешь использовать или очень редко. А LFS нетрудно установить на 100 Мб, что не является пределом: LFS с веб-сервером Apache, на котором работает www.linuxfromscratch.org, занимает 8 Мб! В дальнейшем они планируют уменьшить размер своего сервера до 5 Мб. Попытайся-ка сделать это с Red Hat или с Mandrake =).

Приступим

Как я уже говорил, сборка производится на уже имеющемся Линуксе. Для начала надо подготовить раздел диска, куда ты будешь устанавливать LFS. Рекомендуется отдельная партиция размером 1 GB. Стандартная файловая система Линукс - ext2fs, однако все большую популярность завоевывают т.н. журналируемые файловые системы, и для LFS ты можешь выбрать любую доступную на сегодняшний день. Кстати, сам я использую Reiserfs.

После этого приступаем непосредственно к сборке, которая состоит из 2 этапов.

Этап первый

На этом этапе мы должны статически скомпилировать базовые утилиты, необходимые для работы LFS. При компиляции программа использует стандартные функции, такие, как открытие файла, вывод информации на экран и обеспечение взаимодействия с пользователем. Эти функции содержатся в библиотеках. Библиотека glibc, которую мы установим позже, одна из главных библиотек, содержащих эти используемые программами функции. Эти библиотеки очень большие, например, libc.a имеет размер 2,5 мб.

Содержание  Вперед на стр. 045-054-2

ttfb: 146.83198928833 ms