Linux From Scratch
Добавить в закладки К обложке
- Пролог - Страница 1
- Кому эта книга будет интересна - Страница 2
- Кому будет неинтересно читать эту книгу - Страница 3
- Организация - Страница 4
- Часть 1 – Вступление - Страница 5
- Часть 2 – Установка базовой системы LFS - Страница 6
- Часть 3 – Приложения - Страница 7
- Часть I – Вступление - Страница 8
- Как мы будем работать - Страница 9
- Условные обозначения, используемые в книге - Страница 10
- Версия книги - Страница 11
- Зеркала - Страница 12
- Changelog - Страница 13
- Списки рассылки и архивы - Страница 18
- Сервер новостей - Страница 20
- FAQ - Страница 21
- Как с нами связаться - Страница 22
- Глава 2. Важная информация - Страница 23
- Про SBU - Страница 24
- Где хранить загруженные программы - Страница 25
- Как инсталлировать программы - Страница 26
- Поддерживаемые платформы - Страница 27
- Как попросить о помощи - Страница 28
- II. Часть II – Установка системы LFS - Страница 29
- Необходимые пакеты - Страница 30
- Глава 4. Готовим новый раздел - Страница 31
- Создаем новый раздел - Страница 32
- Создаем файловую систему на новом разделе - Страница 33
- Монтируем раздел - Страница 34
- Глава 5. Подготовка системы LFS - Страница 35
- Почему мы используем статические ссылки? - Страница 36
- Создаем директорию $LFS/static - Страница 37
- Установка всех компонентов в режиме непривилегированного пользователя - Страница 38
- Установка Bash-2.05a - Страница 39
- Установка Binutils-2.13 - Страница 40
- Установка Bzip2-1.0.2 - Страница 42
- Установка Diffutils-2.8.1 - Страница 43
- Установка Fileutils-4.1 - Страница 44
- Установка Findutils-4.1 - Страница 46
- Установка Gawk-3.1.1 - Страница 47
- Установка GCC-3.2 - Страница 48
- Установка Grep-2.5 - Страница 50
- Установка Gzip-1.2.4a - Страница 51
- Установка Make-3.79.1 - Страница 52
- Установка Patch-2.5.4 - Страница 53
- Установка Sed-3.02 - Страница 54
- Установка Sh-utils-2.0 - Страница 55
- Установка Tar-1.13 - Страница 56
- Установка Texinfo-4.2 - Страница 57
- Установка Textutils-2.1 - Страница 58
- Установка Util-linux-2.11u - Страница 59
- Глава 6. Установка основных компонентов системы - Страница 60
- Отладочные символы - Страница 61
- Вход в среду chroot - Страница 62
- Изменение прав - Страница 63
- Создание директорий - Страница 64
- Монтирование файловой системы proc - Страница 65
- Создание символической ссылки mtab - Страница 66
- Создание символических ссылок bash и sh - Страница 67
- Создание файлов passwd и group - Страница 68
- Создание устройств (Makedev-1.7) - Страница 69
- Установка Linux-2.4.19 - Страница 70
- Установка Man-pages-1.52 - Страница 72
- Установка Glibc-2.2.5 - Страница 73
- Установка Zlib-1.1.4 - Страница 77
- Установка Findutils-4.1 - Страница 78
- Установка Gawk-3.1.1 - Страница 79
- Установка Ncurses-5.2 - Страница 80
- Установка Vim-6.1 - Страница 81
- Установка Bison-1.35 - Страница 82
- Установка Less-374 - Страница 83
- Установка Groff-1.18 - Страница 84
- Установка Textutils-2.1 - Страница 86
- Установка Sed-3.02 - Страница 87
- Установка Flex-2.5.4a - Страница 88
- Установка Binutils-2.13 - Страница 89
- Установка Fileutils-4.1 - Страница 91
- Установка Sh-utils-2.0 - Страница 92
- Установка Gettext-0.11.5 - Страница 93
- Установка Net-tools-1.60 - Страница 94
- Установка Perl-5.8.0 - Страница 95
- Установка руководства по потокам Linux, вер. 2.2.5 - Страница 96
- Установка M4-1.4 - Страница 97
- Установка Texinfo-4.2 - Страница 98
- Установка Autoconf-2.53 - Страница 99
- Установка Automake-1.6.3 - Страница 100
- Установка Bash-2.05a - Страница 101
- Установка File-3.39 - Страница 102
- Установка Libtool-1.4.2 - Страница 103
- Установка Bin86-0.16.3 - Страница 104
- Установка Bzip2-1.0.2 - Страница 105
- Установка Ed-0.2 - Страница 106
- Установка Kbd-1.06 - Страница 107
- Установка Diffutils-2.8.1 - Страница 108
- Установка E2fsprogs-1.27 - Страница 109
- Установка Grep-2.5 - Страница 110
- Установка Gzip-1.2.4a - Страница 111
- Установка Man-1.5k - Страница 112
- Установка Lilo-22.2 - Страница 113
- Установка Make-3.79.1 - Страница 114
- Установка Modutils-2.4.19 - Страница 115
- Установка Netkit-base-0.17 - Страница 116
- Установка Patch-2.5.4 - Страница 117
- Установка Procinfo-18 - Страница 118
- Установка Procps-2.0.7 - Страница 119
- Установка Psmisc-21 - Страница 120
- Установка Shadow-4.0.3 - Страница 121
- Установка Sysklogd-1.4.1 - Страница 123
- Установка Sysvinit-2.84 - Страница 124
- Установка Tar-1.13 - Страница 125
- Установка Util-linux-2.11u - Страница 126
- Установка LFS-Bootscripts-1.10 - Страница 128
- Конфигурация основных программ - Страница 129
- Глава 7. Конфигурация загрузочных скриптов - Страница 131
- Как взаимодействует процесс загрузки со скриптами? - Страница 132
- Настройка скрипта setclock - Страница 133
- Что надо для загрузки loadkeys скриптов? - Страница 134
- Настройка скрипта sysklogd - Страница 135
- Конфигурация скриптов localnet. - Страница 136
- Cоздание файла /etc/hosts - Страница 137
- Настройка сетевых скриптов - Страница 138
- Глава 8. Делаем систему LFS загрузочной. - Страница 139
- Создание файла /etc/fstab - Страница 140
- Установка ядра Linux-2.4.19 - Страница 141
- Делаем систему LFS загрузочной. - Страница 142
- Глава 9. Заключение. - Страница 143
- Вписываем себя в пользователи LFS - Страница 144
- Перезагрузка системы - Страница 145
- III. Часть III – Приложения - Страница 146
- Autoconf - Страница 147
- Automake - Страница 148
- Bash - Страница 149
- Bin86 - Страница 150
- Binutils - Страница 151
- Bison - Страница 152
- Bzip2 - Страница 153
- Diffutils - Страница 154
- E2fsprogs - Страница 155
- Ed - Страница 156
- File - Страница 157
- Fileutils - Страница 158
- Findutils - Страница 159
- Flex - Страница 160
- Gawk - Страница 161
- GCC - Страница 162
- Gettext - Страница 163
- Glibc - Страница 164
- Grep - Страница 166
- Groff - Страница 167
- Gzip - Страница 168
- Kbd - Страница 169
- Less - Страница 170
- LFS-Bootscripts - Страница 171
- Libtool - Страница 172
- Lilo - Страница 173
- Linux (ядро) - Страница 174
- M4 - Страница 175
- Make - Страница 176
- MAKEDEV - Страница 177
- Man - Страница 178
- Man-pages - Страница 179
- Modutils - Страница 180
- Ncurses - Страница 181
- Netkit-base - Страница 182
- Net-tools - Страница 183
- Patch - Страница 184
- Perl - Страница 185
- Procinfo - Страница 186
- Procps - Страница 187
- Psmisc - Страница 188
- Sed - Страница 189
- Shadow - Страница 190
- Sh-utils - Страница 191
- Sysklogd - Страница 192
- Sysvinit - Страница 193
- Tar - Страница 194
- Texinfo - Страница 195
- Textutils - Страница 196
- Util-linux - Страница 197
- Vim - Страница 199
- Zlib - Страница 200
- Приложение B. Ресурсы - Страница 201
- Книги - Страница 202
- HOWTO и руководства - Страница 203
- Прочее - Страница 204
Установка Linux-2.4.19
Приблизительное время компиляции: 0.02 Необходимое место на диске: 142 MB
Установка заголовочных файлов ядра
На данном этапе мы не будем компилировать ядро – мы сделаем это после установки всех пакетов. Однако, в связи с тем, что некоторые пакеты требуют заголовочных файлов ядра, мы распакуем ядро, настроим его и скопируем заголовки туда, где их будут искать пакеты при компиляции.
Скопируем заголовки ядра, выполнив следующие команды:
ln -s /static/bin/pwd /bin/pwd && make mrproper && make include/linux/version.h && make symlinks && mkdir /usr/include/asm && cp include/asm/* /usr/include/asm && cp -R include/asm-generic /usr/include && cp -R include/linux /usr/include && touch /usr/include/linux/autoconf.h && rm /bin/pwd
Пояснения команд
ln -s /static/bin/pwd /bin/pwd: В исходных кодах ядра путь к программе pwd прописан как /bin/pwd, поэтому создадим временную символическую ссылку, а в конце удалим ее.
make mrproper: Выполнение данной команды обеспечивает чистое дерево исходников ядра. Команда разработчиков ядра рекомендует выполнять эту команду перед каждой компиляцией ядра, даже если вы только что распаковали исходные коды из tar-архива.
make include/linux/version.h и make symlinks: Создадим файл include/linux/version.h file и символическую ссылку include/asm для конкретной платформы.
mkdir /usr/include/asm , cp include/asm/* /usr/include/asm и cp -R include/asm-generic /usr/include: Эти команды копируют заголовочные файлы ядра ассемблера для конкретной платформы в /usr/include/asm и /usr/include/asm-generic.
cp -R include/linux /usr/include: Эта команда копирует кросс-платформенные файлы заголовков в /usr/include.
touch /usr/include/linux/autoconf.h: Создаем пустой файл autoconf.h. Так как на данном этапе мы не конфигурируем ядро, необходимо вручную создать этот файл для некоторых заголовочных файлов ядра, использующих его, чтобы избежать ошибок при компиляции.
Почему мы копируем заголовки ядра, а не создаем для них символические ссылки?
Раньше было принято создавать символические ссылки директорий /usr/include/{linux,asm} на /usr/src/linux/include/{linux,asm}. Однако, это была плохая идея, как объясняет Линус Торвальдс в списке рассылки ядра Linux (Linux Kernel Mailing List, отрывок):
Тем, кто компилирует новые ядра, настоятельно рекомендую: – не создавать символических ссылок (кроме той, которую создает само ядро, «linux/include/asm», символическая ссылка, которая используется при внутренней компиляции ядра.) Да, именно так делаю я. В моем каталоге /usr/src/linux есть заголовки старого ядра 2.2.13, несмотря на то, что я не использовал ядро 2.2.13 уже очень давно. Однако именно с этими заголовками компилировался пакет glibc, соответственно именно эти заголовки соответствуют файлам объектов библиотеки. Также именно такое положение вещей являлось рекомендуемым на протяжении последних пяти лет. Я не могу понять, почему вся эта заморочка с символическими ссылками все еще существует, как зомби. Практически во всех дистрибутивах есть эта неработающая символическая ссылка, и люди до сих пор помнят, что исходники ядра Linux должны находится в «/usr/src/linux», несмотря на то, что это уже давно не так.
Наиболее важная часть сообщения Линуса заключается в том, что файлы заголовков должны быть именно теми, с которыми компилировался пакет glibc. Это те заголовки, которые следует использовать в будущем при компиляции других пакетов, т.к. именно они соответствуют файлам библиотек объектного кода. Копируя заголовки, мы удостоверяемся, что они останутся доступными, если позже мы решим обновить ядро.
Заметьте, что нет ничего страшного в том, что исходные коды ядра находятся в директории /usr/src/linux. Главное, чтобы у вас не было символических ссылок /usr/include/{linux,asm}.
Содержимое Linux
Последняя проверка: версия 2.4.18.
Файлы поддержки
Ядро Linux и его заголовочные файлы
Описания
Ядро Linux
Ядро – основа любой системы Linux. Когда компьютер включается и загружает Linux, первое, что загружается – ядро. Ядро инициализирует аппаратные компоненты системы: последовательные и параллельные порты, звуковые и сетевые карты, контроллеры IDE и SCSI и многое другое. In a nutshell the kernel makes the hardware available so that the software can run.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204