Что такое linux from scratch

Linux From Scratch, не вдаваясь в детали

LFS — это книга о том, как собрать работающую операционную систему GNU/Linux из исходных кодов. Конечно, лучше самому собрать систему по этой книжке. Но если тратить несколько дней своего времени жалко, а познакомиться все же охота — попробую рассказать.

На основе Linux From Scratch, Version 7.3, на английском языке.

Мне захотелось собрать LFS чтобы лучше понять устройство линукс, надеюсь вам тоже это интересно. Признаюсь, было еще одно желание — собрать эталонный, «ванильный» линукс. Увы, эталонный линукс существует только в воображении наивных айтишников.

Тем не менее по книжке LFS можно собрать замечательную действующую систему, а по BLFS (это следующая книжка), допилить её до полного соответствия Linux Standard Base. Это, кстати, сообщается в одной из первых глав.

Главы в основном короткие и лаконичные. Язык, простой и ясный. Читать такую книжку одно удовольствие.

Система собирается путем компиляции из исходных кодов всех необходимых программ — ядра, основной библиотеки C, компилятора, оболочки командной строки, и др. Все пакеты с исходными кодами приводятся в файле wget-list. Так что скачать их все очень просто. Также приводится файл md5sum — для проверки целостности файлов после скачивания.

Cначала нужно использовать какой-нибудь другой linux (можно live-cd). Используя его компилятор и другие инструменты, в нём производится сборка окружения необходимого для сборки (компилятор, линковщик). Результаты помещаются в /mnt/lfs/tools .

Потом, монтируются служебные файловые системы ( /mnt/lfs/proc -> /proc , /mnt/lfs/dev -> /dev , и др.) и с помощью chroot сеанс пользователя переключается на использование /mnt/lfs как корневой файловой системы вашего нового линукса. А папка /tools дописывается в переменную окружения $PATH . Таким образом по мере сборки инструментов они будут подменять свои временные аналоги из /tools .

С помощью временной системы заново собираются все инструменты, но на этот раз они размещаются в /bin , /sbin , /lib . После чего устанавливаются скрипты загрузки из одного из скачанных пакетов.

Далее производится минимальная настройка системы (сеть, консоль, устройства). Создается файл /etc/fstab (настройка дисков), компилируется и устанавливается ядро (НАКОНЕЦ-ТО!), настраивается GRUB, и выполняется перезагрузка. Всё.

Стоит упомянуть, что в книжке довольно неплохо объясняются некоторые моменты. Например: что за файлы /etc/profile,

/.bashrc и как они взаимодействуют. Или разъясняется как с помощью udev настроить чтобы двум сетевым картам всегда выдавались одни и те же имена eth0, eth1. Для каждого пакета приводится список всех входящих в него программ с кратким описанием каждой.

Источник

Знакомьтесь — Linux From Scratch

Вместо вступления

«Хочешь начать изучать GNU/Linux? Начни с Linux From Scratch.»

Единственный бумажный дистрибутив

LFS (здесь и далее аббревиатура от Linux From Scratch) – книга, написанная Герардом Бикмансом, описывающая процесс сборки минимального рабочего варианта GNU/Linux из исходных кодов. Почему бумажный? В свое время книгу можно было купить в твердом переплете, что делает «дистрибутив» несколько необычным, не правда-ли? Помимо самой книги, для сборки конечно-же понадобится интернет (или заранее загруженные исходные коды), свободный раздел на жестком диске, и любая операционная система на базе ядра Linux, имеющая компилятор. Лично я всегда использую либо уже собранный дистрибутив LFS, либо полную установку Slackware – в нем есть все необходимое, чего не скажешь про (например) Ubuntu. Конечно, всегда можно загрузить нехватающие пакеты, но ведь мы хотим только-только научиться линуксу? А Slackware даже в своей базовой установке и без конфигурирования предоставляет требуемый инструментарий.

Следует сказать сразу — дистрибутив собранный по книге LFS не умеет толком ничего. Вернее, ничего такого, что потребуется неискушенному пользователю. Он умеет включаться, выключаться, перезагружаться, использовать Ethernet подключение, но что самое главное — компилировать. Так существуют другие книги, теперь уже поддерживаемые сообществом — Beyond LFS позволяет собрать те самые, интересные пользователю, программы. От браузера и графической среды, до систем управления базами данных и DHCP сервера. Книга имеет свойство отставать в версии от базовой книги, но полученный от LFS опыт обычно достаточен, для самостоятельного разрешения конфликтов версий. Три другие книги — Automated LFS, Cross LFS и Hardened LFS полностью соответствуют названиям и выходят за пределы этой статьи. Впрочем, всегда можно почитать в интернете, правда?

Читайте также:  Windows 10 как переустановить поиск

Но почему начинать с него?

Все очень просто, если не сказать — до смешного. Помимо инструкций, в книге много теоретического (но крайне сжатого и как следствие — не заунывного) материала. Установите Ubuntu. Вы знаете что делает пакет Libtool? Или Gawk? После пары успешных сборок LFS, вы будете знать каждый пакет в своей системе и что самое главное — представлять, как они взаимодействуют. Да, состав системы минимальный, но это постоянно подогревает интерес к ее усовершенствованию. Приучит частенько обращаться за помощью к Google и читать англоязычную документацию. Поначалу вы не будете понимать и половины своих действий, внимательно перепечатывая или копируя блоки кода в консоль. Но в самом конце, осознание того, что эту неказистую, без поддержки графики и вашей мощной видеокарты, без новомодного Aero и сенсорных экранов, операционную систему вы собрали сами, придаст вам такой запас сил и гордость, что вы сами потянитесь за новыми знаниями и новыми победами. Я немного утрирую, но ощущения после первой перезагрузки в новую систему сложно забыть даже сейчас.

Цифры и суровая правда жизни

LFS вовсе не минимальный по своему весу дистрибутив. Для сборки потребуется порядка 3 свободный гигабайтов на диске (это помимо уже рабочей Linux-Based системы) — тем не менее, после определенных танцев, систему можно будет превратить в Live-CD. Если у меня будет такая возможность, я расскажу как это делается, в последствии. Компиляция всего и вся (с учетом необходимости создания конфигурационных файлов и прочего) занимает около двух дней. Это если с перерывами на сон, питание и отключение компьютера на ночь. С другой стороны, это зависит от производительности компьютера, на котором собирается система. Моей первой жертвой был ноутбук MSI X-340 — процессор Intel Core 2 Solo с тактовой частотой 1.2 гигагерца (вообще говоря, LFS рекомендуется собирать на одноядерной системе). Оперативная память — 2GB DDR2. Вполне достаточно даже более низких характеристик, а на быстром процессоре сборка пойдет значительно быстрее.

Кстати, приблизительное время сборки каждого из пакетов указано в учебнике. За единицу времени, принимается время сборки пакета Binutils — ассемблера, линкера и ряда других, более мелких утилит для работы с объектными файлами. На вышеуказанной системе это заняло три минуты.

Состав дистрибутива

Перечислять все входящие в LFS пакеты не имеет большого смысла. Список получится длинным, и практически ни о чем не говорящим новичку; избыточным для человека разбирающегося. В этом небольшом разделе я лишь хотел дать несколько общих советов. Во-первых, собирая пакет, не описанный в книге, загляните в репозиторий патчей — возможно его уже адаптировали для использования в LFS. Во-вторых, BLFS почти полностью состоит из опциональных пакетов — просто выбирайте те, которые вам нужны и смело добавляйте в свою сборку LFS. И третье: с самого начала используйте пакетный менеджер. В книге этому уделяется глава, но практические инструкции отсутствуют чуть менее, чем полностью. Я лишь могу порекомендовать Guarded Installation Tool – написанный на Bash’е скрипт, обеспечивающий минимальный набор команд, для управления пакетами, зависимостями и версиями. В LFS этого будет достаточно. В последствии вы можете скомпилировать из исходных кодов APT или DPKG — это неплохо освещено на форумах сообщества.

Вместо заключения

За прошедшие полтора года я сильно продвинулся в своем изучении. Продвинулся со стадии «Есть такая операционная система» до уровня «Подниму сервер под Gentoo за трое суток». Я еще очень далек от идеала и вряд ли могу даже называть себя настоящий линуксоидом — на домашнем компьютере уживаются старенькая Windows XP и Xubuntu 10.10, но знаете что я отвечаю, когда меня спрашивают с чего начать изучать линукс? Начните с Linux From Scratch.

Источник

What is Linux From Scratch?

Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own customized Linux system entirely from source.

Why would I want an LFS system?

Many wonder why they should go through the hassle of building a Linux system from scratch when they could just download an existing Linux distribution. However, there are several benefits of building LFS. Consider the following:

Читайте также:  Windows обновления не прошла проверку подлинно

LFS teaches people how a Linux system works internally
Building LFS teaches you about all that makes Linux tick, how things work together and depend on each other. And most importantly, how to customize it to your own tastes and needs.

Building LFS produces a very compact Linux system
When you install a regular distribution, you often end up installing a lot of programs that you would probably never use. They’re just sitting there taking up (precious) disk space. It’s not hard to get an LFS system installed under 100 MB. Does that still sound like a lot? A few of us have been working on creating a very small embedded LFS system. We installed a system that was just enough to run the Apache web server; total disk space usage was approximately 8 MB. With further stripping, that can be brought down to 5 MB or less. Try that with a regular distribution.

LFS is extremely flexible
Building LFS could be compared to a finished house. LFS will give you the skeleton of a house, but it’s up to you to install plumbing, electrical outlets, kitchen, bath, wallpaper, etc. You have the ability to turn it into whatever type of system you need it to be, customized completely for you.

LFS offers you added security
You will compile the entire system from source, thus allowing you to audit everything, if you wish to do so, and apply all the security patches you want or need to apply. You don’t have to wait for someone else to provide a new binary package that (hopefully) fixes a security hole. Often, you never truly know whether a security hole is fixed or not unless you do it yourself.

What can I do with my LFS system?

A by-the-book LFS system is fairly minimal, but is designed to provide a strong base on which you can add any packages you want. See the BLFS project for a selection of commonly used packages.

Who’s who:

  • Project Creator: Gerard Beekmans
  • Managing Editor: Bruce Dubbs
  • Editor: Ken Moffat
  • Editor: Pierre Labastie
  • Editor: DJ Lucas
  • Editor: Douglas R. Reno
  • Editor: Thomas Trepl
  • Editor: Tim Tassonis
  • Editor: Xi Ruoyao
  • Plus numerous people who contribute to the book and its side projects.

© 1998-2021 Gerard Beekmans. Website design by Jeremy Huntwork & Matthew Burgess.

Источник

Linux From Scratch

Из Википедии — свободной энциклопедии

Linux From Scratch
Семейство ОС GNU/Linux [d]
Последняя версия 11.0 (1 сентября 2021)
Поддерживаемые языки английский
Лицензия лицензия MIT [1] , Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Generic [d] [1] и GNU GPL
Веб-сайт linuxfromscratch.org​ (англ.)

Linux From Scratch (LFS, «Линукс с нуля») — способ установки Linux, а также книга Герарда Бикманса и др., описывающая процесс сборки своего дистрибутива операционной системы Linux из исходных кодов. Книга свободно доступна с сайта Linux From Scratch [2] . В ней описывается только сборка базовой системы; для тех, кто захочет расширить её за пределы «минимального рабочего варианта», также существует проект Beyond Linux From Scratch (BLFS). Помимо этого есть и другие книги: Cross Linux from Scratch (CLFS), описывающая кросс-компиляцию и Hardened Linux From Scratch (HLFS), ориентированная на безопасность.

Для сборки по книге нужны свободный раздел на жёстком диске и работающая система на базе Linux, содержащая компилятор и базовый набор библиотек [3] . В качестве такой системы можно использовать обычный дистрибутив. До версии 7.0 можно было использовать Live-CD [4] [5] .

В книге шаг за шагом описывается, как собрать на этой основе свой дистрибутив с самого начала. При этом сборка из исходного кода позволяет добиться некоторого улучшения эффективности работы путём отказа от ненужных зависимостей, оптимизации под заданную модель процессора и ничем не ограниченной возможности выбора собираемых компонентов. Также утверждается, что сборка LFS дает читателю представление о принципах, лежащих в основе работы Linux-систем. Девизом системы LFS является: «Your distro, your rules» — «Твой дистрибутив — твои правила».

Раздел книги 1.2 «Changelog» утверждает, что через два месяца после выхода книги имеет смысл зайти на сайт и посмотреть, нет ли новой версии с исправлениями. Фактически, однако, стабильные версии книги выходят раз в полгода, а выпуск стабильных версий BLFS значительно отстаёт по времени от выпуска LFS. BLFS 6.3, например, вышла спустя 12 месяцев после выхода LFS 6.3.

  • К LFS SVN не подходит без изменений (поиск которых — задача для читателя) никакая версия BLFS.
Читайте также:  Лист с командами linux

Источник

Что такое linux from scratch

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux

Linux From Scratch — Version 6.8
Назад Пролог Вперед

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

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

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

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

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

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

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

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

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

Источник

Оцените статью