CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Что нам стоит *NIX построить?

Александр ЖАБОТИНСКИЙ

Хотя если честно, строить мы будем не UNIX, а UNIX-подобную систему, точнее, Linux. Сама идея «создать свою систему» звучит страшно. Однако сделать это под силу почти каждому, кто имеет начальные знания в Linux и представляет, где находится консоль. В этой статье вы узнаете о проекте Linux From Scratch, направленном на тех, кто хочет более детально разобраться в том, как же построена система Linux, какие компоненты нужны для ее работы.

Все началось с того, что я пересматривал СПЕЦ журнала Хакер, полностью посвященному Линуксу (№5/2000). В журнале был упомянут сайт проекта LFS, на котором описан процесс создания системы Linux (http://www.linuxfromscratch.org). Для того чтобы преступить к построению Linux’а, требовалось: а) свободное время; б) девайс — руки прямые, PnP. Летом первое найдется, вторым вроде не обделен :-). Как оказалось позже, малость Интернета, а лучше побольше — тоже не повредит.

Подготовка

Загрузившись на вышеупомянутую ссылку, попадете на страницу с выбором зеркал сайта; пропускная способность некоторых — до 1 Гб/с, то бишь создано прямо для наших модемов. Выбрав одно из зеркал, зайдете на сам сайт проекта. Ресурс довольно неплохой: много разделов, включая FAQ; к недостаткам можно отнести только то, что он англоязычный. Руководитель проекта LFS Герард Бикманс (Gerard Beekmans) является автором одноименной книги —Linux From Scratch, которую предлагают загрузить в разделе Download. Доступны HTML- и TXT-варианты, я выбрал версию 4.1(посдеднюю) в HTML. Вообще, можно найти и русскую версию книги, но что она будет последней, не обещаю (http://multilinux.sakh.com/lfs/ — версия 4.0). Linux From Scratch (LFS) переводится как «Линукс из ничего». Перед построением собственной системы автор очень рекомендует посетить два линка: Software-Buildings-HOWTO (http://www.tldp.org/HOWTO/Software-Buildings-HOWTO.html) и The Linux Users’ Guide (http://espc22.murdoch.edu.au/~stewart/quide/guide.html) — там описаны принципы построения системы и установка программ в среде *NIX. В LFS-BOOK описан процесс создания Линукса с нуля, естественно, пользуясь только исходниками программного обеспечения. Вот их-то и надо скачать. А скачать, ни много ни мало, придется около 100 Мб. Могу посоветовать http://freshmeat.net, на этом сайте выкладывают самый «свежий» софт, FreashMeat — поистине лучший сайт программ для *nix. Все пакеты исходников даны в tar.bz или tar.bz2 (последний вариант немного экономнее). Самые большие из них GCC (14 Mб), Glibc (18 Mб), Linux kernel (27 Mб) и Perl (10 Мб), остальные приблизительно до 2 Мб. Ядро можно не скачивать, лежит на дисках дистров Линукса, разве что у вас установлен сокращенный вариант дистрибутива. На момент закачки вы, конечно, обнаружите более новые версии, чем те, что описаны в книге. Понятно, LFS не успевает следить за новыми релизами пакетов, тем более что их немало. Я советую качать только те версии, которые описаны в книге, возможно, вы избежите многих проблем при сборке и установке.

Рабочий стол

Построение системы проходит в три этапа. Необходимо 1) создать среду разработки; 2) в этой среде установить саму систему и 3) сделать ее загружаемой (bootable). (В LFS-BOOK первому этапу соответствует глава 2, а второму и третьему — глава 3.)

В среду разработки входит минимальный список компонентов, которые необходимы для компилирования (сборке из исходников) и установки программ и утилит, которые необходимы для построения системы. К ним относятся компилятор GCC, оболочка bash, архиваторы Gzip и Tar, утилиты для работы с текстом, дополнительные программы для работы с файлами и архивами, программа patch. В саму систему входит полный набор пакетов, тех, которые включены в большинство дистров Линукса и нужны для комфортной работы в системе. В отличие от мега-дистрибутивов типа Mandrake, Debian, RedHat, в вашу систему войдет только тот набор программ, который необходим для ваших целей. Помимо описанных в книге компонентов вы можете установить и свой «дополнительный набор», например, это может быть проигрыватель mplayer или Midnight Commander для удобной «двухпанельной» работы с файлами. К сожалению, описание установки программ, не входящих в LFS, придется вычитывать в Readme от программы или искать на сайте разработчика.

