Marc Heerdink <marc_heerdink@softhome.net> за помощь в редактировании этой книги.
DREAMWVR.COM за предоставление ресурсов проекту LFS и другим подпроектам, связанным с ним.
Jan Niemann <jan.niemann@tu.bs.de> за зеркало www.de.linuxfromscratch.org mirror.
Torsten Westermann <westermann@linux-provider.net> за зеркало lfs.linux-provider.net mirror.
Ian Chilton <ian@ichilton.co.uk> за зеркала www.us.linuxfromscratch.org и www.linuxfromscratch.co.uk.
Dag Stenstad <dag@stenstad.net> за предоставление зеркала www.no.linuxfromscratch.org, и Ian Chilton <ian@ichilton.co.uk> за его администрирование.
Antonin Sprinzl <Antonin.Sprinzl@tuwien.ac.at> за зеркало www.at.linuxfromscratch.org.
Jason Andrade <jason@dstc.edu.au> за зеркало www.au.linuxfromscratch.org.
Ian Cooper <ian@wpi.edu> за зеркало www.us2.linuxfromscratch.org.
VA Linux Systems , которые от имени Linux.com, предоставили рабочую станцию VA Linux 420 (бывшая StartX SP2) для проекта.
Johan Lenglet <johan@linuxfromscratch.org> за осуществление руководства проекта перевода LFS на французский язык.
Jesse Tie-Ten-Quee highos@linuxfromscratch.org за предоставление пишущего привода Yamaha CDRW 8824E.
O'Reilly за предоставление книг по SQL и PHP.
Robert Briggs за предоставление доменов linuxfromscratch.org linuxfromscratch.com.
Frank Skettino <bkenoah@oswd.org> из OSWD за первоначальный дизайн вебсайта LFS.
Garrett LeSage <garrett@linux.com> за создание баннера LFS.
Dean Benson <dean@vipersoft.co.uk> за финансовую помощь в образовании некоммерческой организации LFS.
Бесчисленное количество людей в различных списках рассылки LFS за советы, тестирование книги и за сообщение об ошибках.
Как мы будем работать
Мы собираемся построить систему LFS, используя заранее установленный дистрибутив Linux, как например Debian, SuSE, Slackware, Mandrake, RedHat, и т.д. Мы будем использовать установленную систему как платформу для разработки, т.к. нам понадобится компилятор, линкер, текстовый редактор и другие средства разработки, необходимые для построения нашей системы. Обычно эти инструменты доступны по умолчанию, если выбрать опцию «development» при инсталляции дистрибутива Linux.
После скачивания необходимых для построения системы LFS пакетов, мы создадим раздел Linux native и файловую систему на нем. Там будет скомпилирована и установлена система LFS.
Затем, в Главе 5, мы опишем процесс инсталляции различных пакетов, которые сформируют среду разработки, которую мы используем для построения самой системы и для решения проблемы зависимостей. Например, для сборки нового компилятора необходим компилятор, а для установки оболочки необходима оболочка. Пакеты в этой главе будут слинкованы статически.
Использование статических ссылок позволяет нам избежать необходимости в наличии библиотек на момент завершения сборки. Собранная программа самодостаточна, т.к. части программы, которые обычно находятся в библиотеках, в нашем случае копируются из библиотек и вставляются в программу. Обычно программы компилируются с использованием динамических ссылок. Это позволяет сэкономить место на диске и повышает эффективность многих программ. В Главе 5 мы используем статические ссылки, т.к. теоретически мы перемещаем нашу систему разработки в виртуальную среду, где указанные библиотеки отсутствуют. Если скомпилировать программы на данном этапе с динамическими ссылками, то средства разработки не будут работать. Так как необходимые библиотеки предоставлены нам установленным дистрибутивом Linux, цель Главы 5 – создание среды разработки, в которой эти библиотеки не требуются, что делает эту среду независимым дистрибутивом.
В Главе 6 мы скомпилируем и инсталлируем конечную систему. Мы используем программу chroot, для того, чтобы войти в виртуальную среду и запустить оболочку, для которой корневой каталог будет тот раздел, куда мы установили программы из Главы 5. Это похоже на то, когда при перезагрузке системы мы даем указание ядру монтировать раздел LFS как корневой. Почему мы используем chroot вместо того, чтобы перезагрузиться? Дело в том, что создание загрузочной системы LFS со статическими ссылками подразумевает выполнение дополнительных шагов, которые сейчас излишни. А также мы хотим иметь возможность использовать наш базовый дистрибутив во время установки LFS. Пока компилируется LFS, вы сможете переключиться в другую виртуальную консоль и сессию Х и заняться своими делами.
Когда все пакеты из Главы 6 проинсталлированы, Главы 7, 8 и 9 опишут завершающую стадию установки. Следуя указаниям Главы 7, мы напишем загрузочные скрипты. С помощью Главы 8 мы скомпилируем ядро Linux и установим загрузчик. Глава 9 содержит дополнительные указания по доводке системы после прочтения книги. И, наконец, можно будет перезагрузить систему и начать использовать LFS.
Это краткое изложение процесса установки. Более конкретную информацию вы можете найти в соответствующих главах и описаниях программных пакетов. Если сейчас вам что-то непонятно, ничего страшного. Скоро все приобретет смысл.
Прочтите Главу 2 внимательно. Она объясняет некоторые важные моменты, необходимые для понимания перед тем, как приступить к Главе 5 и далее.
Условные обозначения, используемые в книге
Для облегчения понимания книги, ознакомьтесь с условными обозначениями, используемыми в дальнейшем:
./configure –prefix=/usr
Текст такого формата предназначен для набора в командной строке в точности как на экране, помимо случаев, когда даны иные указания. Также он используется в пояснительных разделах для определения команды, о которой идет речь.
install-info: unknown option `–dir-file=/mnt/lfs/usr/info/dir'
Текст такого формата (с фиксированной шириной) показывает вывод на экране, как результат выполнения той или иной команды. Также он используется для обозначения имени файла, например /etc/lilo.conf.
Emphasis
Текст такого формат имеет несколько назначений в книге. В основном он используется для подчеркивания наиболее важных моментов, а также для примеров.
http://www.linuxfromscratch.org/
Текст такого формата используется для ссылок, как по книге, так и для ссылок на внешние ресурсы – на руководства, вебсайты и т.д.
cat > $LFS/etc/group << «EOF»
root:x:0:
bin:x:1:
......
EOF
Данный раздел используется в основном для создания конфигурационных файлов. Первая команда (выделенная жирным шрифтом) создает файл $LFS/etc/group, наполняя его строчками до EOF. В командной строке данная секция печатается в точности как на экране.
Версия книги
Перед вами Книга LFS версии 4.0 от 5 октября 2002 г. В случае, если данная версия старше месяца, наверняка обновленная версия книги доступна для скачивания с нижеперечисленных зеркал.