Найти тему
Реформтех

Ядро операционной системы "Areos"

Оглавление

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

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

  • Готовое, стабильно ядро, в котором проделана вся работа по взаимодействию процессов и устройств.
  • Высокая производительность.
  • Поддержка практически любого современного оборудования, за счёт открытых/закрытых драйверов.
  • Большое сообщество и поддержка. Много информации форумов и сайтов.

В общем это современное ядро, в котором есть всё, что может понадобится для AreasOS.

Интеграция ядра.

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

На стадии установки ядра, нам нужно установить и сами драйвера, которые будут скомпилированы вместе с ядром. Areos содержит свою файловую структуру, а эта структура значительно отличается от стандартных POSIX систем. Поэтому единственное изменение которое мы внесём, это путь до расположения всех драйверов, что бы установщик ядра на этапе установки правильно разместил все нужные нам драйвера в нашу систему.

Настройка ядра.

Конфигурация ядра которая идёт по умолчанию, не совсем подходит.

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

Вот пример минимальной выборки компонентов и опций, который нам понадобится:

  • Только 64битное ядро!.
  • Поддержка файловой системы Ext4.
  • Стандартный драйвер для видеокарты.
  • Драйвер мыши и клавиатуры.
  • .. И немного других системных опций :)
Опции ядра
Опции ядра

По мере необходимости, и расширение функционала ОС, конфигурация ядра будет меняться, добавляя новые драйвера и опции.

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

Первый запуск!

Тестирование Areos будет происходить на виртуальной машине.

Первое что загружается в ОС, это ядро. Если ядро удачно загрузится, то можно увидеть кучу системной информации от инициализации устройств и печальную фразу: «Kernel panic - not syncing: Requested init»

Ядро не смогло найти программу инициализации :(
Ядро не смогло найти программу инициализации :(

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

Буквально уже в следующем выпуске, расскажем о программе инициализации, которое на данный момент просит ядро.