Skip to content

v0.2.0a

Latest
Compare
Choose a tag to compare
@alexeev-prog alexeev-prog released this 05 Sep 18:22
· 3 commits to main since this release

Реализовано

  • Собственный загрузчик с переходом из реального режима в защищённый
  • GDT (Глобальная таблица дескрипторов) с полноценной сегментацией памяти
  • Продвинутое управление памятью с двумя уровнями аллокации:
    • Аллокатор на основе связанных блоков памяти с разделением и слиянием
    • Страничная организация памяти (Paging) с интеграцией в аллокацию
  • Драйверы оборудования:
    • VGA-экран с поддержкой цветного текста и прокрутки
    • Клавиатура (PS/2) с обработкой модификаторов (Shift, Ctrl, Alt, Caps Lock)
    • Таймер с программными прерываниями
    • ATA PIO с поддержкой LBA-адресации
  • Система прерываний (IDT, ISR, IRQ) с кастомными обработчиками
  • Командная оболочка "Keramika Shell" с поддержкой команд:
    • help — список команд
    • clear — очистка экрана
    • end — остановка CPU
    • malloc — выделение памяти
    • free — освобождение памяти
    • info — информация о системе
    • memdump — дамп памяти
    • И другие...
  • Библиотека KKLibC (Kintsugi Kernel LibC) включая:
    • Работу со строками, генерация числа и прочие стандартные вещи (stdlib.h)
    • Форматированный вывод (stdio.h)
    • Функции памяти (mem.h)
    • Библиотека для математики (math.h)
    • Типы данных (ctypes.h)
    • Общий заголовочный файл kklibc.h
    • Страничная обработка памяти (paging.h)
    • Библиотека стандартных методов (stdlib.h)

В разработке

  • Файловая система Fat12
  • Файловая система ext2
  • Планировщик задач
  • Пользовательское пространство
  • Inter-Process Communication
  • Загрузка ELF
  • Графический интерфейс
  • Многозадачность
  • Пользовательский режим
  • Сетевой стек
  • Псевдографический интерфейс
  • Полностью реализованный LibC

Готово

  • Виртуальная память (Paging)
  • Динамические аллокаторы памяти
  • Чувствительность к регистру
  • Драйвер ATA PIO
  • Система прерываний с обработкой исключений
  • Полноценная shell-оболочка

Изменения: v0.1.1a...v0.2.0a