Разработчик | Джерард Бикманс и др. |
---|---|
Семейство ОС | Unix-подобных |
Рабочее состояние | Текущая |
Исходная модель | Открытый исходный код |
Первоначальный выпуск | декабрь 1999 г.; 20 лет назад (1999-12) |
Последний выпуск | 10.0 / 1 сентября 2020 г.; 57 дней назад (2020-09-01) |
Метод обновления | На основе исходного кода |
Диспетчер пакетов | Нет (на основе исходного кода) |
Платформы | IA-32, x86-64 |
Ядро тип | Монолитное |
По умолчанию пользовательский интерфейс | CLI |
Лицензия | лицензии Creative Commons и Лицензия MIT |
Официальный сайт | www.linuxfromscratch.org |
Linux From Scratch (LFS ) является разновидностью Linux инсталляция и название книги, написанной Джерардом Бикмансом и в настоящее время по состоянию на сентябрь 2020 года в основном поддерживаемой Брюсом Даббсом. Книга дает читателям инструкции по созданию системы Linux из исходного кода. Книга доступна бесплатно на сайте Linux From Scratch.
Linux From Scratch - это способ установить работающую систему Linux путем сборки всех ее компонентов вручную. Это, естественно, более длительный процесс, чем установка предварительно скомпилированного дистрибутива Linux. Согласно сайту Linux From Scratch, преимущества этого метода заключаются в компактности, гибкости и безопасности системы и лучшем понимании внутренней работы операционных систем на базе Linux.
Чтобы LFS оставалась небольшой и сфокусированной, была создана книга Beyond Linux From Scratch (BLFS), в которой представлены инструкции по дальнейшему развитию базовой системы Linux, созданной в LFS. Он знакомит читателя с дополнениями к системе, включая поддержку сети, X, звука, принтера и сканера, и направляет его. Начиная с выпуска 5.0, книжная версия BLFS соответствует книжной версии LFS.
Книга Cross Linux From Scratch (CLFS) фокусируется на кросс-компиляции, включая компиляцию для headless или встроенные системы, которые могут работать под Linux, но не имеют ресурсов, необходимых для компиляции Linux. CLFS поддерживает широкий спектр процессоров и обращается к передовым методам, не включенным в книгу LFS, таким как кросс-сборка инструментальных цепочек, поддержка нескольких библиотек (32- и 64-битные библиотеки параллельно) и альтернативные архитектуры набора команд, такие как Itanium, SPARC, MIPS и Alpha..
Проект Linux from Scratch, как и BitBake, также поддерживает кросс-компиляцию Linux для ARM встроенных систем, таких как Raspberry Pi и BeagleBone..
Книга Защищенный Linux с нуля (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. LFS Live CD содержит все исходные пакеты (только в полной версии Live CD), книгу LFS, автоматизированные инструменты сборки и (за исключением минимальной версии Live CD) среду графического интерфейса Xfce для работы в Официальный LFS Live CD больше не поддерживается и не может быть использован для сборки LFS версии 7 или более поздней. Однако есть две неофициальные сборки, которые можно использовать для сборки 32-битного или 64-битного ядра и пользовательского пространства соответственно для LFS 7.x.
Во-первых, набор инструментов должен быть скомпилированный, состоящий из инструментов, используемых для компиляции LFS, таких как GCC, glibc, binutils и других необходимых утилит. Затем корневой каталог должен быть изменен (с использованием chroot ) на раздел инструментальной цепочки, чтобы начать сборку окончательной системы. Один из первых компилируемых пакетов - это glibc; после этого, компоновщик инструментальной цепочки должен быть настроен на link с недавно созданной glibc, чтобы все другие пакеты, составляющие законченную систему, также могли быть связаны с ней. Во время фазы chroot функция хеширования bash отключается, а каталог bin временной инструментальной цепочки перемещается в конец PATH. Таким образом, недавно скомпилированные программы попадают в PATH первыми, а новая система строится на собственных новых компонентах.
Компонент | Описание | Лицензия | Версия |
---|---|---|---|
Acl | Список управления доступом ( ACL) по отношению к файловой системе компьютера - это список разрешений, прикрепленных к объекту. | GNU GPL | 2.2.53 |
Attr | Команды для управления расширенными атрибутами файловой системы. | 2.4.48 | |
Autoconf | Инструмент для создания скриптов конфигурации для C, C ++, Fortran, Fortran 77, Программное обеспечение Erlang, Objective-C в Unix-подобных компьютерных системах. | 2.69 | |
Инструмент программирования Automake | A , который создает переносимые make-файлы для использования программой make, используемой при компиляции программного обеспечения. | 1.16.1 | |
Bash | A бесплатное программное обеспечение оболочка Unix, написанная для GNU Project | 5.0 | |
bc | bc - это базовый калькулятор (часто называемый стендовым калькулятором), является «языком калькулятора произвольной точности» с синтаксисом, аналогичным языку программирования C. | 2.5.3 | |
Binutils | Набор инструментов программирования для работы с кодом объекта в различных форматах объектных файлов. | 2.35 | |
Генератор синтаксического анализатора Bison | A , который является частью проекта GNU. Bison преобразует описание грамматики для контекстно-свободной грамматики в исходный код для парсера C, C ++ или Java. | 3.5.2 | |
Bzip2 | A бесплатно и с открытым исходным кодом сжатие данных без потерь алгоритм и программа, разработанная Джулиан Сьюард. | 1.0.8 | |
Среда модульного тестирования для C. | 0.14.0 | ||
Coreutils | A пакета из GNU программного обеспечения содержащий множество основных инструментов, таких как cat, ls и rm, необходимых для Unix-подобных операционных систем. | 8.31 | |
DejaGNU | Фреймворк для тестирования других программ. У него есть основной сценарий runtest, который просматривает каталог, просматривая файлы конфигурации, а затем запускает несколько тестов с заданными критериями. | 1.6.2 | |
Diffutils | A сравнение данных утилита, которая выводит различия между двумя файлами. | 3.7 | |
E2fsprogs | e2fsprogs (иногда называемый программами e2fs) - это набор утилит для поддержки ext2, ext3 и ext4 файловые системы. | 1.45.5 | |
Elfutils | Набор утилит и библиотек для чтения, создания и изменения двоичных файлов ELF. | GNU GPL и GNU LGPL | 0.178 |
Eudev | Форк udev, чтобы избежать зависимости от архитектуры systemd. Результирующая вилка называется eudev и делает доступной функциональность udev без парсера systemd. | GNU GPL | 3.2.9 |
Expat | A stream, ориентированного на XML 1.0 библиотека, написанная на C. | лицензии MIT | 2.2.9 |
Expect | Expect - это инструмент автоматизации и тестирования Unix как расширение Tcl язык сценариев, для интерактивных приложений, таких как telnet, ftp, passwd, fsck, rlogin, tip, ssh и другие. | Общественное достояние | 5.45.4 |
Файл | команда file - это стандартная программа Unix для распознавания типа данных, содержащихся в компьютерном файле. | Лицензия типа BSD | 5.38 |
Findutils | Утилиты поиска GNU - это базовые утилиты поиска в каталогах операционной системы GNU. | GNU GPL | 4.7.0 |
Flex | flex (быстрый лексический анализатор генератор) является бесплатным программным обеспечением альтернативой lex. | Лицензия BSD | 2.6.4 |
Gawk | Gawk - это язык программирования, предназначенный для обработки текстовых данных в файлах или потоках данных | GNU GPL | 5.0.1 |
GCC | Коллекция компиляторов GNU (обычно сокращается до GCC) - это система компилятора, созданная GNU Project, поддерживающая различные языки программирования | 10.2.0 | |
GDBM | GDBM simple СУБД | 1.18.1 | |
Gettext | Gettext - это GNU интернационализация и локализация (i18n) библиотека. | 0.20.1 | |
Glibc | Библиотека GNU C, широко известная как glibc, является стандартной библиотекой C, выпущенной GNU Проект. | 2.32 | |
GMP | Библиотека GNU Multiple-Precision, также известная как GMP, является бесплатной библиотекой для арифметики произвольной точности, работающей со знаком целые числа, рациональные числа и числа с плавающей запятой. | 6.2.0 | |
Gperf | Идеальный генератор хеш-функции. Для заданного списка строк он создает хеш-функцию и хеш-таблицу в форме кода C или C ++ для поиска значения в зависимости от входной строки. Хеш-функция идеальна, что означает, что в хеш-таблице нет коллизий, а для поиска по хеш-таблице требуется только сравнение одной строки. | 3.1 | |
Grep | grep - это командная строка утилита текстового поиска, изначально написанная для Unix. | 3.4 | |
Groff | Groff является GNU заменой программам форматирования текста troff и nroff . | 1.22.4 | |
GRUB | GNU GRUB (сокращение от GNU GRand Unified Bootloader) - это пакет загрузчика из GNU Project. | 2.04 | |
Gzip | Gzip - это программное приложение, используемое для сжатие файла. gzip - это сокращение от GNU zip | 1.10 | |
iana-etc. | Иана и т. Д. устанавливает службы и протоколы с использованием данных из Internet Assigned Numbers Authority. Включены моментальные снимки данных из IANA, сценарии для преобразования этих данных в необходимые форматы и сценарии для получения самых последних данных. | Открытая лицензия на программное обеспечение | 2.30 |
Inetutils | Набор сетевых инструментов, включая ftp, telnet и rsh. | GNU GPL | 1.9.4 |
Intltool | Набор инструментов для централизованного перевода множества различных файловых форматов с использованием GNU gettext-совместимых файлов PO. | 0.51.0 | |
IPRoute2 | Набор утилит пользовательского пространства для управления и мониторинга различных аспектов сети в ядре Linux, включая маршрутизацию, сетевые интерфейсы, туннели, управление трафиком и связанные с сетью драйверы устройств. | 5.5.0 | |
КБД | Пакет содержит инструменты для управления консолью Linux (консоль Linux, виртуальные терминалы на ней, клавиатура и т. Д.). В основном они загружают консольные шрифты и раскладки клавиатуры. Также этот пакет содержит набор различных шрифтов и раскладок клавиатуры. | 2.2.0 | |
Kmod | Бинарный файл с несколькими вызовами, который реализует программы, используемые для управления модулями ядра Linux. | 26 | |
меньше | меньше - это терминальный пейджер программа в Unix, Windows и Unix-подобные системы, используемые для просмотра (но не изменения) содержимого текстового файла по одному экрану за раз. | Dual: либо GPL, либо BSD-подобная лицензия | 551 |
LFS-Bootscripts | Пакет LFS-Bootscripts содержит набор скриптов для запуска / остановки системы LFS при загрузке / завершении работы. Файлы конфигурации и процедуры, необходимые для настройки процесса загрузки, описаны в следующих разделах. | Лицензии Creative Commons и Лицензия MIT | 9.0 (20191031) |
Libcap | Альтернатива модели привилегий суперпользователя в Linux. | 2.31 | |
Libffi | Портативная библиотека интерфейса сторонних функций. | Лицензия MIT | 3.3 |
Libpipeline | Libpipeline - это библиотека C для гибкого и удобного управления конвейерами подпроцессов. | GNU GPL | 1.5.2 |
Libtool | GNU Libtool - это GNU инструмент программирования из системы сборки GNU, используемый для создание переносимых скомпилированных библиотек . | 2.4.6 | |
Linux | Ядро Linux - это операционная система ядро , используемая семейством Linux Unix -подобные операционные системы. | 5.8.3 | |
GNU m4 | GNU m4 - это GNU версия препроцессора макросов m4. | 1.4.18 | |
make | Make - это утилита для автоматической сборки исполняемых программ и библиотек из исходного кода. | 4.3 | |
Man-DB | Man-DB - это реализация стандартной системы документации Unix, доступ к которой осуществляется с помощью команды man. Он использует базу данных Berkeley DB вместо традиционных баз данных whatis с неструктурированным текстом. | 2.9.0 | |
Справочные страницы | Справочная страница (сокращение от справочной страницы) - это форма онлайн-документации по программному обеспечению, которая обычно находится в Unix или Unix -подобная операционная система. | Несколько лицензий. | 5.05 |
Meson | система сборки с открытым исходным кодом, которая должна быть одновременно чрезвычайно быстрой и, что еще более важно, максимально удобной для пользователя. | Лицензия Apache | 0.53.1 |
MPC | Библиотека AC для арифметики комплексных чисел с произвольно высокой точностью | GNU LGPL | 1.1.0 |
MPFR | Библиотека GNU C для вычислений с плавающей запятой множественной точности с правильным округлением. | GNU LGPL и GNU GPL для части исходного кода с особыми исключениями | 4.0.2 |
Ninja | Небольшая система сборки с упором на скорость. | Лицензия Apache | 1.10.0 |
ncurses | Программная библиотека для написания текстовых пользовательских интерфейсов независимо от терминала | Лицензия X11 | 6.2 |
OpenSSL | Лицензия Apache 1.0 и четыре пункта Лицензия BSD | 1.1.1d | |
Патч | Компьютерный инструмент для Unix программ, который обновляет текстовые файлы в соответствии с инструкции содержатся в отдельном файле, называемом файлом исправления. | GNU GPL | 2.7.6 |
Perl | Язык программирования с динамической интерпретацией | Artistic License 1.0 или GNU GPL | 5.30.1 |
Pkg-config | Компьютерная программа, которая предоставляет унифицированный интерфейс для запроса установленных библиотек с целью компиляции программного обеспечения из его исходного кода. | GNU GPL | 0.29. 2 |
Procps | Набор утилит командной строки и полноэкранного режима, которые предоставляют информацию из псевдофайловой системы, которая обычно находится в / proc. Эта файловая система обеспечивает простой интерфейс для структур данных ядра. Программы procps обычно концентрируются на структурах, описывающих процессы, выполняющиеся в системе. | GNU GPL и GNU LGPL | 3.3.15 |
Psmisc | Набор небольших полезных утилит, использующих файловую систему proc. | GNU GPL | 23.2 |
Python | Интерпретируемый язык программирования высокого уровня с открытым исходным кодом для программирования общего назначения | Python Software Foundation License | 3.8.1 |
Документация Python | Пакет содержит среду разработки Python. | 3.8.1 | |
Readline | GNU readline - это программная библиотека, созданная и поддерживаемая GNU Project. | GNU GPL | 8.0 |
sed | sed (редактор потока) - это утилита Unix, которая (а) анализирует текстовые файлы и (б) реализует язык программирования , который может применять текстовые преобразования к таким файлы. | 4.8 | |
Shadow | Инструмент в большинстве Unix и Unix-подобных операционных систем, используемый для изменения пароля пользователя. Пароль, введенный пользователем, обрабатывается функцией создания ключа для создания хешированной версии нового пароля, которая сохраняется. Сохраняется только хешированная версия; введенный пароль не сохраняется в целях безопасности. | Artistic License или BSD-подобная лицензия | 4.8.1 |
Sysklogd | Ядро и ведение системного журнала демоны, которые предоставляют две системные утилиты, которые обеспечить поддержку системного журнала и перехвата сообщений ядра. Поддержка сокетов домена в Интернете и unix позволяет этому пакету служебных программ поддерживать как локальное, так и удаленное ведение журнала. | GNU GPL | 1.5.1 |
Sysvinit | Программы инициализации в стиле System V, которые управляют загрузкой и завершением работы системы. | 2.96 | |
tar | tar - это программа, которая предоставляет возможность создавать архивы tar, а также различные другие виды манипуляций. | 1.32 | |
Tcl | Tool Command Language - это динамический язык сценариев. | BSD-подобная лицензия | 8.6.10 |
Texinfo | Синтаксис набора, используемый для создание документации как в интерактивном, так и в печатном виде и в официальном формате документации проекта GNU. | GNU GPL | 6.7 |
tzdata | База данных часовых поясов общего пользования содержит код и данные, которые представляют историю местного времени для многих репрезентативных мест по всему миру. | Public domain и BSD | 2019c |
Udev Configuration Tarball | Пакет Udev содержит программы для динамического создания узлов устройств. Разработка udev была объединена с systemd, но большая часть systemd несовместима с LFS. Здесь мы собираем и устанавливаем только необходимые файлы udev. | Лицензии Creative Commons и Лицензия MIT | udev-lfs-20171102 |
util-linux | Пакет Util-linux содержит разные служебные программы. Среди них есть утилиты для работы с файловыми системами, консолями, разделами и сообщениями. | GNU GPL | 2.35.1 |
язык файлы (рекомендуется) | Текстовый редактор, созданный для создания и изменения любого текста. | Бесплатное программное обеспечение (Лицензия Vim ), благотворительное ПО | 8.2.0190 |
XML :: Parser | 2.46 | ||
XZ Utils | Общее -программное обеспечение сжатия данных с высокой степенью сжатия. XZ Utils были написаны для систем, подобных POSIX, но также работают в некоторых системах, отличных от POSIX. XZ Utils является преемником LZMA Utils. | GNU GPL и GNU LGPL | 5.2.4 |
Zlib | Zlib - это программная библиотека, используемая для сжатия данных. | лицензии zlib | 1.2.11 |
zstd | zstd - быстрый алгоритм сжатия без потерь и инструмент сжатия данных. Сжимайте или распаковывайте файлы.zst. | Двойная лицензия BSD + GPLv2. | 1.4.4 |
Это список пакетов, включенных в CLFS версии 1.1.0. Если не указано иное, этот список применим ко всем поддерживаемым архитектурам.
|
|
|
«Стандартная единица сборки» («SBU») - это термин, используемый во время начальной сапоги перехват системы и представляет количество времени, необходимое для сборки первого пакета в LFS на данном компьютере. Его создание было вызвано долгим временем, необходимым для создания системы LFS, и желанием многих пользователей заранее знать, сколько времени потребуется для сборки архива с исходным кодом.
Начиная с Linux From Scratch версии 6.3, первым пакетом, созданным пользователем, является GNU binutils. При его создании пользователям предлагается измерять процесс сборки с помощью конструкций оболочки и дублировать это время как «стандартную единицу сборки». Как только это число известно, оценка времени, необходимого для создания более поздних пакетов, выражается относительно известного SBU.
Для сборки нескольких пакетов, собранных во время компиляции, требуется гораздо больше времени, чем для binutils, включая GNU C Library (рейтинг 4.1 SBU) и GNU Compiler Collection (рейтинг 8.4 СБУ). Единицу следует интерпретировать как приблизительную; различные факторы влияют на фактическое время, необходимое для сборки пакета.
LWN.net рассмотрел LFS в 2004 году:
Linux From Scratch - замечательный проект. Он должен стать обязательным материалом для чтения для всех учебных курсов по Linux, и каждый энтузиаст Linux должен пройти хотя бы один раз. Это также создало бы еще один интересный побочный эффект: люди, которые, как правило, быстро выражают недовольство в списках рассылки и на форумах дистрибутивов, вероятно, будут проявлять гораздо больше уважения к разработчикам. Установить готовый дистрибутив - задача нетривиальная. Создание набора из 4 компакт-дисков, содержащих стабильную, безопасную и надежную операционную систему, плюс тысячи приложений, определенно не годится.
Tux Machines написал обзор Linux From Scratch 6.1 в 2005 году:
Теперь о BLFS. К сожалению, «За пределами Linux с нуля», кажется, всегда стоит книга. Для меня это ненастоящая установка, пока вы не сможете войти в оконный менеджер.
Tux Machines также имеют вторую часть обзора и третью часть.
Другие дистрибутивы Linux на основе исходного кода: