Linux с нуля - Linux From Scratch
эта статья слишком полагается на Рекомендации к основные источники.Октябрь 2013) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчик | Джерард Бикманс и др. |
---|---|
Семейство ОС | Unix-подобный |
Рабочее состояние | Текущий |
Исходная модель | Открытый исходный код |
изначальный выпуск | Декабрь 1999 г. |
Последний релиз | 10.0 / 1 сентября 2020[1][2] |
Метод обновления | Исходный |
Менеджер пакетов | Нет (на основе исходного кода) |
Платформы | IA-32, x86-64[3] |
Ядро тип | Монолитный |
Дефолт пользовательский интерфейс | CLI |
Лицензия | Лицензии Creative Commons и Лицензия MIT |
Официальный веб-сайт | www |
Linux с нуля (LFS) является разновидностью Linux инсталляция и название книги, написанной Джерардом Бикмансом, и в настоящее время, по состоянию на сентябрь 2020 года, в основном поддерживается Брюсом Даббсом. Книга дает читателям инструкции о том, как собрать систему Linux из источник. Книгу можно бесплатно загрузить с сайта Linux From Scratch.[1]
Проекты под LFS
Linux с нуля - это способ установить работающую систему Linux путем сборки всех ее компонентов вручную. Это, естественно, более длительный процесс, чем установка предварительно скомпилированного Дистрибутив Linux. Согласно Linux с нуля site, преимущества этого метода - компактная, гибкая и безопасная система, а также лучшее понимание внутренней работы операционных систем на базе Linux.[4]
Чтобы LFS оставалась небольшой и сфокусированной, книга Помимо Linux с нуля (BLFS), в котором представлены инструкции по дальнейшему развитию базовой системы Linux, созданной в LFS. Он знакомит читателя с дополнениями к системе, включая сетевые, Икс, звук, поддержка принтера и сканера. Начиная с версии 5.0 книжная версия BLFS соответствует книжной версии LFS.[5]
Книга Кросс-Linux с нуля (CLFS) фокусируется на кросс-компиляция, включая компиляцию для без головы или встроенный системы, которые могут пробег Linux, но не хватает ресурсов, необходимых для компилировать Linux. CLFS поддерживает широкий спектр процессоры и обращается к продвинутым методам, не включенным в книгу LFS, таким как кросс-сборка инструменты, поддержка нескольких библиотек (32 и 64 бит библиотеки бок о бок), и альтернатива архитектуры наборов команд такие как Itanium, SPARC, MIPS, и Альфа.
Проект Linux с нуля, например BitBake, также поддерживает кросс-компиляцию Linux для РУКА встроенные системы, такие как Raspberry Pi и BeagleBone.[6][7]
Книга Защищенный Linux с нуля (HLFS) фокусируется на улучшениях безопасности, таких как закаленный патчи ядра, обязательно контроль доступа политики защита от разрушения стека, и рандомизация разметки адресного пространства. Помимо своей основной цели создания операционная система, ориентированная на безопасность У HLFS была вторичная цель - стать инструментом обучения безопасности. Не обновлялся с 2011 года.
Автоматизированный Linux с нуля (ALFS) это проект, предназначенный для автоматизации процесса создания системы LFS. Он предназначен для пользователей, которые несколько раз просмотрели книги LFS и BLFS и желают сократить объем работы. Вторичная цель состоит в том, чтобы выступать в качестве теста книг LFS и BLFS путем прямого извлечения и выполнения инструкций из источников XML книг LFS и BLFS.
Требования и порядок действий
Чистый раздел и работающая система Linux с компилятором и некоторыми необходимыми программные библиотеки необходимы для построения LFS. Вместо установки из существующей системы 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 фаза трепать функция хеширования отключена, а каталог bin временной цепочки инструментов перемещен в конец PATH. Таким образом, недавно скомпилированные программы попадают в PATH первыми, а новая система строится на собственных новых компонентах.
Список пакетов в LFS версии 10.0
Компонент | Описание | Лицензия | Версия |
---|---|---|---|
Acl | Список управления доступом (ACL) по отношению к файловой системе компьютера - это список разрешений, прикрепленных к объекту. | GNU GPL | 2.2.53 |
Attr | Команды для управления расширенными атрибутами файловой системы. | 2.4.48 | |
Autoconf | Инструмент для производства настроить скрипты за C, C ++, Фортран, Фортран 77, Erlang, Цель-C программное обеспечение на Unix-подобный Компьютерные системы. | 2.69 | |
Automake | А инструмент программирования который производит портативные make-файлы для использования делать программа, используемая при компиляции программного обеспечения. | 1.16.1 | |
Баш | А бесплатно программное обеспечение Оболочка Unix написано для Проект GNU | 5.0 | |
до н.э | до н.э это базовый калькулятор (часто называемый стендовым калькулятором), это «язык калькулятора произвольной точности» с синтаксисом, аналогичным Язык программирования C. | 2.5.3 | |
Binutils | Коллекция инструменты программирования для манипулирования объектный код в различных форматах объектных файлов. | 2.35 | |
Бизон | А генератор парсеров это часть Проект GNU. Бизон преобразует грамматика описание для контекстно-свободная грамматика в исходный код для C, C ++ или Ява парсер. | 3.5.2 | |
Bzip2 | А свободный и Открытый исходный код сжатие данных без потерь алгоритм и программа разработана Джулиан Сьюард. | 1.0.8 | |
Проверьте | Фреймворк для модульного тестирования C. | 0.14.0 | |
Coreutils | А пакет из GNU программного обеспечения содержащий множество основных инструментов, таких как Кот, ls, и rm, необходим для Unix-подобный операционные системы. | 8.31 | |
DejaGNU | Фреймворк для тестирования других программ. У него есть основной сценарий runtest, который просматривает каталог, просматривая файлы конфигурации, а затем запускает несколько тестов с заданными критериями. | 1.6.2 | |
Diffutils | А сравнение данных утилита, которая выводит различия между двумя файлами. | 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 |
Эмигрант | А транслировать ориентированный XML 1.0 парсер библиотека, написано в C. | Лицензия MIT | 2.2.9 |
Ожидать | Ожидание - это Unix инструмент автоматизации и тестирования как расширение Tcl язык сценариев, для интерактивного Приложения такие как телнет, ftp, пароль, fsck, rlogin, Подсказка, 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 | Гавк - это язык программирования который предназначен для обработки текстовых данных в файлах или потоках данных | GNU GPL | 5.0.1 |
GCC | Коллекция компиляторов GNU (обычно сокращается до GCC) - это компилятор система, созданная Проект GNU поддержка различных языки программирования | 10.2.0 | |
GDBM | GDBM простой движки баз данных | 1.18.1 | |
Gettext | Gettext - это GNU интернационализация и локализация (i18n) библиотека. | 0.20.1 | |
Glibc | GNU C Библиотека, широко известная как glibc, - это Стандартная библиотека C выпущен Проект GNU. | 2.32 | |
GMP | Библиотека множественной точности GNU, также известная как GMP, является свободный библиотека для арифметика произвольной точности, работающих по подписанным целые числа, рациональное число, и плавающая точка числа. | 6.2.0 | |
Gperf | Идеальный генератор хеш-функций. Для заданного списка строк он создает хеш-функцию и хеш-таблицу в форме кода C или C ++ для поиска значения в зависимости от входной строки. Хеш-функция идеальна, что означает, что в хеш-таблице нет коллизий, а для поиска по хеш-таблице требуется только сравнение одной строки. | 3.1 | |
Grep | grep это командная строка утилита текстового поиска, изначально написанная для Unix. | 3.4 | |
Грофф | Грофф - это 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-etc. устанавливает сервисы и протоколы, используя данные из Управление по присвоению номеров в Интернете. Включены моментальные снимки данных из IANA, сценарии для преобразования этих данных в необходимые форматы и сценарии для получения самых последних данных. | Открытая лицензия на программное обеспечение | 2.30 |
Inetutils | Набор сетевых инструментов, включая ftp, telnet и rsh. | GNU GPL | 1.9.4 |
Intltool | Набор инструментов для централизованного перевода множества различных форматов файлов с использованием файлов PO, совместимых с GNU gettext. | 0.51.0 | |
IPRoute2 | Коллекция пространство пользователя утилиты для управления и мониторинга различных аспектов сеть в Ядро Linux, в том числе Маршрутизация, сетевые интерфейсы, туннели, контроль движения, и связанные с сетью драйверы устройств. | 5.5.0 | |
КБД | Пакет содержит инструменты для управления консолью Linux (консоль Linux, виртуальные терминалы на ней, клавиатура и т. Д.). В основном они загружают консольные шрифты и раскладки клавиатуры. Также этот пакет содержит набор различных шрифтов и раскладок клавиатуры. | 2.2.0 | |
Kmod | Бинарный файл с несколькими вызовами, который реализует программы, используемые для управления модулями ядра Linux. | 26 | |
меньше | меньше это терминальный пейджер программа на Unix, Windows и Unix-подобный системы, используемые для просмотра (но не изменения) содержимого текстовый файл по одному экрану за раз. | Двойной: либо GPL или BSD-подобная лицензия | 551 |
LFS-загрузочные скрипты | Пакет LFS-Bootscripts содержит набор сценариев для запуска / остановки системы LFS при загрузке / завершении работы. Файлы конфигурации и процедуры, необходимые для настройки процесса загрузки, описаны в следующих разделах. | Лицензии Creative Commons и Лицензия MIT | 9.0 (20191031) |
Libcap | Альтернатива модели привилегий суперпользователя в Linux. | 2.31 | |
Либффи | Переносимая библиотека интерфейса чужих функций. | Лицензия 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 версия м4 Макро-препроцессор. | 1.4.18 | |
делать | Сделать это полезность за автоматически строит исполняемые программы и библиотеки из исходный код. | 4.3 | |
Человек-БД | Man-DB - это реализация стандартной системы документации Unix, доступ к которой осуществляется с помощью команды man. Он использует базу данных Berkeley DB вместо традиционных баз данных whatis с неструктурированным текстом. | 2.9.0 | |
Man-страницы | Страница руководства (сокращение от страницы руководства) - это форма онлайн-документации по программному обеспечению, которую обычно можно найти на Unix или Unix-подобный Операционная система. | Множественные лицензии.[10] | 5.05 |
Мезон | система сборки с открытым исходным кодом, которая должна быть одновременно чрезвычайно быстрой и, что еще более важно, максимально удобной для пользователя. | Лицензия Apache | 0.53.1 |
ПДК | Библиотека C для арифметики комплексных чисел с произвольно высокая точность | GNU LGPL | 1.1.0 |
MPFR | Библиотека GNU C для вычислений с плавающей запятой множественной точности с правильным округлением. | GNU LGPL и GNU GPL для специальной части исключения исходного кода | 4.0.2 |
Ниндзя | Небольшая система сборки с упором на скорость. | Лицензия Apache | 1.10.0 |
ncurses | Библиотека программирования для написания текстовых пользовательских интерфейсов независимо от терминала | Лицензия X11[11] | 6.2 |
OpenSSL | Лицензия Apache 1.0 и четыре предложения Лицензия BSD | 1.1.1d | |
Пластырь | Компьютерный инструмент для Unix программы который обновляет текстовые файлы в соответствии с инструкциями, содержащимися в отдельном файле, который называется файл патча. | GNU GPL | 2.7.6 |
Perl | Динамический интерпретируемый язык программирования | Художественная лицензия 1.0[12][13] или GNU GPL[14] | 5.30.1 |
Pkg-config | Компьютерная программа, предоставляющая единый интерфейс для запроса установленного библиотеки с целью составление программное обеспечение от его исходный код. | GNU GPL | 0.29.2 |
Procps | Набор командной строки и полноэкранных утилит, которые предоставляют информацию из псевдофайловой системы, обычно расположенной по адресу / proc. Эта файловая система обеспечивает простой интерфейс для структур данных ядра. Программы procps обычно концентрируются на структурах, описывающих процессы, выполняющиеся в системе. | GNU GPL и GNU LGPL | 3.3.15 |
Псмииск | Набор небольших полезных утилит, использующих proc файловая система. | GNU GPL | 23.2 |
Python | Интерпретируемый язык высокого уровня с открытым исходным кодом для программирования общего назначения. | Лицензия Python Software Foundation | 3.8.1 |
Документация Python | Пакет содержит среду разработки Python. | 3.8.1 | |
Readline | Строка чтения GNU - это библиотека программного обеспечения создан и поддерживается Проект GNU. | GNU GPL | 8.0 |
sed | sed (редактор потока) это Unix утилита, которая (а) анализирует текстовые файлы и (б) реализует язык программирования который может применять текстовые преобразования к таким файлам. | 4.8 | |
Тень | Инструмент для большинства Unix и Unix-подобный операционные системы, используемые для изменения пользователя пароль. Пароль, введенный пользователем, проходит через ключевая деривационная функция создать хешированная версия нового пароля, который сохраняется. Сохраняется только хешированная версия; введенный пароль не сохраняется в целях безопасности. | Художественная лицензия или BSD-подобная лицензия | 4.8.1 |
Sysklogd | Ядро и системный журнал демоны который предоставляет две системные утилиты, которые обеспечивают поддержку системного журнала и перехвата сообщений ядра. Поддержка сокетов домена в Интернете и unix позволяет этому пакету служебных программ поддерживать как локальное, так и удаленное ведение журнала. | GNU GPL | 1.5.1 |
Сысвинит | Программы инициализации в стиле System V, управляющие загрузкой и завершением работы системы. | 2.96 | |
деготь | деготь это программа, которая предоставляет возможность создавать tar-архивы, а также различные другие виды манипуляций. | 1.32 | |
Tcl | Язык команд инструмента динамичный язык сценариев. | BSD-подобная лицензия[15] | 8.6.10 |
Texinfo | Синтаксис набора, используемый для создания документации как в интерактивной, так и в печатной форме, и в официальном формате документации проекта GNU. | GNU GPL | 6.7 |
tzdata | База данных часовых поясов общественного достояния содержит код и данные, которые представляют историю местного времени для многих репрезентативных мест по всему миру. | Всеобщее достояние и BSD | 2019c |
Удев Тарбол конфигурации | Пакет Udev содержит программы для динамического создания узлов устройств. Разработка udev была объединена с systemd, но большая часть systemd несовместима с LFS. Здесь мы собираем и устанавливаем только необходимые файлы udev. | Лицензии Creative Commons и Лицензия MIT | udev-lfs-20171102 |
утилита-Linux | Пакет Util-linux содержит разные служебные программы. Среди них есть утилиты для работы с файловыми системами, консолями, разделами и сообщениями. | GNU GPL | 2.35.1 |
Vim язык файлы (рекомендуется) | Текстовый редактор, созданный для создания и изменения любого текста. | Бесплатно программное обеспечение (Лицензия Vim ), благотворительная посуда | 8.2.0190 |
XML :: парсер | 2.46 | ||
XZ Utils | Программа сжатия данных общего назначения с высокой степенью сжатия. XZ Utils были написаны для систем, подобных POSIX, но также работают в некоторых системах, отличных от POSIX. XZ Utils является преемником LZMA Utils. | GNU GPL и GNU LGPL | 5.2.4 |
Злиб | Злиб - это библиотека программного обеспечения используется для Сжатие данных. | лицензия zlib | 1.2.11 |
zstd | zstd - быстрый алгоритм сжатия без потерь и инструмент сжатия данных. Сжимайте или распаковывайте файлы .zst. | Двойная лицензия BSD + GPLv2.[16] | 1.4.4 |
[17]Это список пакетов, включенных в CLFS версии 1.1.0. Если не указано иное, этот список применим ко всем поддерживаемым архитектурам.
|
|
|
Стандартный блок сборки
«Стандартный модуль сборки» («SBU») - это термин, используемый во время начальной начальной загрузки системы, и представляет количество времени, необходимое для сборки первого пакета в LFS на данном компьютере. Его создание было вызвано долгим временем, необходимым для построения системы LFS, и желанием многих пользователей заранее знать, сколько времени потребуется для сборки архива с исходным кодом.
Начиная с Linux From Scratch версии 6.3, первым созданным пользователем пакетом является GNU binutils. При его создании пользователям предлагается измерять процесс сборки с помощью конструкций оболочки и дублировать это время как «стандартную единицу сборки». Как только это число известно, оценка времени, необходимого для создания более поздних пакетов, выражается относительно известного SBU.
Некоторые пакеты, созданные во время компиляции, собираются намного дольше, чем binutils, включая Библиотека GNU C (рейтинг 4.1 SBU) и Коллекция компиляторов GNU (рейтинг 8,4 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 на основе исходного кода:
Рекомендации
- ^ а б "Новости LFS". www.linuxfromscratch.org. Получено 3 сентября 2020.
- ^ Бикманс, Джерард (2020). Linux с нуля, версия 10.0 (PDF).
- ^ Предисловие: Целевые архитектуры LFS, Linux с нуля
- ^ Что такое Linux с нуля?, Домашняя страница проекта LFS
- ^ Джерард Бикманс: За пределами Linux с нуля, версия 6.3 (август 2008 г.)
- ^ «Кросс-скомпилированный Linux с нуля - встроенный».
- ^ Брендан Хоран.«Практичный Raspberry Pi».2013.p. 105.
- ^ а б "Домашняя страница проекта LFS LiveCD". www.linuxfromscratch.org. Получено 25 мая 2018.
- ^ "Индекс / ~ kb0iic / livecdupd". clfs.org. Получено 25 мая 2018.
- ^ «Лицензии для справочных страниц». www.kernel.org. Получено 25 мая 2018.
- ^ «NCURSES - Лицензирование». Получено 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.