M

mylangos

Mylang OS 38.10

Учебная операционная система на собственном языке Mylang.

Status Version License


О проекте

Mylang OS 38.10 — это учебная ОС, написанная на языке Mylang. Внутри — собственное ядро, загрузчик, драйверы, шрифты и графический интерфейс.

Проект демонстрирует:

  • как выглядит код ядра на высокоуровневом языке;
  • как устроена загрузка через UEFI и BIOS;
  • как работают HEX-драйверы для VGA и PS/2;
  • как собрать минимальный GUI с окнами и приложениями.

Возможности

Ядро

  • GlobalInit — главная функция (аналог main), внутри доступно всё.
  • InSystemStarting — инициализация прошивки (UEFI/BIOS).
  • Kernel.InStarting — запуск ядра, интерфейса и MainLoop.
  • begin { ... } — блоки инициализации с полным доступом ко всем символам.
  • select systemtype — выбор редакции ОС: iot, standard, pro, enterprise, home, server.
  • dslasm array — собственный DSL для ассемблера (x86_64, protected mode).

Прошивка

  • Поддержка UEFI и BIOS.
  • Secure Boot, GPT, CSM.
  • Классы Uefi и Bios с полным жизненным циклом.

Драйверы (HEX)

Драйвер Файл Размер Описание
VGA vga.drv 512 байт Режим 320×200×256 (mode 13h)
PS/2 Keyboard ps2kbd.drv 30 байт Обработка IRQ1, чтение scancode
PS/2 Mouse ps2mouse.drv 58 байт Обработка IRQ12, сборка пакета

Шрифты (HEX)

Шрифт Файл Размер Формат
Default default.font 2048 байт 8×8, ASCII 0x00–0x7F
Mono mono.font 4096 байт 8×16, ASCII 0x00–0x7F

Графический интерфейс

  • Desktop — рабочий стол с иконками и таскбаром.
  • Terminal — командная строка.
  • Explorer — файловый менеджер.
  • Notepad — текстовый редактор.
  • Calculator — калькулятор.
  • Paint — рисование.
  • Settings — настройки системы.
  • Player / VideoPlayer — медиаплееры.
  • Browser — браузер.
  • Mail — почтовый клиент.
  • Calendar — календарь.
  • TaskManager — диспетчер задач.
  • ControlPanel — панель управления.
  • RDPClient / RDPServer — удалённый рабочий стол.

Пользователи

  • UserLogin, UserLogout, UserCreate, UserDelete
  • UserChangePassword, UserGetRole, UserSetRole
  • UserList, UserCurrent, UserIsAdmin

Логирование

  • KrnlMsg — запись в системный лог.
  • GraphicsMessage — всплывающие уведомления.
  • Log — журналирование сообщений.

Структура проекта