LINUX.ORG.RU
ФорумTalks

Ядро и драйверы NetBSD скомпилированы в JavaScript для запуска в web-браузере

 , , ,


0

0

Один из разработчиков NetBSD провёл интересный эксперимент, в полной мере продемонстрировавший гибкость средств портирования NetBSD под новые платформы. Используя Emscripten, в представление на языке JavaScript было скомпилировано изначально написанное на языке Си ядро NetBSD и набор связанных с ним драйверов. Таким образом была добавлена поддержка новой архитектуры «sys/arch/javascript», подразумевающей возможность запуска ядра NetBSD под управлением web-браузера.

копипаста с опеннета

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)

Видать главный философский вопрос на про жизнь, Вселенную и все такое «а на хрена оно надо?» их не беспокоит. Счастливые люди.

another ★★★★★
()
Ответ на: комментарий от another

кластер бсдятины на архитектуре нодеджиэс, под управлением интернет иксплорер 6 - говновебкодеры ликуют

Jetty ★★★★★
()
Ответ на: комментарий от Jetty

как хорошо, что я не вижу твои сообщения...

minakov ★★★★★
()

А bash они скомпилить ниасилили? Какие команды туда вводить можно? Хелп есть где-то?

Reset ★★★★★
()

мне тож один коробок отсыпьте, пожалуйста.

der_looser ★★
()
Ответ на: комментарий от Jetty

Прототип сервиса может быть выполнен в любом современном web-браузере, за исключением Internet Explorer.

unsigned ★★★★
()
Ответ на: комментарий от X10Dead

Отлично, а сендвичи оно умеет готовить?

Как только фаерфокс взлетит на тостере, так сразу научится.

cipher ★★★★★
() автор топика

Годное решение. Что удивило, так это возможность выполнения модулей ядра(драйверов и т.д.) в userspace. NetBSD хочет стать микроядерной ОС? Так они чего доброго и Linux обгонят, когда он разрастётся до размеров не поддерживаемого ядра-монстра... Парни молодцы. Собственно запустить ядро на JS у них получилось только благодаря технологии гипервизора(очень простого), который может запускать ядро и его части в userspace. Если бы не это, им бы пришлось писать эмулятор x86 для запуска ядра. А решения запуска модулей в высокоуровневом гиервизоре, в котором крутятся минимальные реализации ядра для запуска модулей ядра - это очень оригинальное решение. Благодаря этому не нужно переписывать модуль от монолитного ядра - одни и те же модули будут работать и на монолитном, и на микроядерном ядре. Красивое решение.

lucentcode ★★★★★
()

Что за мода всё на йавасцрипт переписывать?

harper
()

такое уже проделывали с линуксом, так что ничего нового тут нет, а про реальное использование речь очевидно не идет

wota ★★
()

Неинтересно, в самом деле. Мы вот hedgewars портировали в браузер, это поинтереснее задачка, и пользы больше.

unC0Rr ★★★★★
()

Хм, интересно, в смысле, упорото. Я когда нибудь смогу запустить в браузере запустить NetBSD с полноценным окружением? А потом запустить в ней еще браузер и в нем еще одну копию NetBSD с браузером и т. д. до бесконечности?

unknown_artist
()
Ответ на: комментарий от no-steam

Там был эмулятор x86. А тут мелкий гипервизор и всё на чистом js.

т.е. возможности запуска пользовательского ПО (например nginx) у них нет?

wota ★★
()
Ответ на: комментарий от unsigned

«Целью разработки является обеспечение компиляции в JavaScript отдельных драйверов NetBSD с возможностью обращения к их функциям из JavaScript-приложений. Например, можно создать web-сервис, способный напрямую работать с образами файловых систем»

ненужно в квадрате, вариант с линуксом хоть как-то можно назвать юзабельным - это же ообще бесполезно

wota ★★
()
Ответ на: комментарий от wota

это же ообще бесполезно

А кто-то мечтает о реальной пользе таких проектов? Всегда считал их приколом под упорином.

cipher ★★★★★
() автор топика
Ответ на: комментарий от wota

Запуск в виртуальной машине в браузере ты считаешь более перспективным, чем запуск непосредственно в браузере?

unsigned ★★★★
()
Ответ на: комментарий от wota

Сомнительная польза. Разве что какие-нибудь старые игрушки портировать.

cipher ★★★★★
() автор топика
Ответ на: комментарий от unsigned

Запуск в виртуальной машине в браузере ты считаешь более перспективным, чем запуск непосредственно в браузере?

запуск чего? для VM уже есть софт, что ты будешь запускать во втором случае?

wota ★★
()
Ответ на: комментарий от cipher

А кто-то мечтает о реальной пользе таких проектов?

/* Здесь должен быть едкий комментарий про светлое будущее, в котором всё работает в js, эмулируемом в js, эмулируемом в js. Но сама по себе новость настолько феерична, что я растерялся и не осилил. */

geekless ★★
()
Ответ на: комментарий от geekless

/* Здесь должен быть едкий комментарий про светлое будущее, в котором всё работает в js, эмулируемом в js, эмулируемом в js. */

А js самого нижнего уровня работает на js-машине. Страшный сон лиспера.

cipher ★★★★★
() автор топика
Последнее исправление: cipher (всего исправлений: 1)
Ответ на: комментарий от geekless

Там другое. Запускали эмулятор x86, написанный на JS, а в нем уже Linux. А в данном случае на JS перевели как код небольшого гипервизора, в который реализует небольшой набор высокоуровневых API, на которых работает модульная версия ядра NetBSD. То есть весь код по сути дела сконвертирован в JS, и нет никакого эмулятора x86 или другой платформы... Это разные вещи. Которые показывают как легко перенести NetBSD с одной платформы на другую, и сделать из монолитного ядра модульное(а заодно и кроссплатформенность этих модулей ядра), и как трудно оторвать от привязки к привычному железу Linux... В общем, NetBSD в данном вопросе здорово утёрла нос всем фанам монструозного ядра Линуса... Не зря Таннебаум ему намекал, что дизайн ядра у него уродливый... Если бы сообщество вложило столько же усилий в NetBSD, сколько вложили в Linux - NetBSD бы была на всех платформах, и про Linux и прочие ОС сейчас бы только историки знали...

lucentcode ★★★★★
()
Ответ на: комментарий от wota

Сконвертированные в JS программы. Зато быстродействие данного подхода будет заметно выше, чем в варианте с VM...

lucentcode ★★★★★
()
Ответ на: комментарий от lucentcode

Не совсем понял. Т.е. ядро непосредственно компилируется в js-код? Или же ядро перевели в промежуточный байт-код, который выполняет реализованный на js исполнитель?

И в каком формате там бинарники обычных процессов, если они там есть?

geekless ★★
()
Ответ на: комментарий от lucentcode

Нетбсд, как и линукс — монолитное ядро с поддержкой подгружаемых модулей. От компиляции в js оно менее монолитным не стало.

PolarFox ★★★★★
()
Ответ на: комментарий от lucentcode

Сконвертированные в JS программы

а тут NetBSD вообще не нужна, т.к. все что она дает - возможность «работать с образами файловых систем» скачанных с инета в ОЗУ на клиентской машине, это совершенно бесполезно

wota ★★
()
Ответ на: комментарий от PolarFox

Не совсем... Вы про anykernel слышали? Суть данной инициативы в том, что урезанный вариант ядра NetBSD можно запускать поверх гипервизора... А поверх такого урезанного ядра можно запустить модули ядра... Гипервизор запускает усечённую версию ядра как процесс в userspace, и обеспечивает коммуникацию между ядрами в userspace, и кодом работающим на системном уровне. Так что теперь NetBSD можно собрать по разному, как с традиционным монолитным ядром, так и с использованием множества модулей, работающих в userspace — NetBSD уже не привязана к монолитному ядру. Подробности можно узнать здесь.

lucentcode ★★★★★
()
Ответ на: комментарий от wota

Представьте, что вам срочно нужно добыть пару файлов с образа с экзотической ФС, а нужной ОС под рукой не оказалось? Для виндузятников это реальная проблема, вот её и решает данный сервис(когда такой реализуют, естественно).

lucentcode ★★★★★
()
Ответ на: комментарий от geekless

Для запуска усечённой версии ядра нужен только API, предоставляемый маленьким гипервизором. Есть API, будет работать и такое ядро поверх него. Парни реализовали гипервизор на JS, сконвертировали код ядра и модулей в JS-код - и запустили всё это хозяйство... То есть на выходе у них из исходников ядра и модулей(на C) получился JS-код. А не бинари в ELF, требующие виртуальную машину под свою архитектуру...

lucentcode ★★★★★
()
Ответ на: комментарий от lucentcode

Представьте, что вам срочно нужно добыть пару файлов с образа с экзотической ФС, а нужной ОС под рукой не оказалось? Для виндузятников это реальная проблема, вот её и решает данный сервис(когда такой реализуют, естественно).

данную проблему может решить уже существующий colinux, только оно особо никому не надо

wota ★★
()
Ответ на: комментарий от lucentcode

Так что теперь NetBSD можно собрать по разному, как с традиционным монолитным ядром, так и с использованием множества модулей, работающих в userspace — NetBSD уже не привязана к монолитному ядру

Ахринеть!

geekless ★★
()
Ответ на: комментарий от wota

Эх, с вашей тягой к реализму всё удовольствие от придумывания надуманного повода для создания очередного велосипеда пропадает. Так и веломейкеры переведутся, если будут мыслить примерно так же. Мир станет серым, и не интересным.

lucentcode ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.