Предлагаю сделать. Всё компилировать в WASM,
многопоточность пострадает, но на что не пойдёшь ради великой цели.
Программы, скомпилированные в WASM, теоретически могут работать на любой платформе (x86, ARM, RISC-V) и любой ОС без перекомпиляции.
Wasmer — это специально спроектированный «универсальный рантайм» для WebAssembly, который работает на Windows, Linux и macOS
Wasmer может компилировать WASM-пакет в нативный исполняемый файл для ОС (wasmer create-exe my_package),
Slint + Wasmer + winit = десктопное WASM-приложение без браузера.
wapm — это полноценный менеджер пакетов для WebAssembly от компании Wasmer
ecmaOS: операционная среда (ОС), работающая в браузере, но ключевой момент — ее нативным форматом бинарных файлов является WebAssembly
WASM (в его стандартной модели) не имеет доступа к системным вызовам ОС напрямую.
Все взаимодействие идет через специальный «интерфейс» — WASI (WebAssembly System Interface).
wasi-2d для 2D-графики (экспериментально)
wasi-webgpu для 3D-ускорения (proposal)
существует WASI window proposal.
linux-wasm: linux-wasm пытается сделать ядро Linux, которое нативно запускает WASM.
Добавляет в ядро Linux поддержку архитектуры WebAssembly и позволяет запускать .wasm-файлы как обычные исполняемые.
WASI уже умеет wasi-input — ввод через клавиатуру и мышь.
Полноценная реализация всех возможностей POSIX (fork, exec, pipes и т.д.) — это колоссальный объем работы. Проект linux-wasm — как раз попытка решить эту проблему на уровне ядра.
Инструменты сборки (например, wasi-libc) развиваются, но они пока не обеспечивают 100% совместимости со всем софтом, написанным на C/C++.
в классическом WASM (WASI Preview 1) поддержка многопоточности очень ограничена или отсутствует.
Это архитектурная проблема, над которой работают, но она не решена полностью.
В ближайшем будущем нас ждут кооперативные потоки (WASIp3),
В LLVM добавляются инструкции для переключения между виртуальными стеками (stack switching).
в долгосрочной перспективе — настоящая многопоточность через shared-everything-threads, она
требует изменений в ядре рантайма и, вероятно, будет готова не раньше, чем через несколько лет.
Реализация всего этого не требуется, оно само. Главное быть морально готовым.







