Linux или linux zen

Zen Kernel — зачем ползать если можно летать?

Уже около месяца в моем Arch Linux крутится zen kernel. Довольно неплохо обработанное напильником, с кучей пачтей и дополнительных фич не входящих в ванильное ядро. Сегодня я расскажу что же оно есть такое и чуток углублюсь в дебри 🙂

Ядро Zen

Zen представляет собой вариант ядра Linux, который предназначен для настольных компьютеров. Это «исправленный» Linux для настольных/не-серверных систем, использует комбинацию нескольких проектов, обновляет код через git-репозиторий, а так же имеет несколько специфичных для Zen вещей стремящихся удовлетворить большинство потребностей пользователей реализовав их в одном ядре. Некоторые примеры слияния кодов это drm-next, wireless-testing, выбор планировщиков CPU (CFS/BFS), BFQ планировщик ввода-вывода, aufs, unionfs, reiser4, tuxonice, PHC, и многие другие замечательные вещи которые замечательно подойдут для улучшения настроек настольных или ноутбук систем или просто код улучшающий производительность настольных систем. Однако объединенный код может изменится в любой момент. Так же, «передовые технологии» такие как drm-next, wireless-testing, linux-2.6.git, или что-то другое по сути дела являющееся «передовыми разработками» слиты с кодом только в нестабильной ветке (zen.git).

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

Что включено в Zen-ядро?

Код включаемый в zen ядро может быть разным в разное время. Несколько примеров проектов которые были последовательно объединены с zen: bfs/zen-sched, bfq i/o планировщик, aufs, reiser4, tuxonice, smapi, linux PHC, mactel, gc-linux, fbcondecor, cko, и другие. Это не точный список того что указано на сайте, и он может изменяться от релиза к релизу.

Если вам интересно знать что включается в zen ядро в любой момент времени, посетите gitweb и прочитайте, или поищите в логах git. Интерфейс gitweb отображает все вносимые правки с пояснениями к ним, а так же все ветки которые существуют в дереве. Эта информация отображается для текущей ‘master’ ветки дерева и для любой существующей метки (вы так же можете вернуться назад и посмотреть старые релизы).

Читайте также:  Сеанс mac os неизвестный тип браузера вконтакте это что

Как альтернатива этому — это подробная документация включающая даже документацию к проектам включенным в Zen ядро, она может быть найдена на странице Документации.

Отличие между zen.git и zen-stable.git

Zen-Stable.git

  • Создается на основе последнего стабильного ядра: нет RC ядер (2.6.X.Y)
  • Не имеет репозитория новинок для будущего слияния с основным кодом (нет drm-next, sound-2.6.git, wireless-testing, или любых других «тестовых» деревьев)
  • Не включает код «просто посмотрите работает ли это»
  • Имеет только stable + stable zen метки (нет -rc меток)

Zen.git

  • Берется из linux-2.6.git: -rc/git ядра (2.6.X-rcY)
  • Имеет git-репозиторий нововведений (drm-next, sound-2.6.git, wireless-testing)
  • Новые проекты которые хотят протестить включаются сюда, смотрят как они работают в Zen.git, если все нормально и стабильно то можгут быть включены в zen-stable.git.
  • Только unstable + unstable zen метки (только -rc метки)

Вам не требуется клонировать оба zen-stable.git и zen.git если вам хочется использовать оба дерева одновременно! Прочитайте «Как переключаться между zen-stable и zen в одном древе»

Так вы сможете получить все метки (не только -rc или stable метки), и получить оба древа в одном.

Источник

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

Тесты

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
Читайте также:  Mac os кнопка options

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

Читайте также:  Управление телефоном android с компьютера windows 10

Источник

Zen kernel ArchLinux (manjaro linux)

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

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

Что ты не можешь? Установить пакет linux-zen? — sudo pacman -S linux-zen Или поправить конфиг граба? Скопипасть дефолтный mnuentry, с какого загружаешься и допиши ‘-zen’ к ядру. Или выложи grub.conf и список файлов из /boot/ на http://pastebin.com я тебе сделаю.

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

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

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

Источник

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