Kernel (Русский)

From ArchWiki
Jump to navigation Jump to search
Состояние перевода: На этой странице представлен перевод статьи Kernels. Дата последней синхронизации: 29 марта 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Из Википедии:

Ядро Linux — монолитное ядро Unix-подобной операционной системы с открытым исходным кодом.

Дистрибутив Arch Linux основан на ядре Linux. Помимо основной стабильной (stable) версии в Arch Linux можно использовать некоторые альтернативные ядра. В статье описываются доступные в официальных репозиториях версии ядер, возможные патчи, а также способы, которыми пользователи могут скомпилировать собственное ядро.

Пакет ядра устанавливается на файловую систему в разделе /boot/. Для загрузки нужного ядра при запуске системы небходимо соответствующим образом настроить загрузчик.

Официально поддерживаемые пакеты

  • Stable — "Ванильное" ядро Linux с модулями и некоторыми патчами.
https://www.kernel.org/ || linux
  • Hardened — Ориентированная на безопасность версия с набором патчей, защищающих от эксплойтов ядра и пространства пользователя. Внедрение защитных возможностей в этом ядре происходит быстрее, чем в linux.
https://github.com/anthraxx/linux-hardened || linux-hardened
  • Longterm — Версия ядра и модулей с долгосрочной поддержкой (Long Term Support, LTS).
https://www.kernel.org/ || linux-lts
  • Zen Kernel — Результат коллективных усилий исследователей с целью создать лучшее из возможных ядер Linux для систем общего назначения. Подробности проекта можно найти на сайте liquorix.net (там же можно скачать двоичные файлы Zen-ядра для Debian).
https://github.com/zen-kernel/zen-kernel || linux-zen

Компиляция

В Arch Linux есть два способа компиляции собственного ядра.

/Arch Build System
Преимущества — наличие готового PKGBUILD для пакета linux и удобство использования системы управления пакетами.
Традиционная компиляция
Ручная загрузка архива файлов с исходными кодами ядра и их компиляция.

Ядра с сайта kernel.org

  • Git — Ядро Linux, собранное из файлов с исходным кодом из git-репозитория Линуса Торвальдса.
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git || linux-gitAUR
  • Mainline — Версии ядра с добавлением новых функций. Выходят каждые 2-3 месяца.
https://www.kernel.org/ || linux-mainlineAUR
  • Next — Новейшие версии ядра, с улучшениями, которые будут добавлены в следующий mainline-выпуск.
https://www.kernel.org/doc/man-pages/linux-next.html || linux-next-gitAUR
  • Longterm 3.16 — LTS-ядро версии 3.16.
https://www.kernel.org/ || linux-lts316AUR
  • Longterm 4.4 — LTS-ядро версии 4.4.
https://www.kernel.org/ || linux-lts44AUR
  • Longterm 4.9 — LTS-ядро версии 4.9.
https://www.kernel.org/ || linux-lts49AUR
  • Longterm 4.14 — LTS-ядро версии 4.14.
https://www.kernel.org/ || linux-lts414AUR
  • Longterm 4.19 — LTS-ядро версии 4.19.
https://www.kernel.org/ || linux-lts419AUR

Патчи и наборы патчей (патчсеты)

Есть много причин, чтобы пропатчить ядро, основные из них для работы или для поддержки не-магистральных функций, таких как поддержка файловой системы Reiser4. Другие причины могут включать в себя забаву и посмотреть, как это делается и какие улучшения при этом появляются.

Однако, важно отметить, что лучшим способом увеличить скорость работы вашей системы будет сконфигурированное ядро именно для вашей системы, особенно под конкретную архитектуру и тип процессора. По этой причине использовать заранее упакованные версии пользовательских ядер с общими настройками архитектуры не рекомендуется, или не стоит. Еще одним приемуществом является то, что вы можете уменьшить размер вашего ядра (и, следовательно время сборки). Для этого не включая поддержку тех модулей, которыми вы не пользуетесь. Например вы можете убрать поддержку bluetooth, video4linux, 1000Mbit ethernet и т.д. Т.е. убрать тот ненужный для вас функционал и/или поддержку того оборудования которого у вас нет. Хотя эта статья не о конфигурации ядра, тем не менее рекомендуется в качестве первого шага, основы, чтобы понять какой набор патчей использовать.

Конфигурационные файлы для пакетов ядра Arch можно использовать в качестве отправной точки. Они находятся в Arch исходных файлов пакета, например[1] связано с linux. Файл конфигурации вашего текущего ядра также всегда доступны в файловой системе в /proc/config.gz.

Как установить

Процесс установки пользовательских пакетов ядра опирается на систему сборки Arch (ABS). Если вы не собирали какие-либо пользовательские пакеты самостоятельно, вы можете обратиться к следующим статьям: Arch Build System (Русский) и Creating packages (Русский).

Если вы не патчили или настраивали ядро ранее, то это не так сложно, и есть много PKGBUILD’ов на форуме для отдельных пакетов. Тем не менее, мы советуем вам начать с нуля, с некоторым исследованием преимуществах каждого набора патчей, а не просто произвольной выборки из всего множества. Таким образом, вы узнаете гораздо больше о том, что вы делаете, а не просто выберите ядро при запуске, а потом будите гадать, что же там изменилось.

