Skip to content

Latest commit

 

History

History
82 lines (59 loc) · 3.58 KB

File metadata and controls

82 lines (59 loc) · 3.58 KB

Linux Kernel Integration Guide

Язык: English (основной) | Русский

Файл по историческим причинам называется MIGRATION.md. Сейчас он описывает интеграцию Linux kernel в K1OS, а не разовую миграцию проекта.

Позиционирование K1OS

K1OS - это Linux-based операционная система.

Linux kernel используется как базовый системный слой, чтобы:

  • не тратить годы на разработку нового ядра с нуля;
  • опираться на зрелые подсистемы ядра и поддержку драйверов;
  • сосредоточить инженерные усилия K1OS на boot flow, rootfs, user space и инструментах.

Зоны ответственности: Kernel vs K1OS

Слой Linux kernel:

  • работа с оборудованием и драйверами;
  • планировщик, память, сеть и системные интерфейсы.

Слой K1OS:

  • архитектура загрузки (initramfs -> squashfs -> overlayfs -> switch_root);
  • формирование rootfs и userspace;
  • пакетный менеджмент через warp;
  • конвейер сборки и поставки ISO.

Актуальный процесс интеграции

1. Поддержка Kernel

  • Обновлять/фиксировать версию ядра в kernel/.
  • Держать изменения минимальными относительно upstream.
  • Проверять обязательные опции для K1OS (например squashfs/overlayfs/поддержка нужных блочных устройств).

2. Интеграция Boot Pipeline

  • Stage 1 (rootfs/init) монтирует виртуальные ФС и находит system.squashfs.
  • Stage 1 настраивает overlayfs:
    • persistent ext4 раздел (метка K1OS-DATA), или
    • tmpfs для RAM mode.
  • switch_root передает управление stage 2 (/sbin/init).

3. Userspace и пакеты

  • Компоненты userspace собираются через packages/*/build.sh.
  • Базовые утилиты собираются в rootfs/.
  • warp используется как нативный пакетный менеджер K1OS.

4. Валидация

  • Проверять загрузку ISO в RAM и persistent режимах.
  • Проверять запуск сервисов и shell-окружение.
  • Убеждаться, что изменения не ломают boot path и совместимость rootfs.

Команды сборки

# Kernel
make kernel

# RootFS + пакеты
make rootfs

# ISO
make iso

# Полная сборка
make all-build

# QEMU (RAM / persistent)
make qemu
make make-persist
make qemu-persist

Правила изменений Kernel

  • Патчить kernel только при необходимости для задач K1OS.
  • Каждое изменение kernel должно включать причину и влияние на boot/user space.
  • Предпочитать интеграцию и конфигурацию, близкую к upstream, вместо глубокого форка ядра.

Лицензия

Проект использует Apache License 2.0. Новый код и зависимости должны быть совместимы с лицензией.