Kernel (Русский)

From ArchWiki
(Redirected from Ядро)
Jump to navigation Jump to search
Состояние перевода: На этой странице представлен перевод статьи Kernel. Дата последней синхронизации: 10 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

Ядро Linuxядро операционной системы, соответствующее стандартам POSIX, составляющее основу операционных систем семейства Linux.

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

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

Официальные ядра

Помощь при работе с официальными ядрами можно найти на форуме и в баг-трекере.

  • Stable — "ванильное" ядро Linux с модулями и некоторыми патчами.
https://www.kernel.org/ || linux
  • Hardened — ориентированное на безопасность ядро Linux с набором патчей, защищающих от эксплойтов ядра и пространства пользователя. Содержит больше защитных особенностей, чем 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 Build System
Преимущества — наличие готового PKGBUILD для пакета linux и удобство системы управления пакетами.
/Традиционная компиляция
Ручная загрузка архива файлов с исходными кодами ядра и их компиляция.
Важно:
  • Нестандартное ядро чревато всевозможными проблемами в плане надёжности и стабильности работы, поэтому настоятельно рекомендуется использовать резервное копирование.
  • Arch Linux поддерживает только #Официальные ядра. Если вы работаете с другим ядром, то не забывайте упоминать это в запросах в поддержку.
Совет:
  • Лучший способ повысить производительность — адаптировать ядро под свою систему, в первую очередь под архитектуру и тип процессора.
  • Если оставить в ядре только действительно нужные вам функции, то удастся уменьшить его размер и, следовательно, время сборки. Например, удалите из него Bluetooth, Video4Linux, 1000Mbit Ethernet и прочие вещи, которые на вашей машине точно не понадобятся.

Файлы конфигурации пакетов с ядрами Arch можно найти в исходниках (например, файл [1] из linux). Если включена опция ядра CONFIG_IKCONFIG_PROC, то файл /proc/config.gz содержит настройки ядра, которое работает на вашей машине в данный момент.

Некоторые из перечисленных пакетов могут быть также доступны в двоичном виде в неофициальных репозиториях.

Ядра 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 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
  • Longterm 5.4 — LTS-ядро версии 5.4.
https://www.kernel.org/ || linux-lts54AUR

Неофициальные ядра

  • Aufs — совместимое с aufs ядро Linux. Полезно при работе с Docker.
http://aufs.sourceforge.net/ || linux-aufsAUR
  • Ck — патч от Con Kolivas, повышение быстродействия для настольных систем с любым типом нагрузки.
http://ck.kolivas.org/ || linux-ckAUR
  • Clear — патчи проекта Clear Linux от Intel. Содержит улучшения производительности и безопасности.
https://github.com/clearlinux-pkgs/linux || linux-clearAUR
  • GalliumOS — ядро Linux с патчами GalliumOS для Хромбуков.
https://github.com/GalliumOS/linux || linux-galliumosAUR
https://www.fsfla.org/ikiwiki/selibre/linux-libre/ || linux-libreAUR
  • Liquorix — ядро, собранное из исходного кода Zen с настройками для Debian. Разработан для настольных, мультимедийных и игровых систем, часто используется в качестве замены основному ядру Debian. Создатель патча Liquorix, Damentz, также является разработчиком набора патчей Zen.
https://liquorix.net || linux-lqxAUR
  • MultiPath TCP — ядро с поддержкой Multipath TCP.
https://multipath-tcp.org/ || linux-mptcpAUR
  • pf-kernel — набор неплохих улучшений, не вошедших в mainline. Сопровождается разработчиком ядра. Предоставляет порты улучшений для новых версий ядра, если они не были выпущены официально. Наиболее важные нововведения — UKSM и планировщик процессорного времени PDS.
https://gitlab.com/post-factum/pf-kernel/wikis/README || Пакеты:
  • Realtime kernel — поддерживается небольшой группой разработчиков, возглавляемой Ingo Molnar. Патч позволяет применять kernel preemption практически ко всему ядру за исключением небольших участков кода ("raw_spinlock critical regions"). Этого удалось добиться за счёт замены большинства спинлоков ядра на мьютексы с поддержкой наследования приоритета, а также перемещением всех прерываний (в том числе и программных) в потоки ядра.
https://wiki.linuxfoundation.org/realtime/start || linux-rtAUR, linux-rt-ltsAUR
  • Tkg — ядро с набором патчей для планировщиков PDS и Project C / BMQ. Стандартный планировщик CFS также доступен. Изменения нацелены на улучшение баланса интерактивность/производительность в играх. Автор и сопроводитель — Etienne Juvigny (Tk-Glitch).
https://github.com/Frogging-Family/linux-tkg || not packaged? search in AUR
  • VFIO — патч ядра от Alex Williamson с поддержкой PCI Passthrough для KVM на некоторых машинах.
https://lwn.net/Articles/499240/ || linux-vfioAUR, linux-vfio-ltsAUR
  • XanMod — улучшение производительности ядер рабочих станций, игровых компьютеров, медиацентров и других систем. Включает планировщик MuQSS, планировщик ввода-вывода BFQ, алгоритм дедупликации памяти в реальном времени UKSM, алгоритм управления перегрузками TCP BBR, расширенный набор команд для архитектуры x86_64 и другие изменения.
https://xanmod.org/ || linux-xanmodAUR

Отладка регрессий

См. General troubleshooting#Debugging regressions.

Прежде всего проверьте ядро linux-mainlineAUR на предмет того, не была ли проблема уже решена. В прикреплённом комментарии указан репозиторий с уже собранными ядрами, так что собирать ядро вручную не придётся.

Если проблема проявляется не слишком часто, то имеет смысл попробовать LTS-ядро (linux-lts). Старые версии LTS-ядер можно найти в архиве Arch Linux.

Если избавиться от проблемы не удалось, попробуйте локализовать баг в linux-gitAUR, после чего сообщите о нём в баг-трекер ядра. Важно проверять ванильное непропатченное ядро, чтобы убедиться, что причиной ошибки является не патч. Если проблемы вызывает патч, то сообщите об этом его автору.

Примечание: Локализация местонахождения бага в коде может занять много времени, поскольку придётся многократно пересобирать ядро.

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