Своя версия ядра линукс

Kernel (Русский)

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

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

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

Contents

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

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

  • 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 можно найти в исходниках (например, файл [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.
Читайте также:  Exchange server для linux

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 и другие изменения.
Читайте также:  Mac os service status

https://xanmod.org/ || linux-xanmodAUR

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

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

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

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

Источник

Есть ли польза от кастомных ядер

Тесты

Arch Linux

Начнем с теста Arch Linux на нетбуке.
Результаты теста UnixBench на стандартном ядре (3.0-ARCH):

Test Score Unit Time Iters. Baseline Index
Dhrystone 2 using register variables 3432673.5 lps 10.0 s 7 116700.0 294.1
Double-Precision Whetstone 821.7 MWIPS 10.2 s 7 55.0 149.4
Execl Throughput 1048.3 lps 29.7 s 2 43.0 243.8
File Copy 1024 bufsize 2000 maxblocks 120834.3 KBps 30.0 s 2 3960.0 305.1
File Copy 256 bufsize 500 maxblocks 36417.8 KBps 30.0 s 2 1655.0 220.0
File Copy 4096 bufsize 8000 maxblocks 290993.0 KBps 30.0 s 2 5800.0 501.7
Pipe Throughput 240124.9 lps 10.0 s 7 12440.0 193.0
Pipe-based Context Switching 21672.7 lps 10.0 s 7 4000.0 54.2
Process Creation 2885.9 lps 30.0 s 2 126.0 229.0
Shell Scripts (1 concurrent) 738.5 lpm 60.0 s 2 42.4 174.2
Shell Scripts (8 concurrent) 135.6 lpm 60.4 s 2 6.0 226.1
System Call Overhead 600176.7 lps 10.0 s 7 15000.0 400.1
System Benchmarks Index Score: 221.1

А вот тот же тест на pf-kernel (3.0-pf):

Test Score Unit Time Iters. Baseline Index
Dhrystone 2 using register variables 3700926.6 lps 10.0 s 7 116700.0 317.1
Double-Precision Whetstone 846.1 MWIPS 10.2 s 7 55.0 153.8
Execl Throughput 1343.2 lps 29.6 s 2 43.0 312.4
File Copy 1024 bufsize 2000 maxblocks 127468.0 KBps 30.0 s 2 3960.0 321.9
File Copy 256 bufsize 500 maxblocks 37622.9 KBps 30.0 s 2 1655.0 227.3
File Copy 4096 bufsize 8000 maxblocks 342606.2 KBps 30.0 s 2 5800.0 590.7
Pipe Throughput 296672.7 lps 10.0 s 7 12440.0 238.5
Pipe-based Context Switching 41227.5 lps 10.0 s 7 4000.0 103.1
Process Creation 3969.3 lps 30.0 s 2 126.0 315.0
Shell Scripts (1 concurrent) 861.1 lpm 60.1 s 2 42.4 203.1
Shell Scripts (8 concurrent) 159.4 lpm 60.2 s 2 6.0 265.6
System Call Overhead 642005.3 lps 10.0 s 7 15000.0 428.0
System Benchmarks Index Score: 264.6
Читайте также:  Opera ��� mac os yosemite

Как видно, общий прирост производительности составил 20%.

Ubuntu

Теперь результаты этих же тестов, но у же для Ubuntu.
На стандартном ядре (2.6.38-11-generic):

Test Score Unit Time Iters. Baseline Index
Dhrystone 2 using register variables 39162082.2 lps 10.0 s 7 116700.0 3355.8
Double-Precision Whetstone 9143.1 MWIPS 9.9 s 7 55.0 1662.4
Execl Throughput 11472.2 lps 29.8 s 2 43.0 2668.0
File Copy 1024 bufsize 2000 maxblocks 1041722.3 KBps 30.0 s 2 3960.0 2630.6
File Copy 256 bufsize 500 maxblocks 327345.4 KBps 30.0 s 2 1655.0 1977.9
File Copy 4096 bufsize 8000 maxblocks 1730411.9 KBps 30.0 s 2 5800.0 2983.5
Pipe Throughput 4204868.3 lps 10.0 s 7 12440.0 3380.1
Pipe-based Context Switching 738528.0 lps 10.0 s 7 4000.0 1846.3
Process Creation 32309.9 lps 30.0 s 2 126.0 2564.3
Shell Scripts (1 concurrent) 11023.5 lpm 60.0 s 2 42.4 2599.9
Shell Scripts (8 concurrent) 1425.4 lpm 60.0 s 2 6.0 2375.7
System Call Overhead 5723850.3 lps 10.0 s 7 15000.0 3815.9
System Benchmarks Index Score: 2580.4

На pf ядре (2.6.38-pf8):

Test Score Unit Time Iters. Baseline Index
Dhrystone 2 using register variables 71269301.5 lps 10.0 s 7 116700.0 6107.1
Double-Precision Whetstone 9175.2 MWIPS 9.9 s 7 55.0 1668.2
Execl Throughput 12014.6 lps 30.0 s 2 43.0 2794.1
File Copy 1024 bufsize 2000 maxblocks 1580881.5 KBps 30.0 s 2 3960.0 3992.1
File Copy 256 bufsize 500 maxblocks 428842.2 KBps 30.0 s 2 1655.0 2591.2
File Copy 4096 bufsize 8000 maxblocks 2315055.5 KBps 30.0 s 2 5800.0 3991.5
Pipe Throughput 4389021.4 lps 10.0 s 7 12440.0 3528.2
Pipe-based Context Switching 831655.8 lps 10.0 s 7 4000.0 2079.1
Process Creation 34789.6 lps 30.0 s 2 126.0 2761.1
Shell Scripts (1 concurrent) 11890.9 lpm 60.0 s 2 42.4 2804.5
Shell Scripts (8 concurrent) 1506.4 lpm 60.0 s 2 6.0 2510.7
System Call Overhead 5815793.6 lps 10.0 s 7 15000.0 3877.2
System Benchmarks Index Score: 3050.7

Прирост составил 18%, что на мой взгляд довольно ощутимо. Почему второй тест выдал чуть меньший результат? Скорее всего, дело в том, что тест проводился на x86_64 и в стандартном ядре было больше оптимизаций под архитектуру процессора, чем при ядре собранном под Pentium Pro на Intel Atom (SSE и прочие).

Как из этого всего видно, смысл в сборке своего ядра есть. Результаты примерно одинаковые на двух довольно разных процессорах: Intel Atom N270 и Core 2 Duo E8500.

Описывать процесс установки ядра для ARCH я не буду, он максимально прост. Я уверен, что для его пользователей это не составит труда.

Источник

Оцените статью