Skip to content

AMDRIP/VLSMC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAND Elecorner 36 (VLSMC)

Концептуальная 32-битная bare-metal операционная система архитектуры x86 | Build 0001


О проекте

RAND Elecorner 36 — это собственная операционная система с нуля. Проект эволюционировал из концептуального симулятора в полноценную ОС архитектуры x86, работающую на «голом железе» (или в эмуляторе вроде QEMU).

Текущая реализация включает:

  • Свой двухстадийный загрузчик (Bootloader), умеющий читать FAT12/16.
  • 32-битное ядро (Protected Mode), написанное на C++17.
  • Менеджер физической (PMM) и виртуальной (VMM / Paging) памяти.
  • Планировщик задач (Multitasking) и обработку аппаратных прерываний (PIC/IDT).
  • Базовые драйверы ввода-вывода (Клавиатура, VGA, Таймер).
  • Загрузчик ELF и развитая инфраструктура Ring 3.
  • Поддержка файловой системы FAT16.

Стек технологий

ОС написана на низкоуровневых технологиях без использования сторонних высокоуровневых библиотек (freestanding):

  • Загрузчик (Bootloader): Ассемблер x86 (NASM).
  • Ядро (Kernel) и Пользовательские программы (User Space): C++17 (g++).
  • Сборка (Build System): Bash-скрипт (build.sh), mtools, qemu.

Системные API

Для взаимодействия программ с ОС и «железом» реализованы два основных интерфейса:

  • AppAPI: Высокоуровневая C++ обертка над системными вызовами для пользовательских приложений (I/O, IPC, память).
  • DriverAPI: Низкоуровневый интерфейс для драйверов, обеспечивающий доступ к портам ввода-вывода и MMIO.

Сборка и запуск

Сборка полностью автоматизирована скриптом build.sh. Он компилирует загрузчик, ядро, пользовательские приложения и упаковывает всё это в образы дисков (disk.img и data.img).

# 1. Запустите скрипт сборки
./build.sh

# 2. Запустите ОС в эмуляторе QEMU
qemu-system-i386 -fda disk.img -hda data.img -boot a

По умолчанию скрипт:

  1. Собирает загрузчик (bootloader.bin, STAGE2.BIN).
  2. Собирает и линкует ядро (KERNEL.BIN).
  3. Создает образ загрузочной дискеты disk.img (FAT12) и кладет туда ядро и Stage 2.
  4. Создает образ жесткого диска data.img (FAT16), куда записывает тестовые файлы (HELLO.TXT) и демо-программу пользовательского пространства (HELLO.ELF).

Структура репозитория

Директория Описание
boot/ Исходники двухстадийного ассемблерного загрузчика.
kernel/ Исходники 32-битного C++ ядра.
user/ Исходники тестовых программ и API для Ring 3.
docs/ Техническая документация и спецификации.

Документация и спецификации

Подробная информация о внутреннем устройстве и стандартах проекта:

Ядро и Глобальное видение

  • ARCHITECTURE.md — Разбор архитектуры ядра и подсистем.
  • FUTURE_VISION.md — Дорожная карта развития (GUI, Сеть, Микроядро).

Пользовательское пространство (Ring 3)

  • USER_APP_GUIDE.md — Руководство по созданию и портированию приложений.
  • LIBC_REQUIREMENTS.md — Спецификация стандартной библиотеки (безопасность и оптимизация).
  • POSIX_PROCESS_REQUIREMENTS.md — Требования к реализации fork() и exec().

Драйверы и Железо


Лицензия

TBD

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors