Kernel (Русский) - ArchWiki

Jump to content

# Kernel (Русский)

From ArchWiki

Ссылки по теме

- Модули ядра
- Compile kernel module
- Kernel Panics
- sysctl

Состояние перевода: На этой странице представлен перевод статьи 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

- Libre — без проприетарных или обфусцированных драйверов устройств.

  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 || Пакеты:
  - Репозиторий разработчика pf-kernel, post-factum.
  - Репозиторий с пакетами linux-pfAUR и linux-pf-preset-defaultAUR от создателя форка pf-kernel, Thaodan.
  - linux-pf-gitAUR от yurikoles

- 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, после чего сообщите о нём в баг-трекер ядра. Важно проверять ванильное непропатченное ядро, чтобы убедиться, что причиной ошибки является не патч. Если проблемы вызывает патч, то сообщите об этом его автору.

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

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

- O'Reilly — Linux Kernel in a Nutshell — электронная книга "Ядро Linux в двух словах".
- Какую из stable-версий ядра лучше использовать? от Greg Kroah-Hartman.
- Документация ядра Linux

Categories:

- Kernel (Русский)
- Lists of software (Русский)

Hidden category:

- Pages with missing package links