Arch linux как установить zen ядро

Обновлено: 07.07.2024

Что такое ядро ОС? Типы ядер

Как правило, большинство ядер ОС делятся на три типа:

Микроядро

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

небольшие требования к используемой памяти;

аппаратное обеспечение сильнее абстрагировано от системы;

аппаратное обеспечение может медленнее реагировать, поскольку драйверы находятся в пользовательском пространстве;

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

Монолитное ядро

Монолитное ядро — это полная противоположность микроядра, т.к. в памяти компьютера всегда находится весь (или почти весь) код ядра, вследствие чего скорость его работы выше в сравнении с микроядром. Монолитные ядра, как правило, лучше справляются с операциями доступа к оборудованию и многозадачностью, потому что, если программе нужно получить информацию из памяти или другого запущенного процесса, у нее есть прямая линия для доступа к ней, и программе не нужно ждать в очереди, чтобы сделать что-то. Однако такой подход может вызвать серьезные проблемы, потому что, чем больше процессов выполняется на уровне ядра, тем больше вероятность, что в случае непредвиденного поведения они создадут общий сбой вашей системы.

практически прямой доступ программ к оборудованию;

процессам проще взаимодействовать друг с другом;

если ваше устройство поддерживается ядром, никаких дополнительных установок ПО не потребуется;

процессы реагируют быстрее, потому что не требуется ожидания в очереди за процессорным временем.

большой размер ядра;

больший размер занимаемой памяти;

проблемы с безопасностью, т.к. все части работают в пространстве ядра.

Гибридное ядро

Гибридное ядро — это ядро, сочетающее в себе элементы как монолитной, так и микроядерной архитектур. У таких ядер есть возможность выбирать, какие части будут работать в пользовательском пространстве (например, драйверы устройств и система ввода-вывода файловой системы), а какие — в пространстве ядра (вызовы межпроцессного (IPC) и серверного взаимодействий). Но этот подход имеет и некоторые проблемы, унаследованные от микроядерной архитектуры (особенно, по части быстродействия).

разработчик может выбрать, какие программы будут работать в пользовательском пространстве, а какие — в пространстве ядра;

меньший размер в сравнении с монолитным ядром;

гибче в отличие от других ядер.

может страдать от пониженной производительности (как и микроядро);

работа драйверов устройств, как правило, сильнее зависит от производителей оборудования.

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

Где находится ядро Linux?

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

В системах Debian/Ubuntu файлы присутствующих в системе ядер расположены в каталоге /boot и именуются в виде vmlinuz-[версия_ядра] (выполнив в терминале команду uname-r , мы получим информацию о текущей версии установленного ядра):


В папке /boot вы также найдете и другие очень важные файлы:

img-[версия_ядра] — используется в качестве RAM-диска, в который распаковывается и с которого загружается ядро;

map-[версия_ядра] — используется для управления памятью до полной загрузки ядра;

config-[версия_ядра] — сообщает ядру, какие параметры и модули следует загрузить в образ ядра при его компиляции.

Примечание: Также для сжатия ядра часто применяются алгоритмы LZMA или bzip2, а сами ядра именуются zImage.

Модули ядра Linux

Модули обычно расширяют базовые возможности ядра, связанные с различной работой устройств, файловых систем и системных вызовов. Они, как правило, имеют расширение .ko и обычно хранятся в каталоге /lib/modules:


Версии ядра дистрибутивов Linux

Stable

Stable — это последняя доступная стабильная версия ядра Linux, предназначенная для широкого круга использования. По умолчанию, в большинстве дистрибутивов Linux применяется именно stable-версия ядра. Она регулярно обновляется, и к ней довольно часто выпускаются новые патчи.

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

Примечание: По данным компании Canonical, примерно 95% всех установок Ubuntu являются LTS-релизами.

Hardened

Hardened — это усиленная различными обновлениями безопасности stable-версия ядра Linux. Она умеет блокировать потенциально опасные операции, обеспечивая тем самым эффективную защиту от эксплойтов, нацеленных на использование уязвимостей ядра. Данная версия ядра не так популярна, как другие, из-за того, что несколько медленнее их. Hardened-ядро убивает любой процесс, который покажется ему потенциально опасным. Кроме этого, он не отображает PID процессов, и, следовательно, вы не сможете напрямую обратиться к запущенному исполняемому файлу. Также некоторые программы и функции могут не работать с hardened-ядром.

Zen — версия ядра Linux, ориентированная на повышение производительности и отзывчивости системы. Также говорят, что это лучшее ядро Linux для игр. Zen имеет низкую задержку и высокочастотный планировщик.

Установка/Обновление ядра Linux

Соответственно, из этого можно сделать следующие выводы:

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

Есть 2 способа установки/обновления ядра Linux:

Обновление ядра Linux через менеджер пакетов.

На этом уроке мы рассмотрим обновление ядра Linux через менеджер пакетов, а на следующем — самостоятельную установку и конфигурирование ядра Linux.

Обновление ядра Linux через менеджер пакетов

Обычно, вместе с обновлением системы происходит и обновление ядра. Но если вы по каким-либо причинам хотите произвести установку/обновление непосредственно только ядра Linux, то ниже мы рассмотрим данный процесс для нескольких дистрибутивов Linux.

Linux Mint (Debian/Ubuntu)

Для начала сверим текущую установленную версию ядра:


Далее выполним поиск доступных для установки ядер (сгенерированный список может быть очень длинным, поэтому, чтобы хоть как-то ограничить вывод и сделать его постраничным, применим фильтр | more ):

$ sudo apt-cache search linux-image | more


Мой выбор пал на ядро linux-image-4.15.0-1004-oem. Чтобы его установить, нужно выполнить команду:

$ sudo apt-get install linux-image-4.15.0-1004-oem


Останется только перезагрузить систему и убедиться, что новое ядро успешно установилось:


Manjaro (Arch Linux)

В Manjaro используется свой менеджер пакетов — pacman, поэтому его команды будут немного отличаться от команд в других дистрибутивах. Чтобы вывести список доступных для установки ядер, необходимо выполнить:

$ sudo pacman –S linux


В рамке обведен список ядер, которые мы можем установить. Я выбрал пункт №5 (linux510), нажав соответствующую кнопку на цифровой клавиатуре. После этого запустился процесс скачивания необходимых пакетов. Когда всё будет готово, перезагружаем систему и радуемся новому ядру:



Установка ядра Zen (Liquorix)

Liquorix — это отдельный проект ядра, собранный из исходников zen-ядра, но с использованием лучшей конфигурации для повышения производительности системы.

Debian

Скачиваем скрипт, который добавит в систему нужные репозитории:


После чего выполняем всего одну команду, устанавливающую пакеты с новым ядром:

$ sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64



Ubuntu

Установка в Ubuntu происходит практически аналогичным образом. Сначала добавляем репозитории zen-ядра (liquorix):

sudo add-apt-repository ppa:damentz/liquorix && sudo apt-get update

После чего выполняем уже знакомую по прошлому разу команду:

sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64

И теперь перезагружаем систему. Готово!

Manjaro


Далее установим необходимые утилиты:

$ sudo pacman –S base-devel


Заходим в каталог yay и производим сборку пакета:

$ cd yay
$ makepkg -si


После этого переходим непосредственно к установке zen-ядра:

$ yay -S linux-zen-git


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

что то я видимо совсем глупый, не могу сам разобраться. напишите кто нибудь инструкцию, как поставить ядро зен или аналогичное с планировщиками bfs/bfq. Я в дебиане пытался пропатчить ядро сам, но как то не хватило мозгов(((( а тут вообще незнакомая система

И будет ли что то с дистрибутивом manjaro (что то полетит), если я пропатчу в нем ядрышко? Спасибо заранее за ответы на мои нуботемы)


в репах есть
читай вики
только смысла особого нет в ядрах этих


у тебя ssd? используй noop и не страдай херней.


На HDD ещё есть ощущение, но с SSD вообще ничего не даёт. А вот с noop плохо кидается на всякие флэшки и прочее. Нет пути.

Слушай, вот у меня на старом hdd и оч старом ноуте (2003) ощущение не просто есть, а я радуюсь и улыбаюсь даже. Скорость с 1-3 мб/с и открытия файликов и папочек, которое занимает 20-30 сек поднялось до 10-15 и открытию за 3-5сек. Я конечно понимаю что это бомжопроблемымы, но иногда нужно этот комп брать, так как негде больше протестить определённое по.


Я не уверен, но вроде в Manjaro BFQ по умолчанию.
Если нет — смотри в сторону pf-kernel.

Ещё советую отключить эффекты в XFWM, или заменить его на что-то легковесное (dwm, Xmonad)


себе пожалуй тоже поставлю.

Так ничего же сложного. Устанавливаешь linux-zen и добавляешь в /boot/grub/grub.cfg (или как там у тебя?) ещё один пункт меню, который будет загружать zen-ядро. Он будет очень похож на твой текущий вариант, кроме строчки с linux /boot/vmlinuz-linux , в которую, само собой, надо дописать что-то типа '-zen': linux /boot/vmlinuz-linux-zen . Посмотри на список файлов в /boot/ после установки linux-zen.

Вот это и не могу, я не панимай как ставят ядра(((. В манах как будто не могу разобраться

Он ставится через пакман?! Я просто только на деб дистрах сидел, но там домашка сложно было делать. А может я просто губас)

Ну у тебя же Арч. Если тебя интересует как ядро было собрано, то можешь пройти по этой ссылке. В Манджаре может по-другому собирают. А может и нет.


Ну, результат зависит от двоих действий. Если ты накосячишь с патчами, то будут проблемы - да.

Кроме т.н. «ванильных» (оригинальных, немодифицированных) ядер, в дистрибутиве Arch Linux есть возможность установки и/или сборки из исходного кода кастомных ядер Linux, включающих в себя новые возможности, оптимизации или собирающиеся с обеспечением повышенной безопасности работы. В этом материале предлагаю собственный мини-обзор кастомных ядер для Arch Linux, который поможет определиться нужен ли вам кастомный пингвин под капотом (спойлер: нужен) и какое ядро выбрать под свои задачи.

Linux Zen

Ядро Zen содержит множество оптимизаций и улучшений по сравнению с «ванильным» ядром, нацеленных на предоставление «десктопного» ядра Linux для решения повседневных задач и игры, подо что и оптимизировано.

Установка Linux Zen

Zen ядро лежит в официальном репозитории «extra» Arch Linux, поэтому компилить ничего не надо. Ставится стандартным пакетным менеджером Pacman:

Linux Xanmod

Отличная модификация ядра Linux. Имеется большое количество улучшений, в том числе использование в качестве планировщика ЦП CacULE («какуля», у него и логотип соответсвующий). Не смотря на название — один из лучших планировщиков ЦП. В ядре содержатся модули Ashmem и Binder, с помощью которых можно запускать Anbox. С полным списком изменений и улучшений ядра Xanmod можно ознакомиться на официальном сайте. Кстати, там же есть инструкции по добавлению реп с ядром Xanmod в Debian/Ubuntu/Linux Mint. А вот в Arch Linux ядро Xanmod нужно собирать самостоятельно, с помощью PKGBUILD-сценария из AUR.

Установка Linux Xanmod

В AUR есть множество сценариев сборки данной модификации ядра. Обратите внимание, что по умолчанию собирается «generic» версия ядра, хотя можно собрать версию Xanmod, оптимизированную для своего процессора, о чём я хочу написать отдельный материал позже. А пока рассмотрим самые интересные варианты Xanmod в AUR.

linux-manjaro-xanmod

Xanmod с модификациями для дистрибутива Manjaro:

linux-xanmod-anbox

Вариант Xanmod с модулями Binder и Ashmem для Anbox:

linux-xanmod-cacule

Xanmod с планировщиком центрального процессора CacULE:

linux-xanmod-cacule-uksm

Xanmod с ЦП планировщиком CacULE и патчем UKSM (Ultra Kernel Samepage Merging). Последнее — очень классная штука, позволяющая в некоторых ситуациях сильно экономить оперативную память проводя её дедубликацию. Например, если на обычном ядре запустить 10 одинаковых виртуальных машин — они будут жрать ОЗУ как 10 виртуальных машин. С патчем UKSM эти же 10 виртуалок сожрут ОЗУ только как одна виртуальная машина. В этом мощь UKSM!

Linux Liquorix

Ядро Liquorix содержит все тюны ядра Zen, но в дополнение к ним использует I/O планировщик MuQSS, предназначенный для игры, мультимедиа и задач, требующих минимальные задержки. Подробности есть на официальном сайте проекта.

Установка Liquorix

Ядро собирается с помощью сценария из AUR:

Linux CK

Ядро CK собрано с патчами от Con Kolivas, включает планировщик ЦП MuQSS. Linux CK обеспечивает максимальную производительность и отзывчивость для настольных систем и не предназначено для серверов. Пользователи Arch Linux отмечают отличную отзывчивость системы, работающей на CK ядре под любыми нагрузками.

Установка Linux CK

CK ядро в AUR есть в нескольких вариантах.

linux-ck

Стандартная модификация ядра CK. Установка:

linux-ck-uksm

Модификация Linux CK с патчем UKSM. Именно этот вариант ядра использую и я:

Linux PF

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

Установка Linux PF

Собираем сценарием из AUR.

Какое ядро выбрать?

Конечно же, лучше всего будет попробовать все варианты модификаций и выбрать тот, который понравится больше всего. Рекомендую сначала собрать Xanmod если хочется попробовать максимально тюнингованное ядро. Если же просто нужно UKSM — можно поступить как я и остановиться на ядре CK с патчем UKSM. Любое ядро будет работать скорее всего не хуже стокового, по крайней мере я деградаций не замечал, хотя перебрал все модификации, представленные в данном материале. Пробуйте, экспериментируйте!

В вики это уже описано. Но сомневаюсь, что более 20% арчеводов в курсе этого. Работает там что-то "под капотом", ну и пусть работает. В общем-то и правильно, конечно.

За всем конфигом, да ещё и при обновлениях порой пару раз в неделю, следить не просто.

А вот дайджест был бы интересен. Но понимаю, что это фантастика. Так, мысли вслух, не надо принимать близко к сердцу )))

nafanja avatar

sirocco
Ну и как там отследить, что в один из моментов стало `CONFIG_ZSWAP_DEFAULT_ON=y`

главное что история изменений есть, а как отследить это дело техники.

я с помощью git в /etc/ вижу после каждого обновления что и где изменилось.
посмотрел, закоммитил. так далее, своеобразный дайджест

Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 неплохо бы еще и знать что можно выиграть при отключении того или иного параметра . В /etc, обычно, меньше изменений, чем в конфиге ядра. Достаточно сравнить конфиги для "стандартного" и -lts ядер.

vlig avatar

Поскольку загрузиться удаётся только с ванильного ядра, вроде порядок, его же нужно смотреть, я так понял, "не отходя от кассы"? Но как, если ничего не загружается?
Включил отладочную консоль по Ctrl+F9, но таймер не даёт ничего набрать.

vs220
Проверьте что правильно прописали initramfs для загрузки зен
Странно как-то собирается.
При этом nvidia всё ещё установлен, а если удалить, то завершается с руганью на модули nvidia*, а хочет nvidia почему-то.
vs220
проверьте наличие модулей для вашей версии зен

dkms тоже недоволен (уже после удаления nvidia):

Да вот почему-то не собирает, судя по всему, хотя linux-headers установлен.

nvidia пока поставлю обратно, иначе тогда вообще никак не загрузится.

Блин, третий год на арче (и вообще на никсах), а всё ещё ламак. зла не хватает :D

Читайте также: