Четверг, а значит время проектов от подписчиков! 🌝
Тем, кто пропустил, что такое четверговые проекты от подписчиков, можно прочитать тут - https://t.me/tech_b0lt_Genona/4983
Слово автору @daniilvaino
---
Всем привет!
Меня зовут Даниил Вайно, я делаю свою x86_64 операционную систему SharpOS (https://github.com/daniilvaino/SharpOS)
Дотнет - это система которая может решить 80% задач из коробки, 90% с использованием библиотек. Много лет я задумывался над тем - а что если приделать дотнету ножки, запустить повершел и csharpREPL просто на железе и кайфовать ? А если ему еще приделать virtio драйвер то вообще можно закинуть в фаеркрекер и запустить сервер.
А что для этого нужно - операционная система. Так родился шарпос (https://github.com/daniilvaino/SharpOS).
Что такое шарпос - это операционная система унюкернел, написанная на чистом natveAOT C# с парочкой трюков. Абсолютно все написано на шарпах, шеллкоды ассемблирует комптайм и рантайм ассемблер тоже на C#, в образ с -skipCoreCLR вообще не попадает ни единого объекта и даже символа который не сгенерировался бы из C# ни libcmt, ни libm, ни даже плюсовые аллокаторы, единственное исключение - форк CoreCLR в соответствующем режиме линкуется прямо в ядро для запуска взрослых приложений, да-да - то самое "приделать к дотнету ножки".
Формат ядра и приложений PE, собирается обычным dotnet publish, есть sdk в виде .props для компиляции аот приложений против стд шарпоса (стд тоже написана на си шарпе).
Уже сейчас есть TUI лаунчер, простой шел, DOOM, два эмулятора NES, прерывания, вытеснения, чтение/запись в файл на FAT32, PS/2 и usb стек, AHCI и PCI драйверы, без единой строчки на плюсах, полная таблица фичей в ридми, а с влинкованным дотнетом - работает взрослый PowerShell с PSReadLine и любая другая управляемая сборка потенциально будет работать.
Покрытие стд огромное, большинство вещей можно скомпилировать аот против стд шарпоса и они заработают! Сетевого стека пока что нет, SMP нет, нет звука и GPU-ускорения, но работают исключения, GC, да и вообще практически вся машинария.
Проект молодой, быстро развивается (не без помощи агентов), но прямо сейчас можно склонировать собрать и протестировать в QEMU и на реальном железе (для сборки в текущем состоянии требуется Windows , инструкция в README).
Да и в целом если вас интересует C#, nativeAOT и OSDEV - буду рад познакомиться. Проект молодой, работаю я над ним один, к уважаемому @rusdacent как раз за этим и пришел, найти единомышленников и людей которым такое интересно.
Так же есть маленький канал посвященный именно шарпосу: https://t.me/sharpos_dev
Ссылка на репу https://github.com/daniilvaino/SharpOS
С уважением!
---
Post #24
9


