Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Linux с нуля. Версия 7.3

Покупка
Артикул: 460566.02.99
Доступ онлайн
359 ₽
В корзину
Если вы мечтаете собрать свою собственную операционную систему, то книга «Linux с нуля» — именно для вас. Из нее вы узнаете, как подготовить нужный для сборки набор инструментальных средств, откуда и какие взять для этого исходные коды программ, как собрать их в виде пакетов и заставить их вместе работать как единое целое, управляющее вашим компьютером. Книга подробно расскажет вам, как конкретно подготовить каждый из пакетов, из которых собирается система, проведет вас через лабиринты системных и пользовательских настроек, и, конечно, подскажет, где и как искать решения в случае, если что-то пойдет не так, как ожидалось. Система, которую вы соберете, станет не только вашей гордостью, но и, без всякого сомнения, послужит для вас той основой, на которой вы будете и дальше познавать увлекательный мир операционных систем Linux.
Бикманс, Ж. Linux с нуля. Версия 7.3 : практическое руководство / Ж. Бикманс ; под ред. М. Бургес, Б. Дабс ; пер. с англ. Н. А. Ромоданова. - 2-е изд. - Москва : ДМК Пресс, 2023. - 429 с. - (Linux From Scratch). - ISBN 978-5-89818-575-6. - Текст : электронный. - URL: https://znanium.com/catalog/product/2107937 (дата обращения: 10.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Бикманс Ж.

Linux с нуля

Серия «Linux From Scratch»
Linux From Scratch

Created by Gerard Beekmans

Edited by Matthew Burgess and Bruce Dubbs
Linux с нуля

Жерар Бикманс 

Москва, 2023

Серия «Linux From Scratch»

Под редакцией Мэтью Бургес и Брюс Дабс

2-е издание, электронное
УДК 004.451Linux
ББК 32.973.26-018.2
Б60

Б60
Бикманс, Жерар.
Linux с нуля. Версия 7.3 / Ж. Бикманс ; под ред. М. Бургес, Б. Дабс ; пер. 
с англ. Н. А. Ромоданова. — 2-е изд., эл. — 1 файл pdf : 429 с. — Москва : ДМК 
Пресс, 2023. — (Linux From Scratch). — Систем. требования: Adobe Reader 
XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный.
ISBN 978-5-89818-575-6

Если вы мечтаете собрать свою собственную операционную систему, то книга 
«Linux с нуля» — именно для вас. Из нее вы узнаете, как подготовить нужный для 
сборки набор инструментальных средств, откуда и какие взять для этого исходные 
коды программ, как собрать их в виде пакетов и заставить их вместе работать как 
единое целое, управляющее вашим компьютером. Книга подробно расскажет вам, 
как конкретно подготовить каждый из пакетов, из которых собирается система, проведет 
вас через лабиринты системных и пользовательских настроек, и, конечно, подскажет, 
где и как искать решения в случае, если что-то пойдет не так, как ожидалось. 
Система, которую вы соберете, станет не только вашей гордостью, но и, без всякого 
сомнения, послужит для вас той основой, на которой вы будете и дальше познавать 
увлекательный мир операционных систем Linux.

УДК 004.451Linux 
ББК 32.973.26-018.2

Электронное издание на основе печатного издания: Linux с нуля. Версия 7.3 / Ж. Бикманс ; 
под ред. М. Бургес, Б. Дабс ; пер. с англ. Н. А. Ромоданова. — Москва : ДМК Пресс, 2016. — 
428 с. — (Linux From Scratch). — ISBN 978-5-97060-225-6. — Текст : непосредственный.

Все права зарезервированы. Настоящая книга издана под лицензией Creative Commons License. Инструкции, 
предназначенные для использования на компьютере, могут использоваться под лицензией MIT 
отдельно от книги. 
Linux® является зарегистрированной торговой маркой Linus Torvalds.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было 
форме и какими бы то ни было средствами без  письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических 
ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность 
приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные 
с использованием книги.

В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами 
защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации.


ISBN 978-5-89818-575-6
© 1999-2013 Gerard Beekmans
©  Оформление, перевод на русский язык 
ДМК Пресс, 2016
ОГЛАВЛЕНИЕ

Предисловие .......................................................... 11
Аудитория ..................................................................................... 12
Целевая архитектура проекта LFS ................................................. 14
Проект LFS и стандарты ................................................................ 15
Обоснование использования пакетов, которые приведены в книге 17
Предварительные требования ....................................................... 24
Требование к хост-системе ........................................................... 25
Типографские соглашения ............................................................ 27
Структура книги ............................................................................ 29
Возможные проблемы ................................................................... 30

ЧАСТЬ I. 
Введение ................................................................31

Глава 1. Введение .....................................................32
1.1. Как собрать систему LFS ......................................................... 32
1.2. Что изменилось по сравнению с предыдущей версией? ......... 34
1.3. Список изменений .................................................................. 35
1.4. Ресурсы .................................................................................. 43
1.5. Помощь .................................................................................. 44

ЧАСТЬ II.
Подготовка к сборке ..................................................47

Глава 2. Подготовка нового раздела ............................48
2.1. Введение ................................................................................ 48
2.2. Создание нового раздела ....................................................... 48
2.3. Создание в разделе файловой системы ................................. 51
2.4. Монтирование нового раздела ............................................... 53

Глава 3. Пакеты и патчи .............................................55
3.1. Введение ................................................................................ 55
3.2. Все пакеты .............................................................................. 56
3.3. Необходимые патчи ................................................................ 64

Глава 4. Последние приготовления ..............................66
4.1. О переменной $LFS ................................................................ 66
4.2. Создание каталога $LFS/tools ................................................. 66
Оглавление

4.3. Добавление пользователя LFS ................................................ 67
4.4. Настройка среды окружения ................................................... 69
4.5. О единице измерения времени SBU  ....................................... 71
4.6. О наборах тестов .................................................................... 72

Глава 5. Создание временной версии системы ..............74
5.1. Введение ................................................................................ 74
5.2. Технические замечания об инструментальном наборе ............ 74
5.3. Общие инструкции, касающиеся компиляции ......................... 78
5.4. Пакет Binutils-2.23.1 – первый проход ..................................... 80
5.5. Пакет GCC-4.7.2 – первый проход ........................................... 82
5.6. Заголовки Linux-2.6.37 Linux-3.8.1 API ..................................... 86
5.7. Пакет Glibc-2.17 ...................................................................... 87
5.8. Пакет Binutils-2.23.1 – второй проход ...................................... 90
5.9. Пакет GCC-4.7.2 – второй проход ........................................... 92
5.10. Пакет Tcl-8.6.0 ...................................................................... 96
5.11. Пакет Expect-5.45 ................................................................. 97
5.12. Пакет DejaGNU-1.5 ................................................................ 99
5.13. Пакет Check-0.9.9 ............................................................... 100
5.14. Пакет Ncurses-5.9 ............................................................... 101
5.15. Пакет Bash-4.2 .................................................................... 102
5.16. Пакет Bzip2-1.0.6 ................................................................ 103
5.17. Пакет Coreutils-8.21 ............................................................ 103
5.18. Пакет Diffutils-3.2 ................................................................ 104
5.19. Пакет File-5.13 .................................................................... 105
5.20. Пакет Findutils-4.4.2 ............................................................ 105
5.21. Пакет Gawk-4.0.2 ................................................................ 106
5.22. Пакет Gettext-0.18.2 ............................................................ 107
5.23. Пакет Grep-2.14 .................................................................. 108
5.24. Пакет Gzip-1.5 ..................................................................... 108
5.25. Пакет M4-1.4.16 .................................................................. 109
5.26. Пакет Make-3.82 ................................................................. 110
5.27. Пакет Patch-2.7.1 ................................................................ 110
5.28. Пакет Perl-5.16.2 ................................................................. 111
5.29. Пакет Sed-4.2.2 ................................................................... 112
5.30. Пакет Tar-1.26 ..................................................................... 112
5.31. Пакет Texinfo-5.0 ................................................................. 113
5.32. Пакет Xz-5.0.4 ..................................................................... 114
5.33. Удаление ненужных файлов ................................................ 114
5.34. Смена владельца ................................................................ 115

ЧАСТЬ III.
Сборка системы LFS ................................................117

Глава 6. Установка программ базовой системы............118
Оглавление

6.1. Введение .............................................................................. 118
6.2. Подготовка виртуальных файловых систем ядра ................... 119
6.3. Управление пакетами ........................................................... 121
6.4. Переход в среду chroot ......................................................... 126
6.5. Создание каталогов .............................................................. 127
6.6. Создание важных файлов и символических ссылок .............. 129
6.7. Заголовки Linux-3.8.1 API ...................................................... 131
6.8. Пакет Man-pages-3.47 .......................................................... 132
6.9. Пакет Glibc-2.17  ................................................................... 133
6.10. Перенастройка инструментального набора ........................ 143
6.11. Пакет Zlib-1.2.7 ................................................................... 145
6.12. Пакет File-5.13 .................................................................... 146
6.13. Пакет Binutils-2.23.1 ............................................................ 147
6.14. Пакет GMP-5.1.1 ................................................................. 150
6.15. Пакет MPFR-3.1.1 ................................................................ 152
6.16. Пакет MPC-1.0.1 ................................................................. 153
6.17. Пакет GCC-4.7.2.................................................................. 154
6.18. Пакет Sed-4.2.2 ................................................................... 161
6.19. Пакет Bzip2-1.0.6 ................................................................ 162
6.20. Пакет Pkg-config-0.28 ......................................................... 164
6.21.Пакет Ncurses-5.9 ................................................................ 165
6.22. Пакет Util-linux-2.22.2 .......................................................... 168
6.23. Пакет Psmisc-22.20 ............................................................. 174
6.24. Пакет Procps-ng-3.3.6 ......................................................... 175
6.25. Пакет E2fsprogs-1.42.7 ........................................................ 178
6.26. Пакет Shadow-4.1.5.1 .......................................................... 182
6.27. Пакет Coreutils-8.21 ............................................................ 187
6.28. Пакет Iana-Etc-2.30 ............................................................. 195
6.29. Пакет M4-1.4.16 .................................................................. 195
6.30. Пакет Bison-2.7 ................................................................... 196
6.31. Пакет Grep-2.14 .................................................................. 197
6.32. Пакет Readline-6.2 .............................................................. 198
6.33. Пакет Bash-4.2 .................................................................... 200
6.34. Пакет Libtool-2.4.2 ............................................................... 201
6.35. Пакет GDBM-1.10 ................................................................ 202
6.36. Пакет Inetutils-1.9.1 ............................................................. 203
6.37. Пакет Perl-5.16.2 ................................................................. 206
6.38. Пакет Autoconf-2.69 ............................................................ 210
6.39. Пакет Automake-1.13.1 ........................................................ 211
6.40. Пакет Diffutils-3.2 ................................................................ 213
6.41. Пакет Gawk-4.0.2 ................................................................ 214
6.42. Пакет Findutils-4.4.2 ............................................................ 215
6.43. Пакет Flex-2.5.37 ................................................................. 217
6.44. Пакет Gettext-0.18.2 ............................................................ 218
Оглавление

6.45. Пакет Groff-1.22.2 ............................................................... 221
6.46. Пакет Xz-5.0.4 ..................................................................... 225
6.47. Пакет GRUB-2.00 ................................................................ 227
6.48. Пакет Less-451 .................................................................... 229
6.49. Пакет Gzip-1.5 ..................................................................... 230
6.50. Пакет IPRoute2-3.8.0 ........................................................... 231
6.51. Пакет Kbd-1.15.5 ................................................................. 234
6.52. Пакет Kmod-12 .................................................................... 237
6.53. Пакет Libpipeline-1.2.2 ......................................................... 239
6.54. Пакет Make-3.82 ................................................................. 240
6.55. Пакет Man-DB-2.6.3 ............................................................ 241
6.56. Пакет Patch-2.7.1 ................................................................ 244
6.57. Пакет Sysklogd-1.5 .............................................................. 244
6.58. Пакет Sysvinit-2.88dsf .......................................................... 246
6.59. Пакет Tar-1.26 ..................................................................... 248
6.60. Пакет Texinfo-5.0 ................................................................. 249
6.61. Пакет Udev-197 (Берем из пакета systemd-197) .................. 251
6.62. Пакет Vim-7.3 ...................................................................... 253
6.63. Об отладочных символах ..................................................... 257
6.64. Снова стираем все ненужное .............................................. 257
6.65. Окончательное приведение системы в порядок .................. 258

Глава 7. Настройка скриптов загрузки системы ...........260
7.1. Введение .............................................................................. 260
7.2. Общие вопросы конфигурирования сети .............................. 261
7.3. Настройка файла /etc/hosts .................................................. 266
7.4. Управление устройствами и модулями в системе LFS ........... 267
7.5. Создание пользовательских символических ссылок 
        на устройства ........................................................................ 274
7.6. Пакет LFS-Bootscripts-20130123 ........................................... 277
7.7. Как работают скрипты загрузки системы .............................. 279
7.8. Конфигурирование имени хоста системы ............................. 283
7.9. Конфигурирование скрипта setclock ..................................... 283
7.10. Конфигурирование консоли Linux ....................................... 284
7.11. Конфигурирование скрипта sysklogd .................................. 288
7.12. Файл rc.site ......................................................................... 289
7.13. Файлы запуска командной оболочки Bash ........................... 292
7.14. Создание файла /etc/inputrc ............................................... 296

Глава 8. Делаем систему LFS загружаемой .................298
8.1. Введение .............................................................................. 298
8.2. Создание файла /etc/fstab .................................................... 298
8.3. Пакет Linux-3.8.1 ................................................................... 300
8.4. Использование загрузчика GRUB для настройки 
         процесса загрузки ................................................................ 305
Оглавление

Глава 9. Завершение ...............................................308
9.1. Результат .............................................................................. 308
9.2. Зарегистрируем систему ...................................................... 308
9.3. Перезагрузка системы .......................................................... 309
9.4. А что дальше? ....................................................................... 311

ЧАСТЬ IV.
Приложения ..........................................................313

Приложение А. Сокращения и терминология ...............314

Приложение В. Благодарности .................................319

Приложение C. Зависимости ....................................323

Приложение D. Загрузочные и конфигурационные 
скрипты версии 20130123........................................335

D.1. Скрипт /etc/rc.d/init.d/rc ....................................................... 335
D.2. Скрипт /lib/lsb/init-functions .................................................. 340
D.3. Скрипт /etc/rc.d/init.d/functions ............................................ 357
D.4. Скрипт/etc/rc.d/init.d/mountvirtfs .......................................... 374
D.5. Скрипт /etc/rc.d/init.d/modules ............................................. 375
D.6. Скрипт /etc/rc.d/init.d/udev ................................................... 377
D.7. Скрипт /etc/rc.d/init.d/swap .................................................. 379
D.8. Скрипт /etc/rc.d/init.d/setclock ............................................. 380
D.9. Скрипт /etc/rc.d/init.d/checkfs .............................................. 382
D.10. Скрипт /etc/rc.d/init.d/mountfs ............................................ 385
D.11. Скрипт /etc/rc.d/init.d/udev_retry ........................................ 387
D.12. Скрипт /etc/rc.d/init.d/cleanfs ............................................. 388
D.13. Скрипт /etc/rc.d/init.d/console ............................................ 391
D.14. Скрипт /etc/rc.d/init.d/localnet ............................................ 394
D.15. Скрипт /etc/rc.d/init.d/sysctl ............................................... 395
D.16. Скрипт /etc/rc.d/init.d/sysklogd ........................................... 396
D.17. Скрипт /etc/rc.d/init.d/network ............................................ 398
D.18. Скрипт /etc/rc.d/init.d/sendsignals ...................................... 400
D.19. Скрипт /etc/rc.d/init.d/reboot .............................................. 401
D.20. Скрипт /etc/rc.d/init.d/halt .................................................. 402
D.21. Скрипт /etc/rc.d/init.d/template ........................................... 403
D.22. Скрипт /etc/sysconfig/modules............................................ 405
D.23. Скрипт /etc/sysconfig/createfiles ......................................... 405
D.24. Скрипт /etc/sysconfig/udev-retry ......................................... 406
D.25. Скрипт /sbin/ifup................................................................. 406
D.26. Скрипт /sbin/ifdown ............................................................ 409
D.27. Скрипт /lib/services/ipv4-static ............................................ 412
D.28. Скрипт /lib/services/ipv4-static-route ................................... 413
Оглавление

Приложение E. Конфигурационные правила udev .........416
E.1. Правила 55-lfs.rules .............................................................. 416

Приложение F. Лицензии LFS ....................................417
F.1. Лицензия Creative Commons .................................................. 417
F.2. Лицензия MIT ........................................................................ 426
ПРЕДИСЛОВИЕ

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

После того, как удалось справиться с такими вещами, как циклические 
зависимости или ошибки времени компиляции, я, наконец, 
собрал свою собственную версию системы Linux. Это была полностью 
функциональная система, и ей свободно можно было пользоваться, 
как и любой другой системой Linux, имеющейся на тот момент. Но 
это было мое собственное творение. Было очень приятно собрать такую 
систему самостоятельно. Единственное, что могло быть лучшим, 
это создать каждую часть программного обеспечения самостоятельно. 
Это было бы еще лучшим.
Когда я рассказал о своих целях и поделился опытом с другими членами 
сообщества Linux, стало очевидно, что к этим идеям есть устойчивый 
интерес. Очень быстро стало ясно, что такие специально собранные 
системы Linux не только годятся для удовлетворения конкретных 
требований пользователей, но также служат идеальным средством обучения, 
позволяющим программистам и системным администраторам 
повысить свои (уже существующие) навыки работы с Linux. Благодаря 
тому, что интерес к системе оказался более широким, появился проект 
«Linux From Scratch» («Linux с нуля»).
Данная книга «Linux с нуля» является центральным ядром, вокруг 
которого строится этот проект. В ней предлагаются объяснения 
и инструкции, необходимые для того, чтобы вы сконструировали и 
собрали свою собственную систему. Хотя в этой книге предлагается  
шаблон, который в результате выльется в корректно работающую 
систему, вы вправе изменить инструкции по своему усмотрению, что, 
в частности, является важной частью данного проекта. Управление 
остается за вами; мы просто протягиваем вам руку помощи с тем, чтобы 
вы начали на свое собственное турне.
Я искренне надеюсь, что вы с удовольствием проведете время за 
работой над вашей собственной системой Linux From Scratch и насладитесь 
многочисленными преимуществами обладания системой, 
которая по-настоящему является вашей собственной.  

Жерар Бикманс
gerard@linuxfromscratch.org 

Аудитория

Есть много причин, по которым вам бы хотелось прочитать эту книгу. 
Один из вопросов, который ставят перед собой многие — зачем  
проходить через все трудности ручной сборки системы Linux с нуля, 
Предисловие

когда вы можете просто скачать и установить одну из существующих 
систем?
Одним из важных доводов в пользу существования этого проекта 
является то, что он поможет вам изнутри узнать, как работает система 
Linux. Процесс сборки системы LFS поможет продемонстрировать, 
что происходит в каждом такте работы Linux, как все это работает 
вместе и как отдельные части зависят друг от друга. И самое лучшее, 
что этот опыт изучения предоставит возможность настроить систему 
Linux в соответствии с вашими собственными индивидуальными 
потребностями.
Другое ключевое преимущество проекта LFS в том, что можно получить 
большую степень контроля над системой и не полагаться на 
чужую реализацию Linux. В системе LFS вы будете сидеть на месте 
водителя, и определять все аспекты работы системы. 
Проект LFS позволит вам создавать очень компактные системы 
Linux. Когда вы устанавливаете обычные дистрибутивы, вы часто 
вынуждены устанавливать множество программ, которыми вы, вероятно, 
никогда не будете пользоваться и с которыми вы не будете 
разбираться. На эти программы бесполезно тратятся ресурсы. Вы можете 
утверждать, что с жесткими дисками и процессорами, которые 
есть в настоящее время, этими затратами можно пренебречь. Но даже 
если не найдется ничего другого, у вас иногда все еще могут возникать 
ограничения, связанные с размерами. Вспомните о загрузочных 
компакт дисках, флешках USB и встроенных системах. Это как раз те 
области, в которых LFS может оказаться полезным.
Еще одним преимуществом собственной сборки системы Linux 
является ее безопасность. Благодаря компиляции всей системы из 
исходного кода, у вас будет возможность все проверить и применить 
все нужные патчи безопасности. Больше не нужно ждать, чтобы кто-
нибудь скомпилировал двоичные пакеты, в которых исправлена дыра 
безопасности. Если вы сами не проверите патч и его не примените, у 
вас не будет гарантии, что новый двоичный пакет собран правильно и 
адекватно решает проблему.
Цель проекта Linux From Scratch состоит в сборке полной и полезной 
системы базового уровня. Если у вас нет желания создавать 
свою собственную систему Linux с нуля, вы не сможете получить всех 
преимуществ от сведений, изложенных в этой книге.
Имеется слишком много других веских причин сборки вашей собственной 
системы LFS и их все невозможно здесь перечислить. В конечном 
счете, самой важной причиной на сегодняшний день является 
Предисловие

образование. По мере того, как вы будете продолжать экспериментировать 
с системой LFS, вам будет открываться вся мощь, которую могут 
дать информация и знания. 

Целевая архитектура 
проекта LFS

Первичной целевой архитектурой проекта LFS являются процессоры 
x86 (32-разрядные) и x86_64 (64-разрядные) AMD/Intel. С другой 
стороны, также известно, что инструкции из этой книги можно 
применять с некоторыми изменениями к процессорам Power PC. Для 
того, чтобы собрать систему, в которой используется один из таких 
процессоров, основным необходимым условием, кроме тех, что изложены 
на нескольких следующих страницах, является наличие системы 
Linux, например, ранее установленной системы LFS, Ubuntu, Red 
Hat/Fedora, SuSE, или другого дистрибутива, предназначенного для 
имеющейся у вас архитектуры. Также отметим, что на компьютерах, 
имеющих 64-разрядный процессор AMD/Intel, можно в качестве хост-
системы устанавливать и использовать 32-разрядные дистрибутивы.
Здесь нужно сообщить о некоторых других дополнительных фактах, 
относящихся к 64-разрядным системам. По сравнению с 32-разрядными 
системами, размеры исполняемых программ чуть больше, а 
скорость их выполнения лишь немного быстрее. Например, при тестовой 
сборке системы LFS-6.5 на системе с процессором Core2Duo, 
были получены следующие статистические данные: 

Архитектура        Время сборки    Размер сборки 
32-разрядная       198.5 минут     648 MB 
64-разрядная       190.6 минут     709 MB

Видно, что 64-разрядная сборка только на 4% быстрее и на 9% больше 
по размеру, чем 32-разрядная сборка. Преимущество от перехода 
на 64-разрядную систему сравнительно небольшая. Конечно, если у 
вас более 4 Гб оперативной памяти или вы хотите манипулировать 
данными, размер которых превышает 4 Гб, то преимущества 64-разрядной 
системы весьма существенны. 
По умолчанию 64-разрядная сборка, которая получается в результате 
создания системы LFS, считается «чистой» 64-разрядной 
системой. То есть, она поддерживает работу только 64-разрядных исполняемых 
файлов. Для сборки «мультибиблиотечной» системы потребуется 
двухразовая компиляции многих приложений, один раз – 
Предисловие

для 32-разрядной системы и еще раз – для 64-разрядной системы. 
В проекте LFS это явно не поддерживается, поскольку противоречит 
образовательным целям приводимых инструкций, необходимых для 
достаточно простой базисной системы Linux. С этой более сложной 
темой вы можете ознакомиться в проекте Cross Linux From Scratch.
Есть еще одно последнее замечание, касающееся 64-разрядных 
систем. Есть некоторые старые пакеты, которые  в настоящее время 
нельзя собрать в «чистой» 64-разрядной системе, либо для их сборки 
нужны специальные инструкции. Как правило, в этих пакетах 
используются специальные 32-разрядные инструкции языка ассемблера, 
которые не будут работать в 64-разрядной системе. К таким пакетам 
относятся некоторые драйвера Xorg для некоторых устаревших 
видеокарт, смотрите http://xorg.freedesktop.org/releases/individual/
driver/. Большинство из этих проблем можно обойти, но могут потребоваться 
некоторые специальные процедуры или патчи.

Проект LFS и стандарты
Структура LFS соответствует стандартам Linux настолько строго, насколько 
это возможно. Первичными стандартами являются следующие:
• 
POSIX.1-2008.
• Стандарт иерархической файловой системы – Filesystem 
Hierarchy Standard (FHS). 
• Спецификации стандартной базовой системы Linux – Linux 
Standard Base (LSB) Specifications. 
Спецификации LSB состоят из пяти отдельных стандартов: Core 
(Ядро), C++, Desktop (Рабочий стол), Runtime Languages (Языки 
времени выполнения) и Printing (Печать). В дополнение к общим 
требованиям есть также конкретные требования к архитектуре. В LFS 
сделана попытка обеспечить соответствие требованиям архитектуры, 
которые обсуждались в предыдущем разделе. 

Замечание

Многие не согласны с требованиями спецификаций LSB. Основное назначение 
этих требований – обеспечить, чтобы на совместимой системе 
можно было устанавливать и должным образом запускать пропри-
етарное программное обеспечение. Поскольку система LFS создается 
из исходных кодов, пользователь осуществляет полный контроль над 
тем, какие нужны пакеты, и может не устанавливать некоторые пакеты, 
которые необходимы согласно спецификациям LSB.

Предисловие

Можно создать завершенную систему LFS, которая способна пройти 
сертификационные тесты LSB, но только не без дополнительных 
пакетов, которые выходят за рамки LFS. Инструкции по установке 
этих дополнительных пакетов имеются в проекте BLFS.

Пакеты, имеющиеся в системе LFS, которые 
необходимы для соответствия требованиям 
спецификации LSB

Стандарт LSB Core (Ядро):
Bash, Binutils, Coreutils, Diffutils, 
File, Findutils, Gawk, Grep, Gzip, M4, 
Man-DB, Ncurses, Procps, Psmisc, 
Sed, Shadow, Tar, Util-linux, Zlib

Стандарт LSB C++:
Gcc

Стандарт LSB Desktop 
(Рабочий стол):
Нет

Стандарт LSB Runtime Languages 
(Языки времени выполнения):
Perl

Стандарт LSB Printing (Печать):
Нет

Стандарт LSB Multimeda 
(Мультимедиа):
Нет

Пакеты, имеющиеся в системе BLFS, которые 
необходимы для соответствия требованиям 
спецификации LSB

Стандарт LSB Core (Ядро):
At, Batch (a part of At), Bc, Cpio, Ed, 
Fcrontab, Initd-tools, Lsb_release, 
PAM, Sendmail (либо Postfix, либо 
Exim)

Стандарт LSB C++:
Нет

Стандарт LSB Desktop 
(Рабочий стол):
ATK, Cairo, Desktop-file-utils, 
Freetype, Fontconfig, Glib2, GTK+2, 
Icon-naming-utils, Libjpeg, Libpng, 
Libxml2, MesaLib, Pango, Qt3, Qt4, 
Xorg

Стандарт LSB Runtime Languages 
(Языки времени выполнения):
Python

Стандарт LSB Printing (Печать):
CUPS

Стандарт LSB Multimeda 
(Мультимедиа):
Библиотеки alsa, NSPR, NSS, 
OpenSSL, Java, Xdg-utils
Доступ онлайн
359 ₽
В корзину