Итак, приступим

Средой разработки среды разработки (масло масляное) послужит любая система Linux с полным набором пакетов для разработки (т.е. программирования). У меня была установлена ASPLinux 7.3. При установке программ компилятор GCC часто выдавал ошибки, многие пакеты не устанавливались. После того как я поставил RedHat 7.3, все заработало.

Сначала нужно создать раздел диска для будущей системы. Хватит и 500 Мб, но я советую 1 Гб, т.к. туда можно переписать распакованные исходники и работать только с одним разделом. Если напряг с местом, ищите компромиссы, но ни в коем случае не устанавливайте программы с FAT-разделов. Создать диск я советую с помощью Partition Magic. Главное — не перепутать номер раздела, куда будет установлена система. Нужно запомнить, что на винчестере у вас могут быть 4 основных (primary) диска, или 3 primary плюс дополнительный. Последний (дополнительный) может содержать в себе подразделы, он называется extended. Рассмотрим: диски С и D — primary, Y, Z, E относятся к extended. На Y у меня установлена RedHat, на Z построена LFS, между Y, Z, E находятся swap-файлы систем. В Линуксе диски называются hd*#, где # — число, которое указывает на порядковый номер диска, а * — буква, которая показывает, куда установлен винт (a — primary master, b — secondary master, c — primary slave, d — secondary slave). Цвета указывают на тип файловых систем. Если Linux установлена на файловую систему ext3, то для работы с такими разделами потребуется PartitionMagic 8.0.

У меня один винчестер. Для текущей схемы разбивки C —hda1, D —hda2, Y —hda5, swap —hda6, Z —hda7, swap —hda8, E —hda9. Куда делись hda3 и hda4? Я уже говорил про четыре primary-раздела — так вот, их номера зарезервированы. Даже если hda3 нет, его имя не используется. hda4 — номер extended-раздела. После переразбивки и перезагрузки в консоли Linux пишем mke2fs /dev/hda# (раздел, подготовленный под LFS). Затем создаем каталог lfs и монтируем туда наш раздел: mount /dev/hda* /lfs. Автор также для удобства советует создать переменную LFS — линк на эту папку с системой: команда export LFS=/lfs. После выполнения этой команды $LFS будет значить то же самое, что /lfs. Это может понадобиться в том случае, если папка в lfs «спрятана» на диске, и надо набирать длинную строку адреса. Заходим в $LFS: cd $LFS, далее в $LFS создаем каталоги static и src: mkdir {static,src}. В src распаковываем все исходники. Сделать это можно с помощью графической утилиты Arc или консольных tar и bzip. Опять же, не пользуйтесь Windows-архиваторами! Разница между ними в том, что они используют разные файловые системы. В Linux файлы world.zip и World.zip могут находится в одном каталоге, Windows поймет их как один файл и при распаковке один заменит другой.

Рассказывать, как устанавливаются все программы, не буду — найдете в книге и о том, как они устанавливаются, и о том, каковы особенности установки. Опишу один пример —bash-2.05b. Для начала скажу, что программы из исходников устанавливаются командами ./configure, make и make install. Чтобы bash-2.05b установилась в каталог static, при конфигурации нужно написать ./configure --prefix=$LFS/static. При сборке программ для среды построения используется статическая компиляция (по умолчанию — динамическая). Разница состоит в том, что при статической сборке код библиотек добавляется в саму программу, а при динамической — в отдельную библиотеку. Второй способ лучше, так как программы порой используют одну библиотеку, и можно реально сэкономить место; но для нашего случая подойдет только статическая сборка, потому что все библиотеки устанавливаются в каталоги lib, которые во время запуска системы построения будут недоступны. Особенности установки bash-2.05b таковы: надо указать ссылку на библиотеку curses. Полная команда конфигурирования выглядит так ./configure --prefix=$LFS/static --enable-static-link --with-curses. Капризы установки встречаются нечасто, чаще всего происходят из-за несоответствия версий компилятора GCC, установленного в вашем основном дистрибутиве. Если ошибка неизбежна, поищите патчи на исходники программы. Патчи устанавливаются командой patch –Np1 –i [путь и имя файла патча]. После конфигурирования команда make соберет из сконфигурировано готовые файлы, а make install установит их куда нужно. Таким же образом устанавливаются и другие компоненты среды разработки (читайте LFS-BOOK). В следующий раз я поясню, как запустить систему, создать профили, установить пакеты и добавить LFS в загрузочное меню.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov