user12149646

user12149646

На Пикабу
93 рейтинг 0 подписчиков 0 подписок 2 поста 0 в горячем

Как без знаний Си собрать 64-битную операционную систему за 4 часа с помощью ИИ⁠⁠

Всем привет!

Принято считать, что разработка собственной операционной системы с нуля (bare-metal) — это прерогатива опытных low-level инженеров с годами опыта в Си, ассемблере и устройстве железа x86.

Сегодня я хочу поделиться нестандартным экспериментом и показать, что в эпоху LLM и развитого системного мышления порог входа в такие задачи кардинально изменился. Я не программирую на C вручную, но прекрасно понимаю системную логику. Поставив перед ИИ роль «исполнителя» и выступив в роли системного архитектора, я собрал полностью рабочую 64-битную ОС за 4 часа.

Проект получил название NYKLIMA OS. Рассказываю, как это устроено под капотом и с какими инженерными вызовами мы столкнулись.

Архитектура системы

Главной целью было не просто вывести строку «Hello World», а собрать жизнеспособное ядро с изоляцией процессов, графикой и собственной файловой системой.

Вот из чего состоит система:

  1. Собственный UEFI-загрузчик (uefi/):

    • Собирается в EFI/BOOT/BOOTX64.EFI без сторонних bootloader-зависимостей.

    • Читает KERNEL.ELF с FAT16-диска.

    • Строит таблицы страниц: Identity + HHDM (Higher-Half Direct Map) + high-half для самого образа ядра.

    • Настраивает и передаёт ядру framebuffer, карту памяти, RSDP и передаёт управление в kmain.

  2. Защита памяти и пользовательские процессы (Ring 3):

    • Настроен собственный GDT/TSS, реализация syscall/sysret.

    • Каждая программа работает в изолированном адресном пространстве. Падение процесса не валит ядро (реализован тест CRASH.ELF, вызывающий #PF — ядро безопасно убивает процесс и продолжает жить).

    • Память пользователя защищена по принципу W^X (запрет одновременно исполняемого и перезаписываемого кода) с установкой NX-бита на стек и кучу.

    • Указатели из Ring 3 строго валидируются ядром перед каждым чтением.

  3. Ядро (kernel/):

    • Память: bitmap-PMM (физическая память) + растущая multi-arena куча на free-list (авторост через vm_alloc_region).

    • Прерывания и железо: IDT, PIC/IOAPIC, PIT (100 Гц), PS/2 клавиатура и мышь. Поддержка SMP (ACPI MADT, INIT/SIPI трамплин).

    • Потоки: кооперативное переключение с сохранением/восстановлением FPU/SSE-контекста (fxsave/fxrstor).

    • Файловая система: FAT16 с поддержкой LFN (длинных имён) поверх ATA PIO.

    • GUI: Оконный менеджер с поддержкой drag-and-drop, taskbar, z-order и backbuffer.

    • 3D-рендерер: Собственный программный движок NGL (Z-буфер, текстурирование, туман, альфа-блендинг).

    • Загрузчик программ: ELF-PIE загрузчик с встроенной API-таблицей ядра.

  4. Интеграция с VirtualBox VMMDev:

    • Мышь работает через родной PCI-интерфейс VirtualBox (80ee:cafe). Курсор хоста синхронизируется 1:1 без захвата.

Мост «CUDA → FAT16 → NGL»

Одной из самых интересных фич стал пайплайн подготовки ресурсов. В качестве пользовательской программы для Ring 3 мы запустили игру SNAKE.

При этом спрайты для игры рендерятся прямо на хост-видеокарте (RTX 3050) через CUDA-скрипт, упаковываются на FAT16-диск и затем нативно подтягиваются 3D-рендерером NGL внутри самой операционки.

Как это собирается и запускается

Вся сборка ядра, загрузчика и диска автоматизирована в PowerShell-скрипте:

PowerShell

Set-Location -LiteralPath "$HOME\Documents\операционка" & .\build.ps1 # Сборка ядра, BOOTX64.EFI и образа nyklima-uefi.img & .\build.ps1 -Run # Сборка + конвертация в VMDK + автоматический запуск VirtualBox

Управление в системе:

  • 1 — запуск игры SNAKE в режиме Ring 3 (управление WASD, Esc — выход);

  • 2 — запуск CRASH.ELF (демонстрация перехвата падения процесса ядром);

  • F — Файловый менеджер;

  • G — Интерактивный 3D-куб.

Главный вывод эксперимента

Этот проект доказал мне важную вещь: в 2026 году ключевым навыком инженера становится умение мыслить архитектурно.

Не зная синтезиса Си до мелочей, но понимая, как функционирует память, как устроены ring-уровни процессора, таблицы страниц и прерывания, можно выступать «дирижером» для ИИ и собирать сложные системные концепты (PoC) за считанные часы.

Код проекта открыт и доступен на GitHub: https://github.com/dimaxp4?tab=overview&from=2026-08-01&to=2026-08-31

Показать полностью

Хочу создать игру⁠⁠

Хочу сделать игру выживание среди дикой природы типо деревья умеют ходить камни тоже то есть все что не должно ходить оно будет главным врагом а задача игрока построить убежище и с каждым днём все сильнее враги и умнее правда не знаю какой движок взять 🤔

Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества