Skip to content

daniilvaino/SharpOS

Repository files navigation

SharpOS

SharpOS — это экспериментальная операционная система, которая строится как полностью C#-проект с управляемым развитием низкоуровневых компонентов.

SharpOS launcher

Миссия

Сделать ОС, где:

  • весь ключевой код ядра, загрузки и пользовательского окружения пишется на C#;
  • сборка выполняется через dotnet-инструменты;
  • архитектура остаётся freestanding и контролируемой, без зависимости от “обычного” desktop/runtime стека;
  • по мере развития расширяется собственный std/runtime слой под нужды ОС.

Стратегическая цель

Долгосрочная цель проекта — пройти путь от минимального freestanding C#-ядра к запуску полноценного .NET-окружения на SharpOS.

Практически это означает:

  1. Построить устойчивый low-level фундамент (boot, memory, paging, process/app ABI, diagnostics).
  2. Развивать собственные системные библиотеки и строково/utility/runtime-подсистемы.
  3. Поднять pipeline внешних приложений на C#.
  4. Дойти до состояния, где SharpOS способен хостить полноценный .NET runtime.

Принципы проекта

  • dotnet-first: всё, что возможно, должно собираться стандартным .NET toolchain.
  • C#-first: новые подсистемы приоритетно реализуются на C#.
  • contracts first: сначала API/ABI и границы слоёв, затем расширение функциональности.
  • incremental bring-up: маленькие проверяемые шаги вместо больших “переписать всё сразу”.

Контуры Репозитория

  • OS/src/Boot|Hal|Kernel|TestApp — код операционной системы и слои ядра.
  • apps/sdk — ABI/SDK для внешних приложений SharpOS.
  • std/ — отдельный контур разработки no-runtime std/runtime компонентов:
    • std/no-runtime/ — общий слой для замены частей отсутствующей стандартной библиотеки;
    • std/string-experiments/ — матрица экспериментов по string и runtime-инвариантам.

Правило: всё, что относится к эволюции std/runtime, развивается в std/, а не в слоях ОС.

Активная цель: расширять std/no-runtime/ и постепенно переводить unsafe-код в managed C#. Каждая новая строковая/утилитная операция — сначала в std/, затем используется из ядра и SDK. unsafe остаётся только на ABI-границах и там, где прямой доступ к железу неизбежен.

Что важно

Этот репозиторий фиксирует направление проекта и целевую архитектурную траекторию.
Текущий прогресс по этапам ведётся отдельно в папке done/.

Лицензия

CC0 1.0 Universal — общественное достояние. Используй, изменяй и распространяй в любых целях, в том числе коммерческих.

About

Экспериментальная ОС на чистом C# — NativeAOT/UEFI ядро, freestanding приложения, постепенный переход в managed

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors