В этой статье слишком много ссылок на первоисточники . ( Октябрь 2013 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Разработчик | Джерард Бикманс и др. |
---|---|
Семейство ОС | Unix-подобный |
Рабочее состояние | Текущий |
Исходная модель | Открытый источник |
Первый выпуск | Декабрь 1999 г . |
Последний релиз | 10.1 / 1 марта 2021 г . [1] [2] |
Метод обновления | Исходный |
Менеджер пакетов | Нет (на основе исходного кода) |
Платформы | IA-32 , x86-64 [3] |
Тип ядра | Монолитный |
Пользовательский интерфейс по умолчанию | CLI |
Лицензия | Лицензии Creative Commons и лицензия MIT |
Официальный веб-сайт | www |
Linux From Scratch ( LFS ) - это типустановки Linux и название книги, написанной Джерардом Бикмансом и в настоящее время по состоянию на март 2021 года, в основном поддерживаемой Брюсом Даббсом. Книга дает читателям инструкции о том, как собрать систему Linux из исходных текстов . Книгу можно бесплатно загрузить с сайта Linux From Scratch. [1]
Проекты под LFS [ править ]
Linux From Scratch - это способ установить работающую систему Linux путем сборки всех ее компонентов вручную. Это, естественно, более длительный процесс, чем установка предварительно скомпилированного дистрибутива Linux . Согласно сайту Linux From Scratch , преимущества этого метода заключаются в компактности, гибкости и безопасности системы и в лучшем понимании внутренней работы операционных систем на базе Linux. [4]
Чтобы LFS оставалась небольшой и целенаправленной, была создана книга Beyond Linux From Scratch (BLFS), в которой представлены инструкции по дальнейшему развитию базовой системы Linux, созданной в LFS. Он знакомит читателя с дополнениями к системе, включая поддержку сети, X , звука, принтера и сканера, и направляет его . Начиная с версии 5.0 книжная версия BLFS соответствует книжной версии LFS. [5]
Книга Cross Linux From Scratch (CLFS) посвящена кросс-компиляции , включая компиляцию для автономных или встроенных систем, которые могут работать под Linux, но не имеют ресурсов, необходимых для компиляции Linux. CLFS поддерживает широкий спектр процессоров и обращается к передовым методам, не включенным в книгу LFS, таким как инструментальные цепочки кросс-сборки , поддержка нескольких библиотек (32- и 64-разрядные библиотеки параллельно) и альтернативные архитектуры наборов инструкций, такие как Itanium , SPARC. , MIPS и Alpha .
Проект Linux from Scratch, как и BitBake , также поддерживает кросс-компиляцию Linux для встроенных систем ARM, таких как Raspberry Pi и BeagleBone . [6] [7]
Книгу Закаленного Linux From Scratch (HLFS) основное внимание уделяется укрепление безопасности , такие как закаленные заплаты ядра, обязательный контроль доступа политика, стека разбив защиты , и адресного пространство макета рандомизация . Помимо своей основной цели - создания операционной системы , ориентированной на безопасность , у HLFS была вторичная цель - быть инструментом обучения безопасности. Не обновлялся с 2011 года.
Automated Linux From Scratch (ALFS) - это проект, предназначенный для автоматизации процесса создания системы LFS. Он предназначен для пользователей, которые несколько раз просмотрели книги LFS и BLFS и хотят сократить объем работы. Вторичная цель состоит в том, чтобы действовать как тест книг LFS и BLFS, напрямую извлекая и выполняя инструкции из источников XML книг LFS и BLFS.
Требования и процедура [ править ]
Для построения LFS требуются чистый раздел и работающая система Linux с компилятором и некоторыми важными программными библиотеками . Вместо установки из существующей системы Linux можно также использовать Live CD для создания системы LFS.
Ранее проект поддерживал Linux From Scratch Live CD. [8] LFS Live CD содержит все исходные пакеты (только в полной версии Live CD), книгу LFS, автоматизированные инструменты сборки и (за исключением минимальной версии Live CD) среду графического интерфейса Xfce для работы. LFS Live CD больше не поддерживается и не может использоваться для сборки LFS версии 7 или более поздней. [8] Однако есть две неофициальные сборки, которые можно использовать для сборки 32-битного или 64-битного ядра и пользовательского пространства соответственно для LFS 7.x. [9]
Во-первых, необходимо скомпилировать набор инструментов , состоящий из инструментов, используемых для компиляции LFS, таких как GCC , glibc , binutils и других необходимых утилит. Затем необходимо изменить корневой каталог (с помощью chroot ) на раздел инструментальной цепочки, чтобы начать сборку окончательной системы. Один из первых компилируемых пакетов - это glibc; после этого компоновщик инструментальной цепочки должен быть настроен для связи с недавно созданной glibc, чтобы все другие пакеты, составляющие законченную систему, также могли быть связаны с ней. Во время фазы chroot , bashфункция хеширования отключена, а каталог bin временной цепочки инструментов перемещен в конец PATH. Таким образом, недавно скомпилированные программы попадают в PATH первыми, а новая система строится на собственных новых компонентах.
Список пакетов в LFS версии 10.1 [ править ]
Составная часть | Описание | Лицензия | Версия |
---|---|---|---|
Acl | Список управления доступом (ACL) по отношению к файловой системе компьютера - это список разрешений, прикрепленных к объекту. | GNU GPL | 2.2.53 |
Attr | Команды для управления расширенными атрибутами файловой системы. | GNU GPL | 2.4.48 |
Autoconf | Инструмент для создания скриптов конфигурации для программного обеспечения C , C ++ , Fortran , Fortran 77, Erlang , Objective-C в Unix-подобных компьютерных системах. | GNU GPL | 2,71 |
Automake | Инструмент программирования , который производит портативные мейкфайлы для использования макияжа программы, используемый при составлении программного обеспечения. | GNU GPL | 1.16.3 |
Баш | Бесплатное программное обеспечение Unix оболочка написана для проекта GNU | GNU GPL | 5.1 |
до н.э | bc является одним из основных калькуляторов (часто упоминается как скамейка калькулятор), является «произвольным языком точности калькулятора» синтаксис похож на язык программирования Си . | GNU GPL | 3.3.0 |
Binutils | Набор инструментов программирования для работы с объектным кодом в различных форматах объектных файлов. | GNU GPL | 2.36.1 |
Бизон | Анализатор генератор , который является частью проекта GNU . Bison преобразует описание грамматики для контекстно-свободной грамматики в исходный код для синтаксического анализатора C , C ++ или Java . | GNU GPL | 3.7.5 |
Bzip2 | А бесплатный и с открытым исходным кодом сжатия без потерь данных алгоритма и программа , разработанный Julian Seward . | BSD-подобная лицензия | 1.0.8 |
Проверять | Структура модульного тестирования для C . | GNU GPL | 0,15,2 |
Coreutils | Пакет из GNU программного обеспечения , содержащего многие из основных инструментов, таких как кошки , Ls , и гт , необходимых для Unix-подобных операционных систем . | GNU GPL | 8,32 |
DejaGNU | Фреймворк для тестирования других программ. У него есть основной сценарий, называемый runtest, который просматривает каталог, просматривая файлы конфигурации, а затем запускает несколько тестов с заданными критериями. | GNU GPL | 1.6.2 |
Diffutils | Сравнения данных утилита , которая выводит различия между двумя файлами. | GNU GPL | 3,7 |
E2fsprogs | e2fsprogs (иногда называемый программами e2fs) - это набор утилит для обслуживания файловых систем ext2 , ext3 и ext4 . | GNU GPL | 1,46,1 |
Elfutils | Набор утилит и библиотек для чтения, создания и изменения двоичных файлов ELF. | GNU GPL и GNU LGPL | 0,183 |
Eudev | Форк udev , чтобы избежать зависимости от архитектуры systemd. Результирующий форк называется eudev, и он делает функциональность udev доступной без systemd . | GNU GPL | 3.2.10 |
Эмигрант | Поток -ориентированная XML 1,0 анализатор библиотеки , написанной на C . | Лицензия MIT | 2.2.10 |
Ожидать | Expect - это инструмент автоматизации и тестирования Unix в качестве расширения языка сценариев Tcl для интерактивных приложений, таких как telnet , ftp , passwd , fsck , rlogin , tip , ssh и других. | Всеобщее достояние | 5,45,4 |
Файл | Команда file - это стандартная программа Unix для распознавания типа данных, содержащихся в компьютерном файле. | BSD-подобная лицензия | 5,39 |
Findutils | Утилиты GNU Find - это базовые утилиты поиска в каталогах операционной системы GNU. | GNU GPL | 4.8.0 |
Flex | flex ( генератор быстрых лексических анализаторов ) - это бесплатная программная альтернатива lex . | Лицензия BSD | 2.6.4 |
Gawk | Gawk - это язык программирования , предназначенный для обработки текстовых данных в файлах или потоках данных. | GNU GPL | 5.1.0 |
GCC | Коллекция компиляторов GNU (обычно сокращается до GCC) - это система компиляции , созданная проектом GNU, поддерживающая различные языки программирования. | 10.2.0 | |
GDBM | Простые механизмы баз данных GDBM | 1.19 | |
Gettext | Gettext - это библиотека интернационализации и локализации GNU (i18n). | 0,21 | |
Glibc | Библиотека GNU C , широко известная как glibc, - это стандартная библиотека языка C, выпущенная проектом GNU . | 2.33 | |
GMP | Библиотека множественной точности GNU, также известная как GMP, представляет собой бесплатную библиотеку для арифметики произвольной точности , работающей с целыми числами со знаком , рациональными числами и числами с плавающей запятой . | 6.2.1 | |
Gperf | Идеальный генератор хеш-функций. Для заданного списка строк он создает хеш-функцию и хеш-таблицу в форме кода C или C ++ для поиска значения в зависимости от входной строки. Хеш-функция идеальна, что означает, что в хеш-таблице нет коллизий, а для поиска по хеш-таблице требуется только сравнение одной строки. | 3.1 | |
Grep | grep это утилита текстового поиска из командной строки, изначально написанная для Unix . | 3,6 | |
Грофф | Groff - это GNU- замена программам форматирования текста troff и nroff . | 1.22.4 | |
GRUB | GNU GRUB (сокращение от GNU GR и Unified Bootloader) - это пакет загрузчика из проекта GNU . | 2,04 | |
Gzip | Gzip - это программное приложение, используемое для сжатия файлов . gzip - это сокращение от GNU zip | 1,10 | |
iana-и т. д. | iana-и т. д. устанавливает службы и протоколы, используя данные из Internet Assigned Numbers Authority . Включены моментальные снимки данных из IANA, сценарии для преобразования этих данных в необходимые форматы и сценарии для получения последних данных. | Открытая лицензия на программное обеспечение | 20210202 |
Inetutils | Набор сетевых инструментов, включая telnet , ftp и rsh . | GNU GPL | 2.0 |
Intltool | Набор инструментов для централизованного перевода множества различных форматов файлов с использованием файлов PO, совместимых с GNU gettext. | 0,51,0 | |
IPRoute2 | Набор утилит пользовательского пространства для управления и мониторинга различных аспектов сети в ядре Linux , включая маршрутизацию , сетевые интерфейсы , туннели, управление трафиком и сетевые драйверы устройств . | 5.10.0 | |
КБД | Пакет содержит инструменты для управления консолью Linux (консоль Linux, виртуальные терминалы на ней, клавиатура и т.д.). В основном они загружают консольные шрифты и раскладки клавиатуры. Также этот пакет содержит набор различных шрифтов и раскладок клавиатуры. | 2.4.0 | |
Kmod | Бинарный файл с несколькими вызовами, который реализует программы, используемые для управления модулями ядра Linux. | 28 год | |
меньше | less - это программа- пейджер терминала в Unix , Windows и Unix-подобных системах, используемая для просмотра (но не изменения) содержимого текстового файла по одному экрану за раз. | Двойной: либо GPL, либо BSD-подобная лицензия | 563 |
LFS-загрузочные скрипты | Пакет LFS-Bootscripts содержит набор сценариев для запуска / остановки системы LFS при загрузке / завершении работы. Файлы конфигурации и процедуры, необходимые для настройки процесса загрузки, описаны в следующих разделах. | Лицензии Creative Commons и лицензия MIT | 20210201 |
Libcap | Альтернатива модели привилегий суперпользователя в Linux. | 2,48 | |
Либффи | Переносимая библиотека интерфейса чужих функций. | Лицензия MIT | 3.3 |
Libpipeline | Libpipeline - это библиотека C для гибкого и удобного управления конвейерами подпроцессов. | GNU GPL | 1.5.3 |
Libtool | GNU Libtool - это инструмент программирования GNU из системы сборки GNU, используемый для создания переносимых скомпилированных библиотек . | 2.4.6 | |
Linux | Linux ядра операционной системы , ядро используется Linux семейства Unix-подобных операционных систем . | 5.10.17 | |
GNU m4 | GNU m4 - это GNU- версия препроцессора макросов m4 . | 1.4.18 | |
делать | Make - это утилита для автоматического создания исполняемых программ и библиотек из исходного кода . | 4.3 | |
Человек-БД | Man-DB - это реализация стандартной системы документации Unix, доступ к которой осуществляется с помощью команды man. Он использует базу данных Berkeley DB вместо традиционных баз данных whatis с неструктурированным текстом. | 2.9.4 | |
Man-страницы | Страница руководства (сокращенно от страницы руководства) - это форма онлайн-документации по программному обеспечению, которую обычно можно найти в Unix или Unix-подобных операционных системах. | Множественные лицензии. [10] | 5.10 |
Мезон | система сборки с открытым исходным кодом, которая должна быть одновременно чрезвычайно быстрой и, что еще более важно, максимально удобной для пользователя. | Лицензия Apache | 0,57,1 |
ПДК | Библиотека AC для арифметики комплексных чисел с произвольно высокой точностью | GNU LGPL | 1.2.1 |
MPFR | Библиотека GNU C для вычислений с плавающей запятой высокой точности с правильным округлением. | GNU LGPL и GNU GPL для части исходного кода с особыми исключениями | 4.1.0 |
ncurses | Библиотека программирования для написания текстовых пользовательских интерфейсов независимо от терминала. | Лицензия X11 [11] | 6.2 |
Ниндзя | Небольшая система сборки с упором на скорость. | Лицензия Apache | 1.10.2 |
OpenSSL | Лицензия Apache 1.0 и лицензия BSD с четырьмя пунктами | 1.1.1j | |
Пластырь | Компьютерный инструмент для программ Unix , который обновляет текстовые файлы в соответствии с инструкциями, содержащимися в отдельном файле, который называется файлом исправления . | GNU GPL | 2.7.6 |
Perl | Динамический интерпретируемый язык программирования | Художественная лицензия 1.0 [12] [13] или GNU GPL [14] | 5.32.1 |
Pkg-config | Компьютерная программа, которая предоставляет унифицированный интерфейс для запроса установленных библиотек с целью компиляции программного обеспечения из исходного кода . | GNU GPL | 0,29,2 |
Procps | Набор командной строки и полноэкранных утилит, которые предоставляют информацию из псевдофайловой системы, которая чаще всего находится в / proc . Эта файловая система обеспечивает простой интерфейс для структур данных ядра. Программы procps обычно концентрируются на структурах, описывающих процессы, выполняемые в системе. | GNU GPL и GNU LGPL | 3.3.17 |
Псмииск | Набор небольших полезных утилит, использующих файловую систему proc . | GNU GPL | 23,4 |
Python | Интерпретируемый язык программирования высокого уровня с открытым исходным кодом для программирования общего назначения | Лицензия Python Software Foundation | 3.9.2 |
Документация Python | Пакет содержит среду разработки Python. | 3.9.2 | |
Readline | GNU readline - это программная библиотека, созданная и поддерживаемая проектом GNU . | GNU GPL | 8.1 |
sed | sed ( редактор потока ) - это утилита Unix, которая (а) анализирует текстовые файлы и (б) реализует язык программирования, который может применять текстовые преобразования к таким файлам. | 4.8 | |
Тень | Инструмент в большинстве Unix и Unix-подобных операционных систем, используемый для изменения пароля пользователя . Пароль, введенный пользователем, запускается с помощью функции получения ключа для создания хешированной версии нового пароля, которая сохраняется. Сохраняется только хешированная версия; введенный пароль не сохраняется в целях безопасности. | Художественная лицензия или лицензия типа BSD | 4.8.1 |
Sysklogd | Демоны ядра и системного журнала, которые предоставляют две системные утилиты, которые обеспечивают поддержку системного журнала и перехвата сообщений ядра. Поддержка сокетов домена в Интернете и unix позволяет этому пакету служебных программ поддерживать как локальное, так и удаленное ведение журнала. | GNU GPL | 1.5.1 |
Сысвинит | Программы инициализации в стиле System V, управляющие загрузкой и завершением работы системы. | 2,96 | |
деготь | tar это программа, которая предоставляет возможность создавать архивы tar, а также различные другие виды манипуляций. | 1,34 | |
Tcl | Tool Command Language - это динамический язык сценариев . | Лицензия типа BSD [15] | 8.6.11 |
Texinfo | Синтаксис набора, используемый для создания документации как в интерактивной, так и в печатной форме, а также в официальном формате документации проекта GNU. | GNU GPL | 6,7 |
tzdata | База данных часовых поясов, являющаяся общественным достоянием, содержит код и данные, которые представляют историю местного времени для многих репрезентативных мест по всему миру. | Общественное достояние и BSD | 2021a |
Udev тарболл Конфигурация | Пакет Udev содержит программы для динамического создания узлов устройств. Разработка udev была объединена с systemd, но большая часть systemd несовместима с LFS. Здесь мы собираем и устанавливаем только необходимые файлы udev. | Лицензии Creative Commons и лицензия MIT | udev-lfs-20171102 |
util-linux | Пакет Util-linux содержит разные служебные программы. Среди них есть утилиты для работы с файловыми системами, консолями, разделами и сообщениями. | GNU GPL | 2.36.2 |
Языковые файлы Vim (рекомендуется) | Текстовый редактор, созданный для создания и изменения любого текста. | Бесплатное программное обеспечение ( лицензия Vim ), благотворительное ПО | 8.2.2433 |
XML :: парсер | 2,46 | ||
XZ Utils | Программа сжатия данных общего назначения с высокой степенью сжатия. XZ Utils были написаны для систем, подобных POSIX, но также работают в некоторых системах, отличных от POSIX. XZ Utils является преемником LZMA Utils. | GNU GPL и GNU LGPL | 5.2.5 |
Злиб | Zlib - это программная библиотека, используемая для сжатия данных . | лицензия zlib | 1.2.11 |
zstd | zstd - быстрый алгоритм сжатия без потерь и инструмент сжатия данных. Сжимайте или распаковывайте файлы .zst. | Двойная лицензия BSD + GPLv2. [16] | 1.4.8 |
[17] Это список пакетов, включенных в CLFS версии 1.1.0. Если не указано иное, этот список применим ко всем поддерживаемым архитектурам.
|
|
|
Стандартный строительный блок [ править ]
«Стандартный модуль сборки» («SBU») - это термин, используемый во время начальной загрузки системы, и представляет количество времени, необходимое для сборки первого пакета в LFS на данном компьютере. Его создание было вызвано долгим временем, необходимым для построения системы LFS, и желанием многих пользователей заранее знать, сколько времени потребуется для сборки архива с исходным кодом.
Начиная с Linux From Scratch версии 10.1, первым созданным пользователем пакетом является GNU binutils. При его создании пользователям предлагается измерять процесс сборки с помощью конструкций оболочки и дублировать это время как «стандартную единицу сборки». Как только это число известно, оценка времени, необходимого для создания более поздних пакетов, выражается относительно известного SBU.
Для сборки нескольких пакетов, созданных во время компиляции, требуется гораздо больше времени, чем для binutils, включая библиотеку GNU C (рейтинг 4,2 SBU) и коллекцию компиляторов GNU (рейтинг 11 SBU). Единицу следует интерпретировать как приблизительную; различные факторы влияют на фактическое время, необходимое для сборки пакета.
Прием [ править ]
LWN.net рассмотрел LFS в 2004 году: [18]
Linux From Scratch - замечательный проект. Он должен стать обязательным материалом для чтения для всех учебных курсов по Linux, и каждый энтузиаст Linux должен пройти хотя бы один раз. Это также создало бы еще один интересный побочный эффект: люди, которые обычно быстро выражают недовольство в списках рассылки и на форумах дистрибутивов, вероятно, будут проявлять гораздо больше уважения к разработчикам. Установить готовый дистрибутив - задача нетривиальная. Создание набора из 4 компакт-дисков, содержащих стабильную, безопасную и надежную операционную систему, а также тысячи приложений, определенно не годится.
Tux Machines написал обзор Linux From Scratch 6.1 в 2005 году: [19]
Теперь о BLFS. К сожалению, «За пределами Linux с нуля», кажется, всегда стоит книга. Для меня это не настоящая установка, пока вы не войдете в оконный менеджер.
Tux Machines также имеют вторую часть обзора [20] и третью часть. [21]
См. Также [ править ]
Другие дистрибутивы Linux на основе исходного кода:
- Gentoo Linux
- Колдун
- Источник Маг
- Лунный Linux
- GoboLinux
- CRUX
Ссылки [ править ]
- ^ a b "Новости LFS" . www.linuxfromscratch.org . Проверено 5 марта 2021 года .
- ^ Beekmans, Gerard (2021). Linux с нуля, версия 10.1 (PDF) .
- ^ Предисловие: Целевые архитектуры LFS , Linux с нуля
- ^ Что такое Linux с нуля? , Домашняя страница проекта LFS
- ^ Gerard Beekmans: Beyond Linux From Scratch, версия 6.3 (август 2008)
- ^ «Кросс-скомпилированный Linux с нуля - встроенный» .
- ^ Брендан Хоран. «Практичный Raspberry Pi» . 2013. с. 105.
- ^ a b «Домашняя страница проекта LFS LiveCD» . www.linuxfromscratch.org . Проверено 25 мая 2018 .
- ^ "Индекс / ~ kb0iic / livecdupd" . clfs.org . Проверено 25 мая 2018 .
- ^ "Лицензии для справочных страниц" . www.kernel.org . Проверено 25 мая 2018 .
- ^ «НКУРСЫ - Лицензирование» . Проверено 9 июля 2013 года .
- ^ "Художественная лицензия" - dev.perl.org " . dev.perl.org . Проверено 25 мая 2018 .
- ^ Художественный - файл в репозитории Perl 5 git
- ^ «Лицензирование Perl» . dev.perl.org . Проверено 8 января 2011 года .
- ^ «Условия лицензирования Tcl / Tk» . Проверено 8 января 2011 года .
- ^ "Новая лицензия" , GitHub "facebook / zstd"
- ^ http://www.linuxfromscratch.org/lfs/downloads/stable/wget-list
- ^ «Изучение Linux с нуля [LWN.net]» . lwn.net . Проверено 28 марта 2020 .
- ^ "Linux From Scratch 6.1 (часть 1?) | Tux Machines" . www.tuxmachines.org . Проверено 28 марта 2020 .
- ^ "Linux From Scratch 6.1 - Часть 2 - BLFS | Tux Machines" . www.tuxmachines.org . Проверено 28 марта 2020 .
- ^ "Beyond Beyond Linux с нуля (lfs - part3) | Tux Machines" . www.tuxmachines.org . Проверено 28 марта 2020 .
- "Домашняя страница проекта LFS" . Linux с нуля . Джерард Бикманс. 17 марта 2008 . Проверено 17 марта 2008 года .
Внешние ссылки [ править ]
- Официальный веб-сайт
- Linux с нуля в DistroWatch
- Интервью с Джерардом Бикмансом
- Еще одно интервью с Джерардом Бикмансом