Linux from scratch это

Обновлено: 07.07.2024

i. Предисловие

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

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

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

Чтобы действительно сделать свою собственную систему, я решил собрать все из исходных кодов, а не использовать предварительно скомпилированные бинарные пакеты. Эта "идеальная" система Linux могла бы обладать преимуществами различных систем и в ней бы отсутствовали их очевидные недостатки. Сначала идея казалась довольно сложной. Я продолжал считать, что такую систему собрать можно.

Когда я поделился своими результатами и опытом с другими членами сообщества Linux, стало очевидно, что к этим идеям есть устойчивый интерес. Стало понятно, что такие специально собранные системы Linux будут полезными не только для того, чтобы удовлетворить конкретные требования пользователей, но также служат идеальным средством обучения, позволяющим программистам и системным администраторам повысить свои (уже существующие) навыки работы с Linux. Благодаря тому, что интерес к системе оказался более широким, появился проект "Linux From Scratch" ("Линукс с нуля").

Данная книга "Linux From Scratch" является центром этого проекта. В ней приведены объяснения и инструкции, нужные для того, чтобы спроектировать и собрать свою собственную систему. Хотя в этой книге предложен шаблон, по которому создается корректно работающая система, вы вправе отклониться от инструкций в соответствии с собственными замыслами, что, в частности, является важной частью данного проекта. Управление остается за вами; мы просто протягиваем вам руку помощи с тем, чтобы вы начали на свое собственное турне.

Я искренне надеюсь, что вы с удовольствием проведете время за работой над вашей собственной системой Linux From Scratch и насладитесь многочисленными преимуществами от того, что у вас истинно ваша собственная система.

Думаю, что если вы приступили к чтению статьи в названии которой присутствует фраза «Cобери свой Linux», то вам не нужно рассказывать, что такое операционная система Linux, свободное ПО и так далее. Скорее всего, вы уже используете один из вариантов этой ОС на работе или на своем домашнем компьютере.


И, в зависимости от целей и разнообразных причин, как объективных, так и субъективных, вы, скорее всего, уже выбрали для себя один из так называемых дистрибутивов Linux. Дистрибутивом обычно называют подготовленный для работы в качестве единого целого набор из программы установки, системных утилит и служб, прикладных программ и модифицированного в соответствии с представлениями создателей дистрибутива, ядра Linux. C каждым дистрибутивомможно также связать определенную политику лицензирования и порядок технической поддержки. Из объективных причин выбора того или иного дистрибутива можно, например, назвать потребность в круглосуточной технической поддержке, а из субъективных – «навороты» дистрибутива, разрекламированные знакомым системным администратором, или внешний привлекательный вид рабочего стола.

В этой статье я хотел бы поговорить о дистрибутиве Linux From Scratch (сокращенно LFS). Собственно, LFS – это даже не дистрибутив в классическом понимании этого слова. В LFS отсутствует одна важная деталь типичного дистрибутива Linux – программа установки.

Хотя LFS вполне можно использовать и в качестве рабочего места разработчика или (после установки дополнительного программного обеспечения, не входящего в базовую систему LFS) сервера небольшого предприятия; возможно – даже рабочего места секретаря, все это не будет лучшим вариантом применения Linux From Scratch. Основная цель данного дистрибутива – познакомить пользователя с внутренним устройством операционной системы Linux. С помощью LFS мы можем по шагам пройти через весь процесс компиляции Linux, создания конфигурационных файлов, и наконец, спустя часы (или даже дни) работы, – загрузить операционную систему и увидеть на экране приглашение к вводу имени пользователя. Вдумчивое и внимательное выполнение инструкций, приведенных в руководстве Linux From Scratch, вместе с изучением документации по устанавливаемым в каждом шаге компонентам ОС позволит вам познакомиться с системой на уровне, не достижимом для пользователей и администраторов систем с закрытым исходным кодом. Сборка LFS может быть также весьма неплохой школой для технического специалиста или инженера, использующего коммерческие дистрибутивы Linux и поставившего себе цель понять процессы, происходящие в системе, на более глубоком уровне.

Еще одним применением LFS может стать задача оптимизации программного обеспечения операционной системы под конкретную начинку ПК на этапе компиляции и желание на все 100% использовать ресурсы оборудования. Кроме того, созданная «ручным» способом система получается очень компактной.

Ну и наконец, последняя, но вполне достаточная причина для установки LFS (хватило же некоторым ее для написания целого ядра операционной системы): «Just for Fun»!

Знакомство с LFS

Как рассказывает сам Герард Бикманс во введении, его знакомство с Linux состоялось в 1998 году. Перепробовав несколько дистрибутивов и не найдя ни одного, полностью отвечающего его требованиям, Герард решил собрать свой собственный вариант Linux из исходных текстов. Обобщив свой опыт в виде понятных и компактных инструкций и возглавив проект по поддержке этих знаний в актуальном состоянии, Герард вместе с единомышленниками создал Linux From Scratch в том виде, в котором этот проект существует и по сей день.

Помимо книги с инструкциями, в рамках проекта распространяется загрузочный LiveCD со средой разработчика и собранный в одном месте архив исходных текстов, протестированных на взаимную совместимость компонентов Linux-системы со всеми необходимыми исправлениями. Рассмотрим же компоненты LFS подробнее.

На момент написания статьи последней доступной автору версией LFS была 6.1.1.

Основная часть проекта – книга Linux From Scratch – содержит более 220 страниц и в семи главах описывает создание собственной Linux-системы, построенной на ядре 2.6.11 и включающей компилятор С/С++ gcc 3.4.3, язык программирования Perl 5.8.7, оболочку bash 3.0 и основные GNU утилиты работы с системой, сетью, а также утилиты обработки текстов. Инструкции не включают описание сборки оконной системы X Window System и серверных служб.

Исходные тексты компонентов системы и исправления к ним занимают около 150 Мбайт. Помимо возможности скачать с сайтов разработчиков каждый пакет в отдельности, имеется возможность загрузить весь архив в составе Official Linux From Scratch LiveCD.

Официальный LiveCD (рис. 1, 2) – это не только архив всех исходных текстов и сама книга LFS, но и полностью готовая для сборки вашей LFS-системы среда, включающая X Window System и Xfce. Если вы скачали этот диск, вам, по сути, больше ничего не потребуется. Кроме всего прочего, диск включает в себя скрипты и файлы с инструкциями автоматической установки LFS. Данные средства предназначены для опытных пользователей LFS, которые хотя бы раз устанавливали систему «вручную». Новичку эти средства использовать не рекомендуется. Общий объем ISO-образа диска – 390 Мбайт.

Ну, и, наконец, последним в списке ингредиентов (но не последним по важности) LFS-коктейля будет хорошо приготовленный Linux-пользователь. (Я сказал «приготовленный»? Конечно, «подготовленный»!) Во-первых, если вы хотите использовать самую «свежую», англоязычную версию, вам необходимы минимальные знания технического английского для следования инструкциям книги. Существуют переводы и на русский язык, но они появляются с некоторой задержкой. Кроме того, большинство вспомогательных информационных ресурсов, ссылки на которые приведены статье, представлены только на английском языке. «Building an LFS system is not a simple task», – пишет Герард Бикманс. Безусловно, для того, чтобы собрать работоспособную систему Linux из исходных текстов, вы должны уметь работать с командной строкой, решать проблемы с компиляцией и иметь общее представление о том, как работает Linux.

«Ключ на Старт!»

Полная сборка Linux From Scratch на ноутбуке Sharp Actius MC24 (Mobile AMD Athlon XP-M Processor 2400+/512 MB RAM) с небольшими перерывами на домашние дела заняла одни выходные (Пользуясь случаем, хочу поблагодарить мою жену за терпение и понимание!). Для оценки затрачиваемого на сборку пакетов время, Герард вводит специальную единицу измерения – Standard Build Unit (SBU). Один SBU равен промежутку времени, затрачиваемому вашим ПК на выполнение команд

выполняющих сборку и установку самого первого из упоминаемых в руководстве пакетов – Binutil-2.15.

Далее по ходу изложения материала по книге даются примерные оценки времени затрачиваемого на пакеты в единицах SBU. Самые затратные с точки зрения времени компиляции пакеты: glibc-2.3.4 (12.3 SBU), gcc-3.4.3 (11.7 SBU), ядро Linux-2.6.11.12 (4.2 SBU) и Perl-5.8.7 (4.1 SBU). К слову сказать, один SBU на моем ноутбуке равняется приблизительно 4 мин. 23 сек. Сборка на том же оборудовании, но в среде VMWare Workstation 5.0 под Windows XP Service Pack 2 увеличила SBU более чем в два раза. Поэтому, если вы планируете уложиться в одни выходные – не используйте виртуальные машины.

Помимо сборки пакетов (кстати, некоторые из них собираются не по одному разу) время расходуется на различные make check и make test. Также прибавьте сюда время, которое вы потратите непосредственно на чтение книги и ввод команд.

bdubbs представлено более 150 конфигураций систем, предоставленных пользователями, собравшими LFS. Для каждой системы приведены значения SBU, так что вы всегда можете оценить время, необходимое для компиляции, исходя из данных для машин с аналогичной производительностью.

Этапы сборки собственной Linux-системы

Общий порядок сборки системы представлен в вводной главе и вкратце состоит из следующих действий.

Первым делом необходимо выделить для LFS собственный раздел на жестком диске, создать на нем файловую систему и подмонтировать к дереву файловой системы ОС, на которой будет производиться сборка. Далее, действуя из хост-системы (того же Official Linux From Scratch LiveCD), вы компилируете из исходных текстов среду разработчика, которую будете использовать для сборки LFS-системы. Затем, при помощи повторной пересборки GCC/Binutils и «песочницы» в виде chroot-окружения, LFS отделяется от хост-системы. После выполнения этого шага ваш LFS становится полностью самостоятельным, за исключением того, что он по-прежнему использует ядро хост-ситемы.

Далее, следуя подробным инструкциям, в «песочнице» компилируются все необходимые компоненты для нашей LFS-системы и по ходу сборки создаются необходимые конфигурационные файлы.

Наконец, в собранную систему добавляются стартовые скрипты, при необходимости, устанавливается и настраивается загрузчик, и, наконец, наступает долгожданный момент перезагрузки в систему, целиком собранную из исходных текстов.

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

i. Предисловие

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

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

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

Чтобы действительно сделать свою собственную систему, я решил собрать все из исходных кодов, а не использовать предварительно скомпилированные бинарные пакеты. Эта "идеальная" система Linux могла бы обладать преимуществами различных систем и в ней бы отсутствовали их очевидные недостатки. Сначала идея казалась довольно сложной. Я продолжал считать, что такую систему собрать можно.

Когда я поделился своими результатами и опытом с другими членами сообщества Linux, стало очевидно, что к этим идеям есть устойчивый интерес. Стало понятно, что такие специально собранные системы Linux будут полезными не только для того, чтобы удовлетворить конкретные требования пользователей, но также служат идеальным средством обучения, позволяющим программистам и системным администраторам повысить свои (уже существующие) навыки работы с Linux. Благодаря тому, что интерес к системе оказался более широким, появился проект "Linux From Scratch" ("Линукс с нуля").

Данная книга "Linux From Scratch" является центром этого проекта. В ней приведены объяснения и инструкции, нужные для того, чтобы спроектировать и собрать свою собственную систему. Хотя в этой книге предложен шаблон, по которому создается корректно работающая система, вы вправе отклониться от инструкций в соответствии с собственными замыслами, что, в частности, является важной частью данного проекта. Управление остается за вами; мы просто протягиваем вам руку помощи с тем, чтобы вы начали на свое собственное турне.

Я искренне надеюсь, что вы с удовольствием проведете время за работой над вашей собственной системой Linux From Scratch и насладитесь многочисленными преимуществами от того, что у вас истинно ваша собственная система.

На этой странице показываются непроверенные изменения

У этой страницы нет проверенных версий, вероятно, её качество не оценивалось на соответствие стандартам.


ЛФС (LFS) — Linux From Scratch — инструкция по сборке своего дистрибутива Linux с нуля.

Содержание

Когда красноглазику становится совсем нечем заняться долгими зимними вечерами, а сессия уже позади (или так далеко впереди, что о ней думать ещё рано), оный начинает предаваться сладостному единению с системой — увы, но если линуксоид опытен и со стажем, то скоро система начинает работать аки швейцарские часы и становится скучно. И тогда гентушник (или слакварщик — дебианщики/редхатовцы этим страдают куда реже, а неиспорченое сознание убунтовцев просто не вместит подобное) решает, что собирать систему через команду emerge и прописывание юзов — слишком просто, и для обретения полного посвящения и становления истинным джедаем красной стороны силы находит себе новое развлечение под названием LFS. Которое после сборки и отладки становится или очередной убунтой с измененными обоями, или выбрасывается за ненадобностью, т.к. обновление софта и решение вопросов безопасности это гемор даже для искушенных линуксоидов-одиночек.

По сути LFS — это книга о том, как с нуля собрать свой дистрибутив линукса из исходных кодов ядра и остальных концептуально необходимых прог, составляющих смысл понятия «операционная система». После одной сборки счастливый пингвинопоклонник получает «минимальную рабочу среду» (то есть, черную консоль с мигающим курсором) — получению из этого хоть чего-нибудь полезного посвящена вторая книга Силы, которая так и называется — Beyond Linux From Scratch (BLFS, За пределами LFS). В ней, ожидаемо, рассказывается о том, как прикрутить к свежеустановленному LFS пользовательское окружение — естественно, тоже полностью из исходников. То бишь, увлекательного красноглазия будет очень, очень много!

Собравшие рабочий и относительно пригодный для работы дистр смотрят на всех, включая гентушников/слакварщиков, как на ничтожных ламеров и анальных рабов системы (то есть так, как красноглазые на виндузятников, а автохуй, правильная сборка и работа с Nano Server, контейнером Windows, может дать просраться красноглазым и повысить ЧСВ виндузятников); впрочем, определённые знания (и зашкаливающее ЧСВ) они в ходе сего мазохизма действительно получили [1] и такая реакция объяснима. Как ни странно, не вступают в виндоус VS линукс холиворы, смотря на всё это свысока, так что троллей кормят редко, впрочем съесть их куда легче, чем найти, ибо это всё-таки остаётся развлечением для избранных.

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

LFS (Live For Speed — надмозг. Живи для скорости) — широко известный в узких кругах автосимулятор кольцевых автогонок. Доставляет посвященным автосиммерам реализмом и возможностью всесторонней дрочки на многочисленные настройки своего четырехколесного корыта.

Тут сама книга есть и русский перевод, он обычно запаздывает по отношению к английскому релизу. или здесь

А тут BLFS Также есть очень старый перевод на русский. Если вы не знаете языка - у вас вряд ли что-нибудь получится. устаревший перевод

Читайте также: