Remkomplekty.ru

IT Новости из мира ПК
17 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как создать свою ос на ядре linux

Собираем ядро Linux

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

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

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

Получение исходников ядра

Самое первое что нужно сделать — это скачать исходники ядра. Исходники лучшие брать с сайта вашего дистрибутива, если они там есть или официального сайта ядра: kernel.org. Мы рассмотрим загрузку исходников с kernel.org.

Перед тем как скачивать исходники нам нужно определиться с версией ядра которую будем собирать. Есть две основных версии релизов — стабильные (stable) и кандидаты в релизы (rc), есть, конечно, еще стабильные с длительным периодом поддержки (longterm) но важно сейчас разобраться с первыми двумя. Стабильные это, как правило, не самые новые, но зато уже хорошо протестированные ядра с минимальным количеством багов. Тестовые — наоборот, самые новые, но могут содержать различные ошибки.

Итак когда определились с версией заходим на kernel.org и скачиваем нужные исходники в формате tar.xz:

В этой статье будет использована самая новая на данный момент нестабильная версия 4.4.rc7.

Получить исходники ядра Linux можно также с помощью утилиты git. Сначала создадим папку для исходников:

Для загрузки самой последней версии наберите:

git clone https://github.com/torvalds/linux

Распаковка исходников ядра

Теперь у нас есть сохраненные исходники. Переходим в папку с исходниками:

Или если загружали ядро linux с помощью браузера, то сначала создадим эту папку и скопируем в нее архив:

Распаковываем архив с помощью утилиты tar:

И переходим в папку с распакованным ядром, у меня это:

Автоматическая настройка сборки ядра Linux

Перед тем как начнется сборка ядра linux, нам придется его настроить. Как я и говорил, сначала рассмотрим автоматический вариант настройки сборки ядра. В вашей системе уже есть собранное, настроенное производителем дистрибутива, и полностью рабочее ядро. Если вы не хотите разбираться с тонкостями конфигурации ядра, можно просто извлечь уже готовые настройки старого ядра и сгенерировать на их основе настройки для нового. Нам придется лишь указать значения для новых параметров. Учитывая, что в последних версиях не было и не намечается серьезных изменений можно отвечать на все эти параметры как предлагает скрипт настройки.

Параметры используемого ядра хранятся в архиве по адресу /proc/config.gz. Распакуем конфиг и поместим его в нашу папку утилитой zcat:

zcat /proc/config.gz > .config

А дальше запускаем скрипт адаптации настроек:

В процессе его работы нужно будет ответить на несколько вопросов. Это новые параметры, которые изменились или были добавлены в новое ядро и поддержка нового оборудования, в большинстве случаев можно выбирать вариант по умолчанию. Обычно есть три варианта y — включить, n — не включать, m — включить в качестве модуля. Рекомендованный вариант написан с большой буквы, для его выбора просто нажмите Enter.

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

Ручная настройка ядра Linux

Ручная настройка — сложный и трудоемкий процесс, но зато она позволяет понять как работает ваша система, какие функции используются и создать ядро с минимально нужным набором функций под свои потребности. Мы рассмотрим только главные шаги, которые нужно выполнить чтобы ядро собралось и заработало. Со всем остальным вам придется разбираться самому опираясь на документацию ядра. Благо в утилите настройки для каждого параметра есть обширная документация которая поможет вам понять какие еще настройки нужно включить.

Начнем. Для запуска меню настроек ядра linux наберите:

Откроется вот утилита с интерфейсом ncurses:

Как видите, некоторые обязательные опции уже включены, чтобы облегчить вам процесс настройки. Начнем с самых основных настроек. Чтобы включить параметр нажмите y, чтобы включить модулем — m, для перемещения используйте клавиши стрелок и Enter, возвратиться на уровень вверх можно кнопкой Exit Откройте пункт General Setup.

Здесь устанавливаем такие параметры:

Local Version — локальная версия ядра, будет увеличиваться при каждой сборке на единицу, чтобы новые ядра при установке не заменяли собой старые, устанавливаем значение 1.

Automatically append version information to the version string — добавлять версию в название файла ядра.

Kernel Compression Mode — режим сжатия образа ядра, самый эффективный lzma.

Default Hostname — имя компьютера, отображаемое в приглашении ввода

POSIX Message Queues — поддержка очередей POSTIX

Support for paging of anonymous memory — включаем поддержку swap

Control Group support — поддержка механизма распределения ресурсов между группами процессов

Kernel .config support и Enable access to .config through /proc/config.gz— включаем возможность извлечь конфигурацию ядра через /proc/config.gz

Здесь все, возвращаемся на уровень вверх и включаем Enable loadable module support, эта функция разрешает загрузку внешних модулей, дальше открываем его меню и включаем:

Module unloading — поддержка отключения модулей

Forced module unloading — принудительное отключение модулей

Опять возвращаемся назад и открываем Processor type and features:

Processor family (Opteron/Athlon64/Hammer/K8) — выбираем свой тип процессора.

Опять возвращаемся и переходим в раздел File systems, тут установите все нужные галочки.

Обязательно включите The Extended 3 (ext3) filesystem и The Extended 4 (ext4) filesystem — для поддержки стандартных ext3 и ext4 файловых систем

Возвращаемся и идем в Kernel hacking.

Здесь включаем Magic SysRq key — поддержка магических функций SysRq, вещь не первой необходимости, но временами полезная.

Остался еще один пункт, самый сложный, потому что вам его придется пройти самому. Device Drivers — нужно пройтись по разделам и повключать драйвера для своего оборудования. Под оборудованием я подразумеваю нестандартные жесткие диски, мышки, USB устройства, веб-камеры, Bluetooth, WIFI адаптеры, принтеры и т д.

Посмотреть какое оборудование подключено к вашей системе можно командой:

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

Чтобы сохранить настройки переместите указатель с помощью стрелок вправо-влево, з позиции Select в позицию Save и нажмите Enter, потом еще раз подтвердите сохранение:

Чтобы выйти нажмите пару раз кнопку Exit.

Сборка ядра Linux

После завершения всех приготовлений может быть выполнена сборка ядра linux. Для начала процесса сборки выполните:

make && make modules

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

Установка нового ядра

Когда ядро и модули будут собраны новое ядро можно устанавливать. Можно вручную скопировать файл ядра в папку загрузчика:

cp arch/x86_64/boot/bzImage /boot/vmlinuz

А можно просто выполнить установочный скрипт, сразу установив заодно и модули:

sudo make install && sudo make modules_install

После установки не забудьте обновить конфигурацию загрузчика Grub:

grub-mkconfig -o /boot/grub/grub.cfg

И перезагружаем компьютер чтобы увидеть новое ядро в работе:

Выводы

Вот и все. В этой статье мы подробно рассмотрели как собрать ядро Linux из исходников. Это будет полезно всем желающим лучшие понять свою систему, и тем, кто хочет получить самую новую версию ядра в своей системе. Если остались вопросы, задавайте комментарии!

MNorin.com

Блог про Linux, Bash и другие информационные технологии

Как собрать свой дистрибутив Linux

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

Читать еще:  Установить linux второй системой на windows 10

Linux From Scratch (LFS)

Самый суровый способ. LFS представляет из себя сочетание книги и загрузочного диска для сборки собственной операционной системы на базе ядра Linux полностью с нуля из исходных кодов. Отлично подходит для изучения операционных систем GNU/Linux, но абсолютно не подходит для начинающих. Очень не рекомендую тем, кто еще не умеет пользоваться Linux’ом. И очень рекомендую тем, кто хочет более плотно изучить что и как работает в операционных системах на базе ядра Linux и готов на это потратить какое-то время. Официальный сайт — http://www.linuxfromscratch.org/.

Для тех, кто освоил первую часть,- сборку основной части операционной системы,- есть вторая часть, которая называется Beyond Linux From Scratch (BLFS). Из недостатков этого способа можно отметить, пожалуй, только количество времени, которое потребуется.

simple-cdd

Гораздо менее суровое средство сборки своего дистрибутива на базе Debian. Позволяет достаточно быстро собрать свое установочный образ, включающий необходимый набор пакетов. Есть официальная страничка в вики Debian, но она, похоже, достаточно стара и давно не обновлялась. Это один из самых простых и быстрых способов собрать свой дистрибутивный образ, но придется предварительно прочитать официальный How-To и посмотреть страницу руководств.

SUSE Studio

Один из наиболее простых способов собрать собственную операционную систему на базе ядра Linux и свободного программного обеспечения. Если быть более точным, то это возможность собрать свой потомок OpenSUSE или SUSE Linux Enterprise. Для сборки своего дистрибутива надо просто зарегистрироваться на сайте http://susestudio.com. Для хранения образов дается 15 гигабайт. Вкратце сборка своего дистрибутива выглядит так:

  • Регистрируетесь на сайте http://susestudio.com
  • Выбираете начальную конфигурацию операционной системы
  • Модифицируете ее
  • При необходимости загружаете необходимые пакеты со своими приложениями
  • Создаете образ

Более подробно расписывать не буду, на сайте всё очень просто и понятно. SUSE Studio позволяет создать следующие типы образов:

  • Образ для USB-флэшки
  • Live CD
  • Установочный образ ISO
  • Образ диска виртуальной машины в формате .vmdk
  • Образ виртуальной машины в формате OVF, который импортируется в гипервизор
  • Образ гостевой системы для Xen (.img)
  • Образ диска для Hyper-V (.vhd)
  • Образ для SUSE Cloud / OpenStack / KVM (.qcow2)

Кроме того, на сайте есть галерея уже готовых операционных систем, в которой можно выбрать готовую конфигурацию и изменять уже ее.

Ubuntu Builder

Программа для сборки дистрибутива на базе Ubuntu. Собственно, получится обычная Ubuntu нужной конфигурации. Проект закрылся 10 марта 2014 года, поэтому сложно его рекомендовать к использованию. Если есть желание с ним ознакомиться, это можно сделать здесь. Там же указана команда для подключения репозитория, из которого можно установить пакет ubuntu-builder. Если не заметили, то вот она:

Вообще это был достаточно известный проект в свое время. Жаль, что закрылся.

Novo Builder

Еще одна программа для сборки дистрибутива, которую надо устанавливать. Устанавливается она при помощи скрипта, который можно взять здесь. Скрипт сам добавит репозиторий и поставит пакеты. Это, пожалуй, лучшая на данный момент программа для сборки дистрибутива на базе Ubuntu по простоте использования. И рассказать-то больше особо нечего, достаточно поставить и посмотреть. Всё интуитивно понятно.

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

Собираем ядро Linux

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

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

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

Получение исходников ядра

Самое первое что нужно сделать — это скачать исходники ядра. Исходники лучшие брать с сайта вашего дистрибутива, если они там есть или официального сайта ядра: kernel.org. Мы рассмотрим загрузку исходников с kernel.org.

Перед тем как скачивать исходники нам нужно определиться с версией ядра которую будем собирать. Есть две основных версии релизов — стабильные (stable) и кандидаты в релизы (rc), есть, конечно, еще стабильные с длительным периодом поддержки (longterm) но важно сейчас разобраться с первыми двумя. Стабильные это, как правило, не самые новые, но зато уже хорошо протестированные ядра с минимальным количеством багов. Тестовые — наоборот, самые новые, но могут содержать различные ошибки.

Итак когда определились с версией заходим на kernel.org и скачиваем нужные исходники в формате tar.xz:

В этой статье будет использована самая новая на данный момент нестабильная версия 4.4.rc7.

Получить исходники ядра Linux можно также с помощью утилиты git. Сначала создадим папку для исходников:

Для загрузки самой последней версии наберите:

git clone https://github.com/torvalds/linux

Распаковка исходников ядра

Теперь у нас есть сохраненные исходники. Переходим в папку с исходниками:

Или если загружали ядро linux с помощью браузера, то сначала создадим эту папку и скопируем в нее архив:

Распаковываем архив с помощью утилиты tar:

И переходим в папку с распакованным ядром, у меня это:

Автоматическая настройка сборки ядра Linux

Перед тем как начнется сборка ядра linux, нам придется его настроить. Как я и говорил, сначала рассмотрим автоматический вариант настройки сборки ядра. В вашей системе уже есть собранное, настроенное производителем дистрибутива, и полностью рабочее ядро. Если вы не хотите разбираться с тонкостями конфигурации ядра, можно просто извлечь уже готовые настройки старого ядра и сгенерировать на их основе настройки для нового. Нам придется лишь указать значения для новых параметров. Учитывая, что в последних версиях не было и не намечается серьезных изменений можно отвечать на все эти параметры как предлагает скрипт настройки.

Параметры используемого ядра хранятся в архиве по адресу /proc/config.gz. Распакуем конфиг и поместим его в нашу папку утилитой zcat:

zcat /proc/config.gz > .config

А дальше запускаем скрипт адаптации настроек:

В процессе его работы нужно будет ответить на несколько вопросов. Это новые параметры, которые изменились или были добавлены в новое ядро и поддержка нового оборудования, в большинстве случаев можно выбирать вариант по умолчанию. Обычно есть три варианта y — включить, n — не включать, m — включить в качестве модуля. Рекомендованный вариант написан с большой буквы, для его выбора просто нажмите Enter.

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

Ручная настройка ядра Linux

Ручная настройка — сложный и трудоемкий процесс, но зато она позволяет понять как работает ваша система, какие функции используются и создать ядро с минимально нужным набором функций под свои потребности. Мы рассмотрим только главные шаги, которые нужно выполнить чтобы ядро собралось и заработало. Со всем остальным вам придется разбираться самому опираясь на документацию ядра. Благо в утилите настройки для каждого параметра есть обширная документация которая поможет вам понять какие еще настройки нужно включить.

Начнем. Для запуска меню настроек ядра linux наберите:

Откроется вот утилита с интерфейсом ncurses:

Как видите, некоторые обязательные опции уже включены, чтобы облегчить вам процесс настройки. Начнем с самых основных настроек. Чтобы включить параметр нажмите y, чтобы включить модулем — m, для перемещения используйте клавиши стрелок и Enter, возвратиться на уровень вверх можно кнопкой Exit Откройте пункт General Setup.

Читать еще:  Ошибка системного времени ютуб

Здесь устанавливаем такие параметры:

Local Version — локальная версия ядра, будет увеличиваться при каждой сборке на единицу, чтобы новые ядра при установке не заменяли собой старые, устанавливаем значение 1.

Automatically append version information to the version string — добавлять версию в название файла ядра.

Kernel Compression Mode — режим сжатия образа ядра, самый эффективный lzma.

Default Hostname — имя компьютера, отображаемое в приглашении ввода

POSIX Message Queues — поддержка очередей POSTIX

Support for paging of anonymous memory — включаем поддержку swap

Control Group support — поддержка механизма распределения ресурсов между группами процессов

Kernel .config support и Enable access to .config through /proc/config.gz— включаем возможность извлечь конфигурацию ядра через /proc/config.gz

Здесь все, возвращаемся на уровень вверх и включаем Enable loadable module support, эта функция разрешает загрузку внешних модулей, дальше открываем его меню и включаем:

Module unloading — поддержка отключения модулей

Forced module unloading — принудительное отключение модулей

Опять возвращаемся назад и открываем Processor type and features:

Processor family (Opteron/Athlon64/Hammer/K8) — выбираем свой тип процессора.

Опять возвращаемся и переходим в раздел File systems, тут установите все нужные галочки.

Обязательно включите The Extended 3 (ext3) filesystem и The Extended 4 (ext4) filesystem — для поддержки стандартных ext3 и ext4 файловых систем

Возвращаемся и идем в Kernel hacking.

Здесь включаем Magic SysRq key — поддержка магических функций SysRq, вещь не первой необходимости, но временами полезная.

Остался еще один пункт, самый сложный, потому что вам его придется пройти самому. Device Drivers — нужно пройтись по разделам и повключать драйвера для своего оборудования. Под оборудованием я подразумеваю нестандартные жесткие диски, мышки, USB устройства, веб-камеры, Bluetooth, WIFI адаптеры, принтеры и т д.

Посмотреть какое оборудование подключено к вашей системе можно командой:

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

Чтобы сохранить настройки переместите указатель с помощью стрелок вправо-влево, з позиции Select в позицию Save и нажмите Enter, потом еще раз подтвердите сохранение:

Чтобы выйти нажмите пару раз кнопку Exit.

Сборка ядра Linux

После завершения всех приготовлений может быть выполнена сборка ядра linux. Для начала процесса сборки выполните:

make && make modules

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

Установка нового ядра

Когда ядро и модули будут собраны новое ядро можно устанавливать. Можно вручную скопировать файл ядра в папку загрузчика:

cp arch/x86_64/boot/bzImage /boot/vmlinuz

А можно просто выполнить установочный скрипт, сразу установив заодно и модули:

sudo make install && sudo make modules_install

После установки не забудьте обновить конфигурацию загрузчика Grub:

grub-mkconfig -o /boot/grub/grub.cfg

И перезагружаем компьютер чтобы увидеть новое ядро в работе:

Выводы

Вот и все. В этой статье мы подробно рассмотрели как собрать ядро Linux из исходников. Это будет полезно всем желающим лучшие понять свою систему, и тем, кто хочет получить самую новую версию ядра в своей системе. Если остались вопросы, задавайте комментарии!

Блог начинающего линуксоида.

советы, руководства, инструкции.

Страницы

вторник, 1 декабря 2015 г.

Собираем своё собственное ядро Linux

Иногда может потребоваться собрать своё собственное ядро Linux. Причины для этого могут быть следующими:

  • вам нужно чистое ядро, без дистрибутивных патчей;
  • вы хотите наложить собственные патчи (коих очень много);
  • вы хотите собрать ядро под свою конфигурацию железа, выкинуть из него лишнее и/или заточить под определённые задачи;
  • вы хотите включить в состав ядра эксперементальный драйвер или файловую систему, которой нет в «ванильном» ядре (например ZFS или Raiser 4);

В сборке ядра нет ничего сложного. Важно лишь понимать, для чего это делается, а также не трогать те параметры, которые вам непонятны. В этой заметке я опишу два примера сборки ядра в Debian-based дистрибутивах. В первом примере я покажу как просто собрать чистое, что называется «ванильное» ядро (такое, каким его выпускает Линус Торвальдс), а во втором — как применить собственные патчи и провести оптимизацию ядра. Сразу напишу два предупреждения:

  • вам нужно будет пересобирать ядро при каждом его обновлении (качать «обновляющий патч», накладывать его и собирать ядро);
  • пересобранное ядро может не заработать, если в вашей системе используются какие-нибудь хаки для обеспечения работоспособности того или иного оборудования;
  • при неправильном конфигурировании ядра, особенно в случае неграмотного или бездумного наложения патчей, вы можете получить либо тормозящую до ужаса систему, либо лишиться её вовсе.

ВСЕ ДЕЙСТВИЯ ВЫ ПРОИЗВОДИТЕ НА СВОЙ СТРАХ И РИСК!

Простая сборка ядра без применения патчей.

Исходные коды ядра Linux находятся на сайте kernel.org. Там же находятся «обновляющие патчи». Что нам нужно? Качаем с сайта тарболл (архив) с последней стабильной версией ядра (на момент написания статьи, это версия 4.3). Качаем любым удобным способом. Далее нам потребуются инструменты для сборки:

sudo apt install build-essential gcc kernel-package patch
sudo apt-get build-dep linux

После того как установятся все необходимые инструменты, распакуйте архив с кодом ядра в любую удобную директорию. Пусть это будет /home/user/KERNEL, где «user» — имя пользователя системы. Далее откройте терминал и перейдите туда:

Осталось собрать ядро:

fakeroot make-kpkg -j 3 —initrd —append-to-version=-custom kernel_image kernel_headers #-j 3

Цифра 3 после j — это количество ядер вашего процессора + 1. То есть для двухядерного это 3, для 4-х ядерного это 5 и так далее.
-custom — здесь можете указать удобное имя для ядра, чтобы было легче его отличить от дистрибутивного.
kernel_image и kernel_headers — это само ядро и его заголовочные файлы соответственно. Headers необходимы для сборки драйверов и модулей ядра, а также для некоторых других целей. После выполнения этой команды, начнут появляться несколько вопросов по конфигурированию ядра. Так как мы всё оставляем по умолчанию, просто жмите Enter пока не начнётся сборка. В зависимости от мощности вашего компьютера, сборка может занять от 15-20 минут до нескольких часов. После сборки, в директории /home/user появятся два deb-пакета: ядро и заголовки. Установите их командой:

sudo dpkg -i linux-image-4.3*deb linux-headers-4.3*deb
sudo update-grub

и перезагрузитесь. В меню GRUB теперь можно будет выбрать для загрузки системы другое ядро.

Сборка ядра с применением патчей и дополнительной конфигурации.

В этот раз мы соберём оптимизированное ядро для работы со звуком и видео, а также для большей отзывчивости системы. Для этого мы применим два патча: так называемый патч для режима реального времени (PREEMPT RT) и патч для компилятора GCC, чтобы добавить дополнительные опции для процессорных оптимизаций. Для начала, что такое патч? Патч — это текстовый файл, который создаётся программой diff, содержащий в себе изменения кода в определённых частях, которые при применении патча, заносятся в нужные места. Так как RT-патч выходит с большим запаздыванием, последняя его версия — для ядра 4.1. Впрочем это не так важно. По той же схеме, качаем ядро 4.1 с kernel.org и распаковываем в директорию /home/user/KERNEL-CUSTOM. Теперь качаем патчи. PREEMPT_RT и GCC Patch. Из скачанных архивов, нам нужны файлы с расширением .patch, которые необходимо положить в каталог с исходным кодом ядра. То есть в /home/user/KERNEL-CUSTOM. Перед применением патчей нужно убедиться, что не будет никаких ошибок. Открываем терминал:

cd /home/user/KERNEL-CUSTOM
patch -p1 -i patch-4.1.13-rt15.patch —dry-run

Опция —dry-run позволяет симулировать применение патча, без внесения изменений в файлы. Если ошибок не обнаружено (см. скриншот) — примните патч уже без опции —dry-run. Аналогичные действия проведите и со вторым патчем. Не применяйте одновременно больше одного патча! Теперь нам нужно сконфигурировать наше ядро. На выбор нам предлагаются следующие варианты:

make config — в терминал будут поочерёдно выводиться вопросы о конфигурации той или иной подсистемы ядра. Крайне долгий и утомительный процесс. Забудем о нём 🙂
make oldconfig — будет задействована конфигурация работающего в данный момент ядра. Так как мы собираем своё с нуля, этот способ также бесполезен.
make defconfig — аналогично предыдущему, только значения будут по умолчанию. Такими, какими его задали разработчики ядра. Аналог первого способа сборки.
make menuconfig — псевдографический интерфейс на основе библиотеки Ncurses. На экран будет выводиться интерфейс с удобным иерархическим меню. Управления с помощью клавиш направления, пробела и клавиши TAB. Рекомендуется если вы собираете ядро в системе, не имеющей графической оболочки.
make gconfig — графический интерфейс на основе GTK, рекомендуется в окружениях GNOME, Mate, Xfce, Cinnamon, Unity и прочих, использующих GTK.
make xconfig — графический интерфейс на основе Qt. Рекомендуется в KDE. Так как в моей системе используется KDE, я воспользуюсь этим способом. Помимо этого есть ещё пара способов, но их применения ни чем особенным не отличается. Итак, после применения патчей, запускаем make xconfig и перед нами предстаёт вот это:

Читать еще:  Принципы архитектуры предприятия

Первым делом выключаем dynticks. Для этого идём в Timers subsystem и выбираем Periodic timer ticks

Идём ниже и включаем параметр Full preemptible kernel (RT). Режим жёсткого реального времени.

Листаем ниже и в пункте Timer frequency выставляем частоту системных прерываний на 1000 Гц

Полностью выключаем любое энергосбережение. Это важно! Слева ищем пункт Power management and ACPI options и снимаем галочку с ACPI. Также выключаем энергосбережение процессора

Вот и всё. При желании (и тщательном изучении документации), вы можете внести дополнительные изменения в конфигурацию (отключить лишние драйверы, задействовать дополнительные подсистемы и так далее). Теперь сохраняем конфиг через File — Save, закрываем конфигуратор и собираем ядро:

fakeroot make-kpkg -j 3 —initrd —append-to-version=-rt-custom kernel_image kernel_headers #-j 3
sudo update-grub

На моём компьютере с процессором Intel Core i3-550 (3.2 ГГц), прирост производительности был довольно ощутимый. Но самое главное — при работе в LMMS и Kdenlive, исчезли периодические заикания рассинхронизация звуковой и видеодорожек, а также подвисания при сильной нагрузке на жёсткий диск. Вывод — работает! Напоследок опишу два модифицированных ядра, которые весьма популярны в кругах линуксоидов:

PF-kernel — самый популярный набор патчей от украинца Александра Наталенко (aka post-factum). Это набор патчей, которые не входят в основное ядро, но обеспечивают повышенную отзывчивость системы, предоставляют альтернативную подсистему гибернации, более быструю, нежели основная, а также уменьшают использование памяти с помощью техники объединения одинаковых страниц. В набор входят:

  • планировщик процессов BFS от Кона Коливаса (Con Kolivas) с дополнительными исправлениями от Альфреда Чена (Alfred Chen);
  • планировщик ввода-вывода BFQ от Паоло Валенте (Paolo Valente), Арианны Аванзини (Arianna Avanzini) и Мауро Маринони (Mauro Marinoni);
  • подсистема гибернации TuxOnIce от Найджела Каннингема (Nigel Cunningham);
  • реализация техники слияния одинаковых страниц в памяти UKSM от Най Ся (Nai Xia);
  • патч от Graysky, расширяющий список процессоров для оптимизации ядра компилятором (тот, что мы применили выше)

Репозиторий модифицированного ядра. Официальный сайт.

Zen-kernel — второй по популярности, но первый по количеству патчей набор. Zen Kernel использует комбинацию нескольких проектов, обновляет код через git-репозиторий, а также имеет несколько специфичных для Zen вещей, стремящихся удовлетворить большинство потребностей пользователей, реализовав их в одном ядре. Некоторые возможности патча: drm-next, wireless-testing, выбор планировщиков CPU (CFS/BFS), BFQ-планировщик ввода-вывода, aufs, unionfs, reiser4, tuxonice, PHC и многие другие вещи, которые замечательно подойдут для оптимизации настольных систем или ноутбуков. Всё это доступно в виде одного патча к ванильному ядру. Официальный сайт. GIT- репозиторий. Пакеты для Debian/Ubuntu.

На сегодня, пожалуй, всё. Больше информации вы можете найти в ссылках к статье. Всё описанное в статье проверено мной на многих конфигурациях.

Как создать свою ос на ядре linux

By signing up, you agree to our Terms of Service and Privacy Policy.

Новичкам в сфере администрирования достаточно сложно определиться с выбором дистрибутива LINUX, так как их разработано очень большое количество и каждый из них имеет свои особенности и предназначение. Популярные мифы о Linux рассмотрены тут .

В данной статье рассмотрим популярные дистрибутивы, которые в основе используют ядро LINUX. Дистрибутив – это само ядро и набор самого разного программного обеспечения, тоесть это операционная система на основе LINUX. Уязвимости Linux и их виды по ссылке .

В данно статье рассмотрим дистрибутивы:

  • Debian
  • Red Hat
  • Arch Linux
  • Gentoo
  • Linux From Scratch
  • ChromeOS
  • Android
  • Slackware
  • OpenWrt 10. Tizen
  • ОС для суперкомпьютеров

Debian и основанные на нем системы – набор дистрибутивов, которые используют систему управления пакетами Deb. Она была создана для Debian и сейчас довольно часто используется популярных дистрибутивах, к примеру, Debian, Ubuntu, LinuxMint, AstraLinux, Elementary и другие. В их основе лежит оригинальное ядро Linux с несколькими исправлениями, которые только убирают ошибки. Преимущества Debian рассмотрены в этой статье.

Вторая по популярности система, которая основана на ядре Linux, это Red Hat . Компания Red Hat создала собственный менеджер пакетов — Rpm. Поэтому все традиционные дистрибутивы Linux разделились на две стороны — те, которые используют deb и поклонники rpm. Не можно сказать, что какая-то система лучше или хуже, ведь каждая из них имеет преимущества и недостатки. Систему управления пакетами RPM используют дистрибутивы CentOS, Fedora, Red Hat, OpenSUSE и другие менее популярные, но все же востребованные ОС.

Следующая в обзоре система, которая не использует пакеты Deb и Rpm. Это дистрибутив ArchLinux . В основе его работы собственный пакетный менеджер pacman, который имеет аналогичные функции что и deb, но в дополнение реализована простая система скользящих релизов. Это обеспечивает всегда новое ПО. Arch достаточно популярный и на его основе разработаны другие дистрибутивы — Manjaro, Antergos, Cinnarch.

Система Gentoo разработана для пользователей, которым необходима возможность компилировать свою систему самостоятельно. Это позволяет выбрать программное обеспечение, а также получить оптимизацию под свое оборудование. Дистрибутив Gentoo разработан на основе ядра Linux, с использованием пакетного менеджера emerge. Пользователь системой получает скользящие релизы, а также возможность легко скомпилировать операционную систему на своем ПК. Пакетный менеджер emerge уже содержит готовые сборочные скрипты, поэтому не нужно ничего дописывать.

LINUX FROM SCRATCH – специальный это набор инструментов, которые позволяют вам собрать собственный дистрибутив на основе ядра Linux. Вам предоставляется ядро и необходимы исходники нужных программ. Вы создаете свой дистрибутив начиная от системы инициализации и командной оболочки и заканчивая окружением рабочего стола.

Компания Google выпустила свою специализированную ОС для нетбуков на ядре Linux. ChromeOS основана на Gentoo, правда эти операционные системы в корне разные, поэтому объединять их в один пункт не стоит. Google реализовала идею облачной операционной системы Linux. При этом Ваше рабочее пространство — это браузер, где предоставляется возможность редактировать документы, работать с видео и терминал Linux в браузере. Все файлы хранятся в облаке.

ANDROID наиболее популярная ОС для мобильных телефонов также использует ядро Linux. Правда, от Linux здесь осталось исключительно ядро. Все остальное Google заменила различными фреймворками. Возможности Linux ограничены, но в терминале можно работать с командами Linux, а в chroot окружении можно запустить Linux дистрибутив. Поэтому ANDROID также считается дистрибутивом Линукс.

SLACKWARE – очень старый дистрибутив Линукс. Когда-то на нем было основано несколько дистрибутивов – Blacktrack, Slax, VectorLinux и др. Но со временем он стал не популярным. Система использует собственный менеджер пакетов, который по сравнению с deb и rpm более слабый. Среди недостатков системы пользователи выделяют и то, что не поддерживается разрешение зависимостей. Команды для удаления и установки пакетов находятся в разных утилитах, что достаточно неудобно.

OpenWrt — специализированная ОС, которая предназначена для роутеров и маршрутизаторов на базе Linux. Система поставляется с урезанной версией библиотеки Си, стандартными утилитами Linux и BusyBox. Она разработана специально под маршрутизаторы, поэтому занимает мало места. Настройки выполняются с помощью коммандной строки.

Система TIZEN разработана для различных телевизоров, умных часов и других гаджетов. В основе ядро Linux. ОС разработала компаня Samsung. Ее устанавливают на много популярных гаджетов.

ОС для суперкомпьютеров . По исследованиям 2017 года операционные системы на базе Linux чаще всего используются на суперкомпьютерах.Так как каждая компания создает свое решение на базе ядра, и это решение идеально оптимизировано под ее цели и задачи. Так из 500 мощных суперкомпьютеров 498 работают на Linux и еще два на UNIX подобной системе IBM AIX. Как видим Линукс очень популярная ОС для решения разного рода задач.

На наших ВПС-серверах Вы можете протестировать работу большинства популярных дистрибутивов Линукс. Вам обязательно пригодятся полезные команды Linux , которые необходимо знать каждому пользователю. Обращайтесь и мы будем рады подобрать для Вас наилучший вариант!

Отличия операционных систем Windows и Linux в следующей статье .

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×