Á póstlista kjarnaforritara Linux Uppfærslur sem innleiða Wasm arkitektúrinn fyrir kjarnann hafa verið gefnar út Linux, sem gerir kleift að þýða kjarnann í WebAssembly millikóða til síðari beinnar keyrslu í vafra án þess að nota hermir. Að auki, fyrir kjarnann Linux проектом реализована возможность запускать исполняемые файлы в формате «.wasm» и подготовлен драйвер «web console» для симуляции работы с консолью в браузере. Также подготовлен инструментарий для упрощения сборки запускаемых в браузере системных окружений.
Sem dæmi var umhverfi búið til með því að nota BusyBox gagnasafnið og musl kerfisbókasafnið þýtt í WebAssembly. Xterm.js er notað sem skipanahermir til að vinna með þetta umhverfi. Sérstök sýnishornssíða var sett á laggirnar, sem gerir notendum kleift að meta tenginguna án þess að þýða hana sjálfir. Fullur stuðningur er lýstur fyrir Chromium-byggða vafra og að hluta til stuðningur fyrir Firefox, sem hefur takmarkaða villuleitarmöguleika. Á nútímatölvum tekur það innan við sekúndu að hlaða Wasm kjarnaútgáfuna í vafra.
Verkefnið hefur verið í þróun í um tvö ár og gerir nú kleift að hlaða kjarnanum í vöfrum og keyra hefðbundin forrit. Verkinu er ekki enn lokið og flutningurinn hefur nokkur vandamál og takmarkanir. Til dæmis hefur stuðningur við vfork og longjmp köll ekki enn verið innleiddur (BusyBox hefur verið lagfærður til að virka án þeirra), það er engin möguleiki á að trufla verkefni, MMU er ekki tiltækt (kjarninn og ferlarnir keyra í sama vistfangsrými), það er ómögulegt að breyta þegar hlaðnum kóða og stjórnborðið frýs eftir um 5 mínútur vegna tímamælivandamála. Það er tekið fram að núverandi takmarkanir eru yfirstíganlegar, en sumar þeirra krefjast innleiðingar viðbótarviðbóta við WebAssembly í vöfrum. Svipaðar viðbætur hafa verið lagðar til fyrir MMU og þráðstöðvun.
Vanhæfni til að gera hlé á keyrslu þráða í WebAssembly stangast á við verkefnaáætlun kjarnans, en fjölverkavinnsla var útfærð með lausn með því að úthluta hverjum þræði/verkefni sínum eigin sýndar-örgjörva, sem keyrður var í sérstökum Web Worker. Þessi aðferð gerði kleift að keyra ferla samsíða með því að nota vafravélina og kjarna stýrikerfisins án þess að grípa til fyrirbyggjandi fjölverkavinnslu eða verkefnaskipta í kjarna vafrans. Truflanir og merki eru ekki að fullu virk í þessari uppsetningu og sérstakur sýndar-örgjörvi er notaður til að afhenda tímastilli og IPI (Inter-Processor Interrupt) truflanir.
Область применения проекта выходит за рамки простого запуска Linux-окружений в браузерах. Например, порт может применяться для создания многоплатформенных WebAssembly программ, использующих специфичные для Linux системные вызовы. Реализация подобных системных вызовов может быть отдельно преобразована в WebAssembly и прикреплена к приложению, что позволит использовать его без привязки к системному ядру. Порт также будет полезен для организации изолированного выполнения приложений при помощи WASI (WebAssembly System Interface).
Áætlanirnar fela í sér tilraunir með að útfæra grafíkstuðning í umhverfi þar sem kjarnann er innbyggður í WebAssembly. Þeir hyggjast útfæra EGL og styðja OpenGL ES með því að nota WebGL API vafrans. Þeir hyggjast einnig útfæra stuðning við Dwarf kembiforritasniðið fyrir línu-fyrir-línu kóðakembingu.
Heimild: opennet.ru
