Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:ядро [2012/06/18 15:19] |
wiki:ядро [2017/05/26 15:29] (текущий) [Сборка] |
||
---|---|---|---|
Строка 5: | Строка 5: | ||
В Ubuntu исппользуется ядро с большим количеством [[патч|патчей]], часть из которых добавляет нестабильные и экспериментальные возможности((FIXME ссылку бы)). | В Ubuntu исппользуется ядро с большим количеством [[патч|патчей]], часть из которых добавляет нестабильные и экспериментальные возможности((FIXME ссылку бы)). | ||
+ | Каждый релиз Ubuntu имеет собственную версию ядра. LTS-релизы начиная с 10.04 получили возможность обновить ядро до версий, входящих в состав более новых релизов. | ||
+ | |||
+ | ^Версия 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://pf.natalenko.name/|pf-kernel]] -- форк ядра, развиваемый одним из участников русскоязычного сообщества. Цель сего проекта — собрать максимально оптимизированное по скорости и возможностям ядро под себя, заодно предоставив другим возможность пользоваться этими наработками. | ||
Строка 11: | Строка 36: | ||
===== Установка ===== | ===== Установка ===== | ||
Ядро является одним из жизненно важных компонентов каждого дистрибутива Linux. В Ubuntu ядро содержится в пакетах ''linux-image-версия_ядра-тип_ядра''. Для простоты обновления так же имеется пакет ''linux-image-тип_ядра'', в зависимостях которого указана последняя версия ядра имеющеяся в [[репозиторий|репозитории]]. | Ядро является одним из жизненно важных компонентов каждого дистрибутива Linux. В Ubuntu ядро содержится в пакетах ''linux-image-версия_ядра-тип_ядра''. Для простоты обновления так же имеется пакет ''linux-image-тип_ядра'', в зависимостях которого указана последняя версия ядра имеющеяся в [[репозиторий|репозитории]]. | ||
+ | |||
+ | Нумерация версий ядра Ubuntu и на сайте [[http://kernel.org|kernel.org]] не совпадает, так как для обозначения добавленных патчей разработчики из [[Canonical]] добавляют микроверсию. Например, версия 3.2.0-23 будет означать, что ядро базируется на ветке 3.2, на которую было наложено 23 патча. | ||
В репозитории Ubuntu поддерживаются следующие типы ядер: | В репозитории Ubuntu поддерживаются следующие типы ядер: | ||
* ''generic'' -- ядро, подходящее для большей части систем. | * ''generic'' -- ядро, подходящее для большей части систем. | ||
- | * ''generic-pae'' -- ядро, включающее в себя возможность адресовать больше 4Гб оперативной памяти на 32-битных системах. | + | * ''generic-pae''((Physical Address Extension)) -- ядро, включающее в себя возможность адресовать больше 4Гб оперативной памяти на 32-битных системах. |
+ | * Начиная с [[Ubuntu]] [[precise|10.04]] при установке с [[MinimalCD]]((FIXME проверить происходит ли это при установке с других версий (desktop, server) )) система автоматически определяет объем оперативной памяти и устанавливает подходящее ядро. | ||
+ | * Начиная с [[Ubuntu]] [[precise|12.04]] это ядро включено в 32-битную версию дистрибутива по-умолчанию. | ||
* ''virtual'' -- специально оптимизированное ядро для работы в [[виртуальные_машины|виртуальных машинах]]. | * ''virtual'' -- специально оптимизированное ядро для работы в [[виртуальные_машины|виртуальных машинах]]. | ||
- | * ''server'' -- серверный вариант ядра (начиная с релиза Ubuntu 12.04 обьеденен с ''generic'') | + | * ''server'' -- серверный вариант ядра (начиная с релиза Ubuntu 12.04 обьеденен с ''generic''). |
- | FIXME добавить информацию про http://kernel.ubuntu.com/~kernel-ppa/mainline/ | + | <note tip>''generic-pae'' ядро позволяет 32-битной системе использовать до 64ГБ общего объёма оперативной памяти, выделяя под нужды конкретного процесса не более 4ГБ, в то время как простое ядро ''generic'' работает не более чем с 4ГБ ОЗУ. |
+ | |||
+ | 64-битное ядро позволяет адресовать до 1ТБ памяти, потребляемой процессами.</note> | ||
+ | Если требуется обновить ядро на более новую мажорную версию((первые две цифры в названии ядра означают мажорную версию, идущие после них -- минорную)) (обычно это связано с тем, что в новых версиях добавляется поддержка нового оборудования, устраняются регрессии) можно воспользоватся официально поддерживаемым архивом [[http://kernel.ubuntu.com/~kernel-ppa/mainline/]]. | ||
===== Компиляция ядра ===== | ===== Компиляция ядра ===== | ||
<note important>Сборка ядра из исходных кодов требует некоторых навыков и знаний о работе ОС.</note> | <note important>Сборка ядра из исходных кодов требует некоторых навыков и знаний о работе ОС.</note> | ||
- | <note>Перед началом сборки ядра необходимо установить следующие пакеты пакеты: | + | Перед началом сборки ядра необходимо установить следующие пакеты: |
- | <code>build-essential fakeroot ncurses-dev</code></note> | + | <code>build-essential fakeroot ncurses-dev libssl-dev</code> |
+ | Все дальнейшие действия необходимо выполнять от лица [[суперпользователь_в_ubuntu|суперпользователя]]: | ||
+ | <code=bash>sudo su</code> | ||
+ | |||
+ | ==== Получение исходного кода ==== | ||
Исходный код ядра, используемого в Ubuntu можно получить установив пакет ''linux-source'': | Исходный код ядра, используемого в Ubuntu можно получить установив пакет ''linux-source'': | ||
- | <code=bash>sudo apt-get install linux-source</code> | + | <code=bash>apt-get install linux-source</code> |
После установки в директории ///usr/src// появится архив называющийся //linux-source-верися_ядра.tar.bz2//. | После установки в директории ///usr/src// появится архив называющийся //linux-source-верися_ядра.tar.bz2//. | ||
- | FIXME | + | Так же можно скачать архив и с исходным кодом ядра с сайта [[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|Kernel/Compile|Компиляция ядра]] (англ.) | + | * [[https://help.ubuntu.com/community/Kernel/Compile|Компиляция ядра]] (англ.) |
* [[http://cateee.net/lkddb/web-lkddb/|Опции сборки Linux]] — вроде бы не является официальной документацией, лучше вставить ссылку на доки от разработчиков | * [[http://cateee.net/lkddb/web-lkddb/|Опции сборки Linux]] — вроде бы не является официальной документацией, лучше вставить ссылку на доки от разработчиков | ||
- | {{tag>ядро компиляция fixme}} | + | {{tag>ядро компиляция}} |