Ядро Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
wiki:ядро [2011/06/20 13:41]
создано
wiki:ядро [2017/05/26 15:29] (текущий)
[Сборка]
Строка 1: Строка 1:
 ====== Ядро ====== ====== Ядро ======
  
-Ядро (kernel) ​— то, вокруг чего строится всё остальное. Именно оно и называется Linux. Сейчас словом Linux в быту называется операционная система, построенная на этом ядре, хотя по-хорошему она называется GNU/Linux (ядро Linux и ПО от ОС GNU, многие десятилетия находящейся в разработке).+**Ядро** (англ. //kernel//-- то, вокруг чего строится всё остальное. Именно оно и называется Linux. Сейчас словом Linux в быту называют построенную на нём ​операционную систему, хотя по-хорошему она называется GNU/Linux (ядро Linux и ПО от проекта ​GNU, многие десятилетия находящейся в разработке).
  
-====== Ссылки ​======+В Ubuntu исппользуется ядро с большим количеством [[патч|патчей]],​ часть из которых добавляет нестабильные и экспериментальные возможности((FIXME ссылку бы)).
  
-  ​* [[модули ядра]] +Каждый релиз Ubuntu имеет собственную версию ядра. LTS-релизы начиная с 10.04 получили возможность обновить ядро до версий,​ входящих в состав более новых релизов. 
-  * [[https://help.ubuntu.com/​community/Kernel/Compile|Kernel/Compile]] — компиляем ядро, если уж совсем нет другого выхода+ 
 +^Версия Ubuntu^Версия ядра^ 
 +|  4.10  |  2.6.9  | 
 +|  5.04  |  2.6.11 ​ | 
 +|  5.10  |  2.6.13 ​ | 
 +|  6.06 LTS  |  2.6.15 ​ | 
 +|  6.10  |  2.6.18 ​ | 
 +|  7.04  |  2.6.19 ​ | 
 +|  7.10  |  2.6.20 ​ | 
 +|  8.04 LTS  |  2.6.24 ​ | 
 +|  8.10  |  2.6.27 ​ | 
 +|  9.04  |  2.6.28 ​ | 
 +|  9.10  |  2.6.31 ​ | 
 +|  10.04 LTS  |  2.6.32 ​ | 
 +|  10.10  |  2.6.35 ​ | 
 +|  11.04  |  2.6.38 ​ | 
 +|  11.10  |  3.0.4  | 
 +|  12.04 LTS  |  3.2  | 
 +|  12.10  |  3.5  | 
 +|  13.04  |  3.8  | 
 +|  13.10  |  3.11  | 
 +|  14.04 LTS  |  3.13  | 
 +|  14.10  |  3.16  | 
 +|  15.04  |  3.19  | 
 +===== Форки ===== 
 +  ​* [[http://​pf.natalenko.name/​|pf-kernel]] -- форк ядра, развиваемый одним из участников русскоязычного сообщества. Цель сего проекта — собрать максимально оптимизированное по скорости и возможностям ​ядро под себя, заодно предоставив другим возможность пользоваться этими наработками. 
 +  * [[http://​zen-kernel.org/​|Zen Kernel]] -- форк, в рамках которого развивается ядро пригодное для ежедневного использования. Не расчитано на серверные системы. 
 + 
 +===== Установка ===== 
 +Ядро является одним из жизненно важных компонентов каждого дистрибутива Linux. В Ubuntu ядро содержится в пакетах ''​linux-image-версия_ядра-тип_ядра''​. Для простоты обновления так же имеется пакет ''​linux-image-тип_ядра'',​ в зависимостях которого указана последняя версия ядра имеющеяся в [[репозиторий|репозитории]]. 
 + 
 +Нумерация версий ядра Ubuntu и на сайте [[http://​kernel.org|kernel.org]] не совпадает,​ так как для обозначения добавленных патчей разработчики из [[Canonical]] добавляют микроверсию. Например,​ версия 3.2.0-23 будет означать,​ что ядро базируется на ветке 3.2, на которую было наложено 23 патча. 
 + 
 +В репозитории Ubuntu поддерживаются следующие типы ядер: 
 +  * ''​generic''​ -- ядро, подходящее для большей части систем. 
 +  * ''​generic-pae''​((Physical Address Extension)) -- ядро, включающее в себя возможность адресовать больше 4Гб оперативной памяти на 32-битных системах. 
 +    * Начиная с [[Ubuntu]] [[precise|10.04]] при установке с [[MinimalCD]]((FIXME проверить происходит ли это при установке с других версий (desktop, server) )) система автоматически определяет объем оперативной памяти и устанавливает подходящее ядро. 
 +    * Начиная с [[Ubuntu]] [[precise|12.04]] это ядро включено в 32-битную версию дистрибутива по-умолчанию. 
 +  * ''​virtual''​ -- специально оптимизированное ядро для работы в [[виртуальные_машины|виртуальных машинах]]. 
 +  * ''​server''​ -- серверный вариант ядра (начиная с релиза Ubuntu 12.04 обьеденен с ''​generic''​). 
 +<note tip>''​generic-pae''​ ядро позволяет 32-битной системе использовать до 64ГБ общего объёма оперативной памяти,​ выделяя под нужды конкретного процесса не более 4ГБ, в то время как простое ядро ''​generic''​ работает не более чем с 4ГБ ОЗУ. ​  
 + 
 +64-битное ядро позволяет адресовать до 1ТБ памяти,​ потребляемой процессами.</​note>​ 
 +Если требуется обновить ядро на более новую мажорную версию((первые две цифры в названии ядра означают мажорную версию,​ идущие после них -- минорную)) (обычно это связано с тем, что в новых версиях добавляется поддержка нового оборудования,​ устраняются регрессии) можно воспользоватся официально поддерживаемым архивом [[http://kernel.ubuntu.com/​~kernel-ppa/mainline/]]. 
 + 
 +===== Компиляция ядра ===== 
 +<note important>​Сборка ядра из исходных кодов требует некоторых навыков и знаний о работе ОС.</​note>​ 
 +Перед началом сборки ядра необходимо установить следующие пакеты:​ 
 +<​code>​build-essential fakeroot ncurses-dev libssl-dev</​code>​ 
 +Все дальнейшие действия необходимо выполнять от лица [[суперпользователь_в_ubuntu|суперпользователя]]:​ 
 +<​code=bash>​sudo su</code> 
 + 
 +==== Получение исходного кода ==== 
 +Исходный код ядра, используемого в Ubuntu можно получить установив пакет ''​linux-source'':​ 
 +<​code=bash>​apt-get install linux-source</​code>​ 
 +После установки в директории ///​usr/​src//​ появится архив называющийся //​linux-source-верися_ядра.tar.bz2//​. 
 + 
 +Так же можно скачать архив и с исходным кодом ядра с сайта [[http://​kernel.org|kernel.org]]
 +<note important>​Скачивая ядро с сайта kernel.org, вам придётся наложить на него патчи</​note>​ 
 +==== Конфигурирование ==== 
 +Распакуйте полученый архив((Здесь и далее будет подразумеваться, что исходный код был получен из репозитория Ubuntu)) и, для удобства,​ создайте символическую ссылку на полученую в результате директорию:​ 
 +<​code=bash>​cd /usr/src 
 +tar xjf ./​linux-source-3.2.0.tar.bz2 
 +ln -s ./​linux-source-3.2.0 ./linux 
 +cd ./​linux</​code>​ 
 +Для упрощения процесса конфигурации ​ядра можно скопировать настройки текущего:​ 
 +<​code=bash>​cp /​boot/​config-`uname -r` .config</​code>​ 
 +Если вы хотите узнать какие различия появились между новой и текущей версией ядер выполните:​ 
 +<​code=bash>​make oldconfig</​code>​ 
 +Начиная с версии ядра 2.6.32 появилась возможность обновлять конфигурацию только тех модулейкоторые используются в данной системе:​ 
 +<​code=bash>​make localmodconfig</​code>​ 
 +Существует три основных варианта конфигурирования ядра: 
 +  ** <​code=bash>​make config</​code>​ 
 +  .. Способ для смелых и отважных. Конфигуратор задаст вам ​около четырехста ​вопросов на которые нужно будет дать ответ. 
 +  ** <​code=bash>​make menuconfig</​code>​ 
 +  .. Предоставляет псевдографический конфигуратор,​ в котором все ​настройки разложены по пунктам. 
 +  ** <​code=bash>​make xconfig</​code>​ 
 +  .. Предоставляет графический конфигуратор. 
 + 
 +====Сборка==== 
 +Сборка ядра производится командой 
 +<​code=bash>​fakeroot make-kpkg -j 5 --initrd --append-to-version=-custom kernel_image kernel_headers #-j <​количество ядер процессора>​+1</​code>​ 
 +Вместо ''​ваша_версия''​ подставьте название для вашей версии ядра. 
 + 
 +Процесс сборки может занять некоторое время. По его окончанию появятся пакеты содержащие скомпилированное ядро и заголовочные файлы. Их можно будет установить при помощи ''​dpkg''​. 
 +===== Модули ядра ===== 
 +Смотрите страницу [[Модули ядра]]. 
 + 
 +=====Смотрите также===== 
 +  * [[сборка_ядра|HOW-TO:​ Сборка ядра Linux]] 
 + 
 +===== Ссылки ===== 
 +  * [[https://​help.ubuntu.com/​community/​Kernel/​Compile|Компиляция ядра]] (англ.)
   * [[http://​cateee.net/​lkddb/​web-lkddb/​|Опции сборки Linux]] — вроде бы не является официальной документацией,​ лучше вставить ссылку на доки от разработчиков   * [[http://​cateee.net/​lkddb/​web-lkddb/​|Опции сборки Linux]] — вроде бы не является официальной документацией,​ лучше вставить ссылку на доки от разработчиков
  
-{{tag>NEW}}+{{tag>ядро компиляция}}