Смотрите #Compilation[broken link: invalid section].

Примечание: Не забудьте изменить параметры загрузки в загрузчике GRUB, чтобы использовать новое ядро.

Основные патчи и патчсеты

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

Стоит также отметить, что некоторые патчи строятся на старых версиях ядра и (или) патчах (которые могут или не могут быть отражены в названии патча). Патчсеты (и обновления ядра) часто и зачастую не идут в ногу со временем. Так что не стоит сходить с ума, если это не ваше хобби.

Вы можете воспользоваться поиском Google для поиска других видов патчей.

Примечание: Этот раздел только для ознакомления - никаких гарантий о надёжности или стабильности на этой странице.

-ck

Linux-ck содержит патчи, предназначенные для улучшения отклика системы с особым упором на рабочем столе, подходят для любой нагрузки. Патчи создаются и поддерживаются Коном Коливасом (Con Kolivas). Его сайт http://users.on.net/~ckolivas/kernel/. Кон поддерживает полный набор патчей, но также обеспечивает одиночные патчи, так что вы можете добавить только те, которые Вы предпочитаете.

-ck можно найти на http://ck.kolivas.org/patches/4.0/

-rt

Это набор патчей поддерживается небольшой группой разработчиков ядра, во главе с Инго Молнар (Ingo Molnar). Позволяет превратить обычный Linux в ОС реального времени. Главное применение такой системы – промышленные и встроенные системы, но на обычном компьютере она тоже может быть интересна. Например тем, кто часто занимается обработкой звука и видео или постоянно грузит систему какими-нибудь ресурсоемкими вычислениями. Также есть положительный эффект от применения этого ядра на highload-серверах.

Патч на https://www.kernel.org/pub/linux/kernel/projects/rt/

-bld

Важно: Этот патч находится в разработке.

BLD (Barbershop Load Distribution) лучше всего описывается как O(1) техника сортировки процессов. Это реализация альтернативного алгоритма планирования задач. BLD ограничивается решением задачи по корректному распределению нагрузки путем отслеживания не всех привязанных к CPU очередей, а только наиболее и наименее загруженных очередей выполнения (rq, runqueue). BLD не пытается балансировать нагрузку на систему в контексте отслеживания бездействующих idle-процессов, а акцентирует внимание на распределении всей нагрузки между имеющимися процессорами наиболее простым путём с минимальным числом усложнений. Главным достоинством BLD является сам подход, показывающий что достаточно простыми методами можно добиться равномерного распределения нагрузки, не заботясь особенно о том сколько CPU используется в системе и соответственно без лавинообразного падения производительности на накладные расходы при увеличении числа CPU (BLD обеспечивает уровень производительности O(i), где i - число CPU).

По материалам этой новости

-grsecurity

Grsecurity Из [2] Это проект для Linux, который включает в себя некоторые улучшения связанные с безопасностью, включая принудительный контроль доступа, рандомизацию ключевых локальных и сетевых информативных данных, ограничения /proc и chroot() jail, контроль сетевых сокетов, контроль возможностей, и добавочные функции аудита. Типичной областью применения являются web-сервера и системы, которые принимают удалённые соединения из сомнительных мест, такие как сервера, которые обеспечивают shell-доступ для пользователей. Патч grsecurity выпущен под GPL, является свободным ПО и включает в себя набор патчей PaX. Создатель и ведущий разработчик grsecurity — Brad Spengler aka. Spender.

Grsecurity патчи можно посмотреть на https://grsecurity.net

Tiny-Патчи

ЦельLinux Tiny использование минимального дискового пространства и оперативной памяти, а также облегчение труда маломощных компьютеров. Целевые пользователи являются разработчиками встраиваемых систем и пользователями маломощных или устаревших машин, таких как 386/

Патч-релизы против господствующего Linux ядра были прекращены. Разработчики решили сосредоточиться на нескольких патчах и попытках поставить их в официальное ядро.

-pf

linux-pfAUR Это набор патчей, поверх официального ядра, обеспечивающих повышенную отзывчивость системы, предоставляющих альтернативную подсистему гибернации (более быстрая, по сравнению с основной), а также уменьшают использование памяти с помощью техники объединения одинаковых страниц. Набор патчей включает в себя: планировщик процессов BFS от Кона Коливаса (Con Kolivas) с дополнительными исправлениями от Альфреда Чена (Alfred Chen), планировщик ввода-вывода BFQ Паоло Валенте (Paolo Valente), Арианны Аванзини (Arianna Avanzini) и Мауро Маринони (Mauro Marinoni), подсистема гибернации TuxOnIce от Найджела Каннингема (Nigel Cunningham), реализация техники слияния одинаковых страниц в памяти UKSM от Най Ся (Nai Xia), патч от Graysky, расширяющий список процессоров для оптимизации ядра компилятором.

Смотрите linux-pf для большей информации.

Индивидуальные патчи

Эти патчи могут быть просто включены в любую сборку ванильного ядра или включены (возможно, с какой-то крупной тонкой настройки) в другой набор патчей.

Reiser4

Reiser4

Смотрите также