В списъка на разработчиците на Linux ядрото са публикувани пачове

...
В списъка на разработчиците на Linux ядрото са публикувани пачове
Коментари Харесай

Нещо ново: Представена е версия на Linux ядрото за WebAssembly, която работи в браузъра

В листата на разработчиците на Linux ядрото са оповестени пачове с реализация на архитектурата Wasm за Linux ядрото, която разрешава компилиране на ядрото в междинния код WebAssembly за непосредствено осъществяване в уеб браузър без емулатори. Освен това за Linux ядрото планът е осъществил опция за осъществяване на изпълними файлове във формат „.wasm “ и е подготвил драйвера „ web console “ за преструване на работа с конзолата в браузъра. Проектът приготви и набор от принадлежности за опростяване на асемблирането на систематични среди, работещи в браузъра.

Като образец беше основана среда, основана на набора от помощни стратегии BusyBox и систематичната библиотека musl, компилирана в WebAssembly. Xterm.js се употребява като терминален емулатор за работа с такава среда. Отделно от това е пуснат демо уебсайт, който ви разрешава да оцените работата на врата, без да го компилирате сами. Пълна поддръжка за браузъри, основани на Chromium, и частична поддръжка за Firefox, където опциите за премахване на неточности са лимитирани. На актуалните компютри зареждането на компилацията на ядрото Wasm в браузъра лишава по-малко от секунда.

Проектът се създава от към две години и на сегашния стадий разрешава зареждане на ядрото в браузърите и осъществяване на типични стратегии. Работата към момента не е приключена и портът има някои проблеми и ограничавания. Например, към момента не е осъществена поддръжката на извикванията vfork и longjmp (BusyBox е патчван да работи без тях), няма опция за спиране на дилемите, MMU не е разполагаем (ядрото и процесите работят в едно и също адресно пространство), невероятно е да се трансформира към този момент зареден код, конзолата увисва след към 5 минути заради проблеми с таймера. Отбелязва се, че съществуващите ограничавания са преодолими, само че някои от тях изискват внедряване на спомагателни разширения на WebAssembly в браузърите. Такива разширения се предлага да бъдат осъществени за MMU и прекъсване на влакна.

Невъзможността за прекъсване на влакна в WebAssembly не е съвместима с планиращия модул на дилемите в ядрото, само че многозадачността е осъществена посредством заобиколно решение, като всяка нишка/задача е обвързвана със личен виртуален процесор, култивиран в обособен Web Worker. По този метод е реализирано редом осъществяване на процесите за сметка на енджина на браузъра и ядрото на хост операционната система, без да се употребява изпреварваща многозадачност и превключване на дилемите в ядрото, работещо в браузъра. Прекъсванията и сигналите не действат пълноценно в тази скица, а обособен виртуален процесор се употребява за даване на спирания на таймера и IPI (Inter-Processor Interrupt).

Обхватът на плана надвишава елементарното пускане на Linux среди в браузъри. Например портът може да се употребява за основаване на мултиплатформени WebAssembly стратегии, които употребяват характерни за Linux систематични извиквания. Реализацията на такива систематични извиквания може да бъде настрана конвертирана в WebAssembly и прикачена към приложението, което разрешава то да се употребява без свързване с ядрото на системата. Портът ще бъде потребен и за образуване на изолирано осъществяване на приложения, употребяващи WASI (WebAssembly System Interface).

Сред проектите се загатват опити с внедряване на графична поддръжка в среди с ядро, построено на WebAssembly – възнамерява се внедряване на EGL въз основата на браузърния API WebGL и даване на OpenGL ES. Планира се също по този начин да се осъществя поддръжка на формата за премахване на неточности Dwarf за премахване на неточности в кода ред по ред.

Източник: kaldata.com


СПОДЕЛИ СТАТИЯТА


КОМЕНТАРИ
НАПИШИ КОМЕНТАР