Mylang OS 38.10
Учебная операционная система на собственном языке Mylang.
О проекте
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— журналирование сообщений.