Выпуск порта ядра Linux для WebAssembly, который можно протестировать в браузере
В списке рассылки разработчиков ядра Linux представлены патчи с реализацией архитектуры Wasm для ядра Linux. Это решение позволяет компилировать ядро Linux в промежуточный код WebAssembly для последующего прямого выполнения в веб‑браузере без задействования эмуляторов.
Также для ядра Linux этот проект реализовывает возможность запускать исполняемые файлы в формате «.wasm» и подготавливает драйвер web console для симуляции работы с консолью в браузере.
Дополнительно в рамках развития Wasm для Linux представлен инструментарий для упрощения сборки запускаемых в браузере системных окружений — проект Scripts for Building a Linux/Wasm Operating System на GitHub.
Для ознакомления сформировано окружение на базе скомпилированных в WebAssembly набора утилит BusyBox и системной библиотеки musl. В качестве эмулятора терминала для работы с подобным окружением задействован Xterm.js.
Отдельно разработчики проекта представили демонстрационный портал, позволяющий оценить работу порта Wasm для Linux без самостоятельной компиляции. Заявлена полная поддержка браузеров на движке Chromium и частичная поддержка Firefox, в котором ограничены возможности отладки. На современных компьютерах загрузка Wasm‑сборки ядра в браузере занимает менее секунды.
По информации OpenNET, проект Wasm для Linux развивается уже около двух лет и на текущем этапе позволяет загружать ядро в браузерах и выполнять типовые программы. Работа ещё не завершена, и порт имеет отдельные проблемы и ограничения. Например, ещё не реализована поддержка вызовов vfork и longjmp (к BusyBox применены патчи для работы без них), отсутствует возможность прерывания задач, недоступен MMU (ядро и процессы работают в одном адресном пространстве), невозможно изменение уже загруженного кода,
Читать на habr.com