Armsoup

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

Как я написал консольную «ОС» на C++17 со своим Driver SDK после 27 версий на батниках

Привет, Пикабу!

Хочу рассказать историю одного эксперимента, который зашёл слишком далеко. Около двух лет назад я ради фана начал делать маленькую консольную операционную систему под названием ARSLANIUS.

Первые 27 версий были написаны на чистых батниках (.cmd). Это как-то работало, но было дико медленно, хрупко, а расширять систему стало настоящим адом. Поэтому я взял и переписал всё с нуля на native C++17 (x64).

И вот что получилось в текущей ARSLANIUS 28:

  • Полная портативность: Один доверху забитый .exe файл. Работает из любой папки, не требует установки.

  • Фичи эмуляции ОС: Свой загрузчик (Boot Manager) с Safe Mode, реестр конфигурации (REG.cfg), система пользователей с ACL (5 уровней привилегий + команда sudo) и фоновые службы (SysPulse, NetMonitor).

  • Среда восстановления: Свой Recovery Environment, в котором есть Startup Repair, создание бэкапов системы и 19 кастомных видов BSOD (синих экранов смерти).

  • Свой Driver SDK: Самая пушка. Любой желающий может написать свой драйвер под мою систему! Это обычная C++ DLL, скомпилированная в формат .asd. Она закидывается в папку Drivers и при следующем запуске регистрирует новые команды в консоли без пересборки самого ядра.

Интерактивный квест при первом запуске (OOBE):
Чтобы вы понимали уровень проработки: когда пользователь запускает софт первый раз, система выдает реальный BSOD 0x00000001a CONFIG_ROOT_NOT_FOUND. Из него юзер переходит в Recovery Environment, запускает Startup Repair (который реально генерирует структуру папок и конфигов), система перезагружается и вылетает окно OOBE (первой настройки).

И да, в этот момент из динамиков начинает играть легендарная музыка установки Windows XP (title.wma), которую я перегнал в .wav и зашил прямо внутрь .exe через файлы ресурсов ради портативности! Звуки входа и выхода из XP при логине пользователей тоже на месте.

Почему C++17 и как это собрано:
Мне хватило std::filesystem. Всё остальное — сырые указатели, ручное управление памятью и WinAPI. Никаких тяжелых сторонних библиотек.

Ключевой момент — я компилирую проект с флагом /MT (статическая линковка рантайма). Исполняемый файл из-за музыки весит побольше, зато зависимости равны нулю. ARSLANIUS без проблем запустится даже на чистой Windows 7, где никогда не было Visual C++ Redistributable.

И напоследок:
Мне 11 лет. Родился 22.09.2014. Первую версию на батниках начал писать в 9 лет, сейчас перешёл на плюсы. Я пишу это не ради хвастовства, а чтобы показать, что консольный софт можно пилить ради хардкорного фана в любом возрасте.

Для особо одаренных, у кого сразу возникнут вопросы: Батя сейчас в армии и код писать физически не может. Из родственников есть ещё 17-летняя сестра, но она с компом строго на «Вы», так что проект полностью мой. Для тех, кому нужен мануал — в Бут-меню просто жмите цифру 6, там встроенная дока.

Код полностью открыт, документация API на английском готова.
Ссылка на GitHub: https://github.com/Armsoup/ARSLANIUS_C-Plus_Plus
(Все ссылки на Telegram-чат для обсуждения и копию репозитория лежат в README).

Драйверы приветствуются! Задавайте любые вопросы про архитектуру, WinAPI, линкер или то, как я мучился с переходом от Batch — на всё отвечу в комментариях!

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества