Начну со следующей статьи в качестве анонса:
Linux From Scratch, не вдаваясь в детали
LFS — это книга о том, как собрать работающую операционную систему GNU/Linux из исходных кодов. Конечно, лучше самому собрать систему по этой книжке. Но если тратить несколько дней своего времени жалко, а познакомиться все же охота — попробую рассказать.
На основе Linux From Scratch, Version 7.3, на английском языке.
Мне захотелось собрать LFS чтобы лучше понять устройство линукс, надеюсь вам тоже это интересно. Признаюсь, было еще одно желание — собрать эталонный, «ванильный» линукс. Увы, эталонный линукс существует только в воображении наивных айтишников.
Тем не менее по книжке LFS можно собрать замечательную действующую систему, а по BLFS (это следующая книжка), допилить её до полного соответствия Linux Standard Base. Это, кстати, сообщается в одной из первых глав.
Главы в основном короткие и лаконичные. Язык, простой и ясный. Читать такую книжку одно удовольствие.
Система собирается путем компиляции из исходных кодов всех необходимых программ — ядра, основной библиотеки C, компилятора, оболочки командной строки, и др. Все пакеты с исходными кодами приводятся в файле wget-list. Так что скачать их все очень просто. Также приводится файл md5sum — для проверки целостности файлов после скачивания.
Cначала нужно использовать какой-нибудь другой linux (можно live-cd). Используя его компилятор и другие инструменты, в нём производится сборка окружения необходимого для сборки (компилятор, линковщик). Результаты помещаются в
/mnt/lfs/tools
.Потом, монтируются служебные файловые системы (
/mnt/lfs/proc -> /proc
, /mnt/lfs/dev -> /dev
, и др.) и с помощью chroot
сеанс пользователя переключается на использование /mnt/lfs
как корневой файловой системы вашего нового линукса. А папка /tools
дописывается в переменную окружения $PATH
. Таким образом по мере сборки инструментов они будут подменять свои временные аналоги из /tools
.С помощью временной системы заново собираются все инструменты, но на этот раз они размещаются в
/bin
, /sbin
, /lib
. После чего устанавливаются скрипты загрузки из одного из скачанных пакетов.Далее производится минимальная настройка системы (сеть, консоль, устройства). Создается файл
/etc/fstab
(настройка дисков), компилируется и устанавливается ядро (НАКОНЕЦ-ТО!), настраивается GRUB, и выполняется перезагрузка. Всё.Стоит упомянуть, что в книжке довольно неплохо объясняются некоторые моменты. Например: что за файлы /etc/profile, ~/.bash_profile, ~/.bashrc и как они взаимодействуют. Или разъясняется как с помощью udev настроить чтобы двум сетевым картам всегда выдавались одни и те же имена eth0, eth1. Для каждого пакета приводится список всех входящих в него программ с кратким описанием каждой.
источник
И сама книга:
Linux From Scratch
Скачать и открыть в браузере по ссылке:Русский перевод версии svn-20110417
Читать здесь:
Linux From Scratch (version 6.8)
Created by Gerard Beekmans
Edited by Matthew Burgess and Bruce Dubbs
Оригинал: "Linux From Scratch (version 6.8)"
Перевод на русский Николая Ромоданова
Оглавление
Пролог
Часть 1. Введение
Глава 1. Введение
Часть 2. Подготовка
Глава 2. Подготовка нового раздела
Глава 3. Пакеты и патчи
Глава 4. Завершение подготовки
Глава 5. Создание временной версии системы
- 5.1. Введение
- 5.2. Технические замечания об инструментальном наборе
- 5.3. Общие инструкции по компиляции
- 5.4. Пакет Binutils-2.21 - Первый проход
- 5.5. Пакет GCC-4.5.2 - Первый проход
- 5.6. Заголовки Linux-2.6.37 API
- 5.7. Пакет Glibc-2.13
- 5.8. Настройка набора инструментальных средств
- 5.9. Пакет Binutils-2.21 - Второй проход
- 5.10. Пакет GCC-4.5.2 - Второй проход
- 5.11. Пакет Tcl-8.5.9
- 5.12. Пакет Expect-5.45
- 5.13. Пакет DejaGNU-1.4.4
- 5.14. Пакет Ncurses-5.7
- 5.15. Пакет Bash-4.2
- 5.16. Пакет Bzip2-1.0.6
- 5.17. Пакет Coreutils-8.10
- 5.18. Пакет Diffutils-3.0
- 5.19. Пакет File-5.05
- 5.20. Пакет Findutils-4.4.2
- 5.21. Пакет Gawk-3.1.8
- 5.22. Пакет Gettext-0.18.1.1
- 5.23. Пакет Grep-2.7
- 5.24. Пакет Gzip-1.4
- 5.25. Пакет M4-1.4.15
- 5.26. Пакет Make-3.82
- 5.27. Пакет Patch-2.6.1
- 5.28. Пакет Perl-5.12.3
- 5.29. Пакет Sed-4.2.1
- 5.30. Пакет Tar-1.25
- 5.31. Пакет Texinfo-4.13a
- 5.32. Пакет Xz-5.0.1
- 5.33. Удаление ненужных файлов
- 5.34. Смена владельца
- 5.1. Введение
- 5.2. Технические замечания об инструментальном наборе
- 5.3. Общие инструкции по компиляции
- 5.4. Пакет Binutils-2.21 - Первый проход
- 5.5. Пакет GCC-4.5.2 - Первый проход
- 5.6. Заголовки Linux-2.6.37 API
- 5.7. Пакет Glibc-2.13
- 5.8. Настройка набора инструментальных средств
- 5.9. Пакет Binutils-2.21 - Второй проход
- 5.10. Пакет GCC-4.5.2 - Второй проход
- 5.11. Пакет Tcl-8.5.9
- 5.12. Пакет Expect-5.45
- 5.13. Пакет DejaGNU-1.4.4
- 5.14. Пакет Ncurses-5.7
- 5.15. Пакет Bash-4.2
- 5.16. Пакет Bzip2-1.0.6
- 5.17. Пакет Coreutils-8.10
- 5.18. Пакет Diffutils-3.0
- 5.19. Пакет File-5.05
- 5.20. Пакет Findutils-4.4.2
- 5.21. Пакет Gawk-3.1.8
- 5.22. Пакет Gettext-0.18.1.1
- 5.23. Пакет Grep-2.7
- 5.24. Пакет Gzip-1.4
- 5.25. Пакет M4-1.4.15
- 5.26. Пакет Make-3.82
- 5.27. Пакет Patch-2.6.1
- 5.28. Пакет Perl-5.12.3
- 5.29. Пакет Sed-4.2.1
- 5.30. Пакет Tar-1.25
- 5.31. Пакет Texinfo-4.13a
- 5.32. Пакет Xz-5.0.1
- 5.33. Удаление ненужных файлов
- 5.34. Смена владельца
Часть 3. Создание LFS-систимы
Глава 6. Установка программ базовой системы
- 6.1. Введение
- 6.2. Подготовка виртуальных файловых систем ядра
- 6.3. Управление пакетами
- 6.4. Переход в среду chroot
- 6.5. Создание директориев
- 6.6. Создание важных файлов и символических ссылок
- 6.7. Заголовки Linux-2.6.37 API
- 6.8. Пакет Man-pages-3.32
- 6.9. Пакет Glibc-2.13
- 6.10. Перенастройка инструментального набора
- 6.11. Пакет Zlib-1.2.5
- 6.12. Пакет Binutils-2.21
- 6.13. Пакет GMP-5.0.1
- 6.14. Пакет MPFR-3.0.0
- 6.15. Пакет MPC-0.8.2
- 6.16. Пакет GCC-4.5.2
- 6.17. Пакет Sed-4.2.1
- 6.18. Пакет Pkg-config-0.25
- 6.19. Пакет Ncurses-5.7
- 6.20. Пакет Util-linux-2.19
- 6.21. Пакет E2fsprogs-1.41.14
- 6.22. Пакет Coreutils-8.10
- 6.23. Пакет Iana-Etc-2.30
- 6.24. Пакет M4-1.4.15
- 6.25. Пакет Bison-2.4.3
- 6.26. Пакет Procps-3.2.8
- 6.27. Пакет Grep-2.7
- 6.28. Пакет Readline-6.2
- 6.29. Пакет Bash-4.2
- 6.30. Пакет Libtool-2.4
- 6.31. Пакет GDBM-1.8.3
- 6.32. Пакет Inetutils-1.8
- 6.33. Пакет Perl-5.12.3
- 6.34. Пакет Autoconf-2.68
- 6.35. Пакет Automake-1.11.1
- 6.36. Пакет Bzip2-1.0.6
- 6.37. Пакет Diffutils-3.0
- 6.38. Пакет Gawk-3.1.8
- 6.39. Пакет File-5.05
- 6.40. Пакет Findutils-4.4.2
- 6.41. Пакет Flex-2.5.35
- 6.42. Пакет Gettext-0.18.1.1
- 6.43. Пакет Groff-1.21
- 6.44. Пакет GRUB-1.98
- 6.45. Пакет Gzip-1.4
- 6.46. Пакет IPRoute2-2.6.37
- 6.47. Пакет Kbd-1.15.2
- 6.48. Пакет Less-436
- 6.49. Пакет Make-3.82
- 6.50. Пакет Xz-5.0.1
- 6.51. Пакет Man-DB-2.5.9
- 6.52. Пакет Module-Init-Tools-3.12
- 6.53. Пакет Patch-2.6.1
- 6.54. Пакет Psmisc-22.13
- 6.55. Пакет Shadow-4.1.4.3
- 6.56. Пакет Sysklogd-1.5
- 6.57. Пакет Sysvinit-2.88dsf
- 6.58. Пакет Tar-1.25
- 6.59. Пакет Texinfo-4.13a
- 6.60. Пакет Udev-166
- 6.61. Пакет Vim-7.3
- 6.62. Об отладочных компонентах
- 6.63. Снова стираем ненужные файлы
- 6.64. Окончательное приведение системы в порядок
- 6.1. Введение
- 6.2. Подготовка виртуальных файловых систем ядра
- 6.3. Управление пакетами
- 6.4. Переход в среду chroot
- 6.5. Создание директориев
- 6.6. Создание важных файлов и символических ссылок
- 6.7. Заголовки Linux-2.6.37 API
- 6.8. Пакет Man-pages-3.32
- 6.9. Пакет Glibc-2.13
- 6.10. Перенастройка инструментального набора
- 6.11. Пакет Zlib-1.2.5
- 6.12. Пакет Binutils-2.21
- 6.13. Пакет GMP-5.0.1
- 6.14. Пакет MPFR-3.0.0
- 6.15. Пакет MPC-0.8.2
- 6.16. Пакет GCC-4.5.2
- 6.17. Пакет Sed-4.2.1
- 6.18. Пакет Pkg-config-0.25
- 6.19. Пакет Ncurses-5.7
- 6.20. Пакет Util-linux-2.19
- 6.21. Пакет E2fsprogs-1.41.14
- 6.22. Пакет Coreutils-8.10
- 6.23. Пакет Iana-Etc-2.30
- 6.24. Пакет M4-1.4.15
- 6.25. Пакет Bison-2.4.3
- 6.26. Пакет Procps-3.2.8
- 6.27. Пакет Grep-2.7
- 6.28. Пакет Readline-6.2
- 6.29. Пакет Bash-4.2
- 6.30. Пакет Libtool-2.4
- 6.31. Пакет GDBM-1.8.3
- 6.32. Пакет Inetutils-1.8
- 6.33. Пакет Perl-5.12.3
- 6.34. Пакет Autoconf-2.68
- 6.35. Пакет Automake-1.11.1
- 6.36. Пакет Bzip2-1.0.6
- 6.37. Пакет Diffutils-3.0
- 6.38. Пакет Gawk-3.1.8
- 6.39. Пакет File-5.05
- 6.40. Пакет Findutils-4.4.2
- 6.41. Пакет Flex-2.5.35
- 6.42. Пакет Gettext-0.18.1.1
- 6.43. Пакет Groff-1.21
- 6.44. Пакет GRUB-1.98
- 6.45. Пакет Gzip-1.4
- 6.46. Пакет IPRoute2-2.6.37
- 6.47. Пакет Kbd-1.15.2
- 6.48. Пакет Less-436
- 6.49. Пакет Make-3.82
- 6.50. Пакет Xz-5.0.1
- 6.51. Пакет Man-DB-2.5.9
- 6.52. Пакет Module-Init-Tools-3.12
- 6.53. Пакет Patch-2.6.1
- 6.54. Пакет Psmisc-22.13
- 6.55. Пакет Shadow-4.1.4.3
- 6.56. Пакет Sysklogd-1.5
- 6.57. Пакет Sysvinit-2.88dsf
- 6.58. Пакет Tar-1.25
- 6.59. Пакет Texinfo-4.13a
- 6.60. Пакет Udev-166
- 6.61. Пакет Vim-7.3
- 6.62. Об отладочных компонентах
- 6.63. Снова стираем ненужные файлы
- 6.64. Окончательное приведение системы в порядок
Глава 7. Настройка скриптов загрузки системы
- 7.1. Введение
- 7.2. Пакет LFS-Bootscripts-20100627
- 7.3. Как работают скрипты загрузки системы
- 7.4. Конфигурирование скрипта setclock
- 7.5. Конфигурирование консоли Linux
- 7.6. Конфигурирование скрипта sysklogd
- 7.7. Создание файла /etc/inputrc
- 7.8. Файлы запуска командной оболочки Bash
- 7.9. Управление устройствами и модулями в системе LFS
- 7.10. Создание пользовательских символических ссылок на устройства
- 7.11. Конфигурирование скрипта localnet
- 7.12. Настройка файла /etc/hosts
- 7.13. Конфигурирование скрипта network
- 7.1. Введение
- 7.2. Пакет LFS-Bootscripts-20100627
- 7.3. Как работают скрипты загрузки системы
- 7.4. Конфигурирование скрипта setclock
- 7.5. Конфигурирование консоли Linux
- 7.6. Конфигурирование скрипта sysklogd
- 7.7. Создание файла /etc/inputrc
- 7.8. Файлы запуска командной оболочки Bash
- 7.9. Управление устройствами и модулями в системе LFS
- 7.10. Создание пользовательских символических ссылок на устройства
- 7.11. Конфигурирование скрипта localnet
- 7.12. Настройка файла /etc/hosts
- 7.13. Конфигурирование скрипта network
Глава 8. Делаем систему LFS загружаемой
Глава 9. Завершение
Часть 4. Приложения
- A. Сокращения и терминология
- B. Благодарности
- C. Зависимости
- D. Загрузочные и конфигурационные скрипты версии 20100627
- /etc/rc.d/init.d/rc
- /etc/rc.d/init.d/functions
- /etc/rc.d/init.d/mountkernfs
- /etc/rc.d/init.d/consolelog
- /etc/rc.d/init.d/modules
- /etc/rc.d/init.d/udev
- /etc/rc.d/init.d/swap
- /etc/rc.d/init.d/setclock
- /etc/rc.d/init.d/checkfs
- /etc/rc.d/init.d/mountfs
- /etc/rc.d/init.d/udev_retry
- /etc/rc.d/init.d/cleanfs
- /etc/rc.d/init.d/console
- /etc/rc.d/init.d/localnet
- /etc/rc.d/init.d/sysctl
- /etc/rc.d/init.d/sysklogd
- /etc/rc.d/init.d/network
- /etc/rc.d/init.d/sendsignals
- /etc/rc.d/init.d/reboot
- /etc/rc.d/init.d/halt
- /etc/rc.d/init.d/template
- /etc/sysconfig/rc
- /etc/sysconfig/modules
- /etc/sysconfig/createfiles
- /etc/sysconfig/network-devices/ifup
- /etc/sysconfig/network-devices/ifdown
- /etc/sysconfig/network-devices/services/ipv4-static
- /etc/sysconfig/network-devices/services/ipv4-static-route
- E. Конфигурационные правила udev
- F. Лицензии LFS
источник
- A. Сокращения и терминология
- B. Благодарности
- C. Зависимости
- D. Загрузочные и конфигурационные скрипты версии 20100627
- /etc/rc.d/init.d/rc
- /etc/rc.d/init.d/functions
- /etc/rc.d/init.d/mountkernfs
- /etc/rc.d/init.d/consolelog
- /etc/rc.d/init.d/modules
- /etc/rc.d/init.d/udev
- /etc/rc.d/init.d/swap
- /etc/rc.d/init.d/setclock
- /etc/rc.d/init.d/checkfs
- /etc/rc.d/init.d/mountfs
- /etc/rc.d/init.d/udev_retry
- /etc/rc.d/init.d/cleanfs
- /etc/rc.d/init.d/console
- /etc/rc.d/init.d/localnet
- /etc/rc.d/init.d/sysctl
- /etc/rc.d/init.d/sysklogd
- /etc/rc.d/init.d/network
- /etc/rc.d/init.d/sendsignals
- /etc/rc.d/init.d/reboot
- /etc/rc.d/init.d/halt
- /etc/rc.d/init.d/template
- /etc/sysconfig/rc
- /etc/sysconfig/modules
- /etc/sysconfig/createfiles
- /etc/sysconfig/network-devices/ifup
- /etc/sysconfig/network-devices/ifdown
- /etc/sysconfig/network-devices/services/ipv4-static
- /etc/sysconfig/network-devices/services/ipv4-static-route
- E. Конфигурационные правила udev
- F. Лицензии LFS
Комментариев нет:
Отправить комментарий