шарпос
26 subscribers
17 photos
2 videos
3 files
3 links
Download Telegram
фуллтест шарпос на железе (лог пишется на усб)
1
build_pwsh.zip
103.8 MB
сборка шарпос с повершелом
эмулятор TriCNES
идеально (как и должен) проходит тест https://github.com/100thCoin/AccuracyCoin на шарпосе
(собран аот, 0 поправок в кодбазу)
👏2
👏1
оказывается повершел умеет делать вот так (ctrl + пробел = PSReadLine MenuComplete)
проверил в шарпосе - и все тоже самое получилось!
не ну мед
медовуха чисто
медятина
Стенд для управления шарпосом из ноутбука, рутированого телефона и умной розетки
Автоматически включает, посылает кнопки, удаленно можно накатывать сборку, выгружать и загружать файлы, серийные порты тоже считывает
👍2💋2
ураа!
Четверг, а значит время проектов от подписчиков! 🌝

Тем, кто пропустил, что такое четверговые проекты от подписчиков, можно прочитать тут - 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

С уважением!
---
💋2
Полная сборка и запуск шарпоса на маке
Please open Telegram to view this post
VIEW IN TELEGRAM
теперь шарпос можно собрать на любой системе (вин мак и линукс) !

Зависимости ставятся через mise
# 1. mise:  Windows — winget install jdx.mise;  macOS — brew install mise;  Linux — curl https://mise.run | sh
# 2. репозиторий (с подмодулями)
git clone --recurse-submodules https://github.com/daniilvaino/SharpOS.git && cd SharpOS
# 3. по желанию — форк CoreCLR (hosted-ярус); без него собирается чистое ядро
git clone -b sharpos/coreclr-port https://github.com/daniilvaino/dotnet-runtime-sharpos.git
# 4. инструменты, системные пакеты, подмодули, зависимости форка
mise trust && mise bootstrap # Linux со старым индексом apt: mise bootstrap --update


Payloads (необязательны, см. payloads/README.md):
payloads/DOOM1.WAD, картриджи .nes, PowerShell для гостя в payloads/pwsh/PowerShell-7.6.5-win-x64/.

Один раз включить mise в оболочке — тогда инструменты из него сами попадают в PATH в каталоге репозитория:
# PowerShell:  Add-Content $PROFILE 'mise activate pwsh --shims | Out-String | Invoke-Expression'
# bash / zsh: echo 'eval "$(mise activate bash --shims)"' >> ~/.bashrc (zsh — ~/.zshrc, mise activate zsh --shims)


Сборка и запуск:
cd dotnet-runtime-sharpos; ./build_clr_sharpos.ps1 -Clean; cd ..   # форк, если он есть (Release по умолчанию)
./build_launcher.ps1 # и build_fetch / aottests / benchaot / doom / shell / tricnes / fami
$env:SHARPOS_GUI=1; ./run_build.ps1 -UsbOnly # ядро + образ + QEMU; без форка: -SkipCoreClr
# из bash/zsh — через pwsh: SHARPOS_GUI=1 pwsh ./run_build.ps1 -UsbOnly


попробуйте у себя на компьютере если есть такая возможность, спасибо за обратную связь.