The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Запуск WebAssembly runtime как модуля ядра Linux"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от opennews (??), 27-Сен-18, 18:40 
Проект Wasmjit (https://github.com/rianhunter/wasmjit) развивает не привязанный к браузеру небольшой встраиваемый WebAssembly runtime для запуска WebAssembly-модулей, сгенерированных компилятором Emscripten. Помимо средств для выполнения в пространстве пользователя на базе Wasmjit также развивается модуль ядра Linux, позволяющий выполнять промежуточный код WebAssembly  на уровне ядра (ring 0). При выполнении на уровне ядра модуль  позволяет обращаться  к системным вызовам в форме вызова обычных функций. Код написан на языке C (C90), что позволяет легко портировать Wasmjit на различные платформы. Наработки проекта распространяются (https://github.com/rianhunter/wasmjit) под лицензией MIT.


Запуск  WebAssembly-приложений на уровне ядра даёт возможность избавиться от накладных расходов, связанных с вытеснением таблиц страниц памяти и трансляцией вызовов между ядром и пространством пользователя. Использование модуля ядра позволяет существенно увеличить производительность приложений, в которых производится активное обращение к системным вызовам, например, web-серверов и реализаций файловых систем на базе FUSE.


Из планов на будущее отмечается: создание модуля для ядра macOS; доведение проекта до возможности выполнения nginx, скомпилированного  в WebAssembly; подготовка runtime для псевдокода WebAssembly, сгенерированного из  кода на языках Rust и Go; создание интерпретатора; подготовка JIT для архитектуры ARM64; оптимизация x86_64 JIT.

URL: https://github.com/rianhunter/wasmjit
Новость: https://www.opennet.ru/opennews/art.shtml?num=49348

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Запуск WebAssembly runtime как модуля ядра Linux"  +11 +/
Сообщение от zfs (??), 27-Сен-18, 18:40 
> Запуск WebAssembly-приложений на уровне ядра позволяет избавиться от накладных расходов

А так же от безопасности, изоляции процессов и т.п.
Пярмо DOS+DPMI64 какой-то.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Запуск WebAssembly runtime как модуля ядра Linux"  –2 +/
Сообщение от Orduemail (ok), 27-Сен-18, 18:53 
> А так же от безопасности, изоляции процессов и т.п.

wasm-код изолирован от внешнего мира. Он выполняется в песочнице, из которой крайне сложно вылезти. Вероятно, всё же возможно -- баги они везде есть, -- но ты же не будешь пихать в ядро недоверенный код? А если код доверенный, то сломать что-то он может лишь нечаянно, а значит использовать дыру для выхода из песочницы у него нет шансов.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

12. "Запуск WebAssembly runtime как модуля ядра Linux"  +7 +/
Сообщение от Аноним (-), 27-Сен-18, 19:02 
А вот тут или-или. Вы или таки имеете накладные расходы на песочницу и оверхед на хренову кучу проверок того что то что оно делает здесь и сейчас - типа безопасно, или таки на это забивается, и вот тогда - быстро :).

В общем не с того конца они яйца чистить начали. Да и вообще, если их в модули ядра понесло - ну, сделали бы нормальную сборку gcc'ом для начала, чтоли. А то все эти перверсии с emscripten'ом - занятие для очень небольшого числа ценителей странного.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

19. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Orduemail (ok), 27-Сен-18, 19:40 
> А вот тут или-или. Вы или таки имеете накладные расходы на песочницу
> и оверхед на хренову кучу проверок того что то что оно
> делает здесь и сейчас - типа безопасно, или таки на это
> забивается, и вот тогда - быстро :).

Это oversimplification. Переупрощение, наверное, если переводить на русский. Всё сложнее. Если мы посмотрим на то, как nginx тратит процессорные такты, то часть он тратит на выполнение кода в ring3, часть он тратит на выполнение кода в ring0, часть на ожидание i/o, и часть на переключение контекстов из ring3 в ring0 и обратно. Ожидание i/o, так же как и выполнение ring0 кода никак не изменится от того, что nginx будет перенесён в ядро. А вот выполнение собственно nginx кода и переключение контекстов изменится. Код nginx, надо полагать, будет выполняться медленнее, а переключение контекстов быстрее, потому что для выхода из jit понадобятся не тысячи тактов процессора, а десятки. Что-то станет медленнее, что-то быстрее, каким же будет суммарное изменение времени выполнения -- я могу лишь гадать.

> В общем не с того конца они яйца чистить начали.

Мы это узнаем совершенно точно, когда они запустят nginx в ядре, и прогонят его через тесты.

> сделали бы нормальную сборку gcc'ом для начала

Я не знаю, как там насчёт gcc, но rustc сегодня имеет встроенный target webassembly. Emscripten не нужен. И вообще, кто ты такой, чтобы указывать им чем им заниматься? Разработка компиляторов -- это одно, разработка модулей ядра -- это другое и не твоё собачье дело решать за других, чем им заниматься в своё свободное время.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

25. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Аноним (25), 27-Сен-18, 21:37 
> Это oversimplification.

Дудки. Дополнительные проверки для безопасности или есть, и на это тратятся ресурсы, или нет, и тогда они не тратятся. Дядька Тюринг на самом фундаментальному уровне гарантировал нам что мы заранее поведение программы своей программой (как то компилером) целиком не просчитаем - значит оверхед в рантайме на фактические проверки в момент операции. А какие еще варианты? При том в тугом цикле это может угрохать скорость в разы. В кернеле все еще усугубляется тем что нельзя заранее верить компилятору и прочему внешнему миру. Это мигом приведет к взлому, поэтому надо параноидально чикерить все и вся. Без оверхеда куча проверок не бывает - если процессору приваливает работенки, то и времени на ее выполнение приваливает.

> часть он тратит на выполнение кода в ring3, часть он тратит
> на выполнение кода в ring0, часть на ожидание i/o, и часть
> на переключение контекстов из ring3 в ring0 и обратно.

И вот тут хотелось бы какой-то инструментированной метрики с разблюдовкой по временам - куда сколько потрачено и какого масштаба выигрыш ожидается. И не окажется ли это как в песенке про мельника, который истратил шиллинг и заработал грош.

> того, что nginx будет перенесён в ядро. А вот выполнение собственно
> nginx кода и переключение контекстов изменится.

Вот конкретно Linux сейчас довольно здорово оптимизнут на предмет сисколов, с использованием хреновой кучи не-классических техник, придуманых линуксоидами. Например, vDSO, группировка сисколов и 1 переключения контекста на целый батч и проч. Им видите ли оверхед тоже не нравится и они изобрели много нового для его уменьшения.

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

В общем случае так. Но сравнивая уровень технологий Linux и тем что вытворяют jit - я пожалуй поставлю на Linux. Эти парни умеют работать так, чтобы результат радовал глаз. А сказать то же самое про jit'ы я не могу.

> Мы это узнаем совершенно точно, когда они запустят nginx в ядре, и
> прогонят его через тесты.

Флаг им.

> Я не знаю, как там насчёт gcc, но rustc сегодня имеет встроенный target webassembly.

А мне похрен на rustc. Пусть яп со встроенными менеджерами пакетов пользуется кто-нибудь другой, а я пешком постою с менее хипстерским/виндообразным тулчейном.

> Emscripten не нужен.

Да и rust куда-то туда же, как по мне.

> модулей ядра -- это другое и не твоё собачье дело решать
> за других, чем им заниматься в своё свободное время.

Несомненно. Но повертеть пальцем у виска, в том числе и публично. я все же могу и это вполне в пределах моего собачьего дела уже.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

28. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Orduemail (ok), 27-Сен-18, 22:10 
>[оверквотинг удален]
> Дудки. Дополнительные проверки для безопасности или есть, и на это тратятся ресурсы,
> или нет, и тогда они не тратятся. Дядька Тюринг на самом
> фундаментальному уровне гарантировал нам что мы заранее поведение программы своей программой
> (как то компилером) целиком не просчитаем - значит оверхед в рантайме
> на фактические проверки в момент операции. А какие еще варианты? При
> том в тугом цикле это может угрохать скорость в разы. В
> кернеле все еще усугубляется тем что нельзя заранее верить компилятору и
> прочему внешнему миру. Это мигом приведет к взлому, поэтому надо параноидально
> чикерить все и вся. Без оверхеда куча проверок не бывает -
> если процессору приваливает работенки, то и времени на ее выполнение приваливает.

А вот сейчас ты пытаешься переусложнить. Зачем? Чтобы выглядеть умнее, чем ты есть на самом деле?

>> часть он тратит на выполнение кода в ring3, часть он тратит
>> на выполнение кода в ring0, часть на ожидание i/o, и часть
>> на переключение контекстов из ring3 в ring0 и обратно.
> И вот тут хотелось бы какой-то инструментированной метрики с разблюдовкой по временам
> - куда сколько потрачено и какого масштаба выигрыш ожидается. И не
> окажется ли это как в песенке про мельника, который истратил шиллинг
> и заработал грош.

Зачем тебе все эти разблюдовки, когда можно засунуть nginx в ядро и сравнить производительность с nginx вне ядра?

>> того, что nginx будет перенесён в ядро. А вот выполнение собственно
>> nginx кода и переключение контекстов изменится.
> Вот конкретно Linux сейчас довольно здорово оптимизнут на предмет сисколов, с использованием
> хреновой кучи не-классических техник, придуманых линуксоидами. Например, vDSO, группировка
> сисколов и 1 переключения контекста на целый батч и проч. Им
> видите ли оверхед тоже не нравится и они изобрели много нового
> для его уменьшения.

С этим тоже можно будет сравнить.

>> что-то быстрее, каким же будет суммарное изменение времени выполнения -- я могу лишь гадать.
> В общем случае так. Но сравнивая уровень технологий Linux и тем что
> вытворяют jit - я пожалуй поставлю на Linux. Эти парни умеют
> работать так, чтобы результат радовал глаз. А сказать то же самое
> про jit'ы я не могу.

А я не буду ставить. Я подожду результатов тестов.


> Несомненно. Но повертеть пальцем у виска, в том числе и публично. я
> все же могу и это вполне в пределах моего собачьего дела
> уже.

Да-да. Главное делать это не только публично, но ещё и анонимно, чтобы потом не выглядеть идиотом.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

41. "Запуск WebAssembly runtime как модуля ядра Linux"  +1 +/
Сообщение от Совершенно другой аноним (?), 28-Сен-18, 11:08 
>> В общем не с того конца они яйца чистить начали.
> Мы это узнаем совершенно точно, когда они запустят nginx в ядре, и прогонят его через тесты.

А ещё можно графику в ядро засунуть и тогда... Wait! OH, SHI--

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

42. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Orduemail (ok), 28-Сен-18, 12:15 
>>> В общем не с того конца они яйца чистить начали.
>> Мы это узнаем совершенно точно, когда они запустят nginx в ядре, и прогонят его через тесты.
> А ещё можно графику в ядро засунуть и тогда... Wait! OH, SHI--

Это зачем? Думаешь это уменьшит количество сисколлов? Ну, может быть, я честно говоря не знаю, как там на уровне сисколлов выглядят все эти ваши 3d ускорители.

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

16. "Запуск WebAssembly runtime как модуля ядра Linux"  –1 +/
Сообщение от Кирилл (??), 27-Сен-18, 19:29 
Так главная идея этого модуля в том, чтобы выкинуть эту самую песочницу с высокими стенками и дать коду привилегии ядра и полный доступ к памяти и прочим ресурсам.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

18. "Запуск WebAssembly runtime как модуля ядра Linux"  –1 +/
Сообщение от Orduemail (ok), 27-Сен-18, 19:39 
> Так главная идея этого модуля в том, чтобы выкинуть эту самую песочницу
> с высокими стенками и дать коду привилегии ядра и полный доступ
> к памяти и прочим ресурсам.

Можно цитату со ссылкой, где эта "главная идея изложена"?

Если пройти по ссылке на github, то там написано следующее:

> primary target is a Linux kernel module that can host Emscripten-generated WebAssembly
> modules. In this configuration it runs WebAssembly modules in kernel-space (ring 0)
> and provides access to system calls as normal function calls. This configuration avoids
> user-kernel transition overhead, as well as scheduling overheads from swapping page tables.

Тут нет ни слова о "привилегиях ядра" и о "полном доступе к памяти и прочим ресурсам".

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

20. "Запуск WebAssembly runtime как модуля ядра Linux"  +2 +/
Сообщение от Аноним (20), 27-Сен-18, 19:51 
> Here are the current developments goals in order of priority:
> * Implement enough Emscripten host-bindings to run nginx.wasm
> ...

Это означает, как минимум, доступ к сети, а также, скорее всего, еще и к диску.

Ну и "In this configuration it runs WebAssembly modules in kernel-space (ring 0) and provides access to system calls as normal function calls." как бы намекает.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

22. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Orduemail (ok), 27-Сен-18, 20:58 
>> Here are the current developments goals in order of priority:
>> * Implement enough Emscripten host-bindings to run nginx.wasm
>> ...
> Это означает, как минимум, доступ к сети, а также, скорее всего, еще
> и к диску.

То есть необходимый набор сисколлов, чтобы было как у юзерспейс процесса, так ведь?

> Ну и "In this configuration it runs WebAssembly modules in kernel-space (ring
> 0) and provides access to system calls as normal function calls."
> как бы намекает.

Что это намекает? У nginx в user-space есть доступ ко всем сисколлам, значит ли это, что у него есть полный доступ к памяти ядра?

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

26. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Аноним (25), 27-Сен-18, 21:44 
> Что это намекает? У nginx в user-space есть доступ ко всем сисколлам,
> значит ли это, что у него есть полный доступ к памяти ядра?

Там как бы есть один жирный плюс: изоляция кернел-юзер аппаратно энфорсится железками. И это по скорости вообще ничего не стоит - проверки делаются прямо железками в момент выполнения команд. А переключение контекста - оно как бы да, но его как бы совершенно не обязательно делать на каждый пшик, как при наивной реализации. И ядерщики Linux об этом как-то догадались и заимплементили.

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

29. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Orduemail (ok), 27-Сен-18, 22:24 
>> Что это намекает? У nginx в user-space есть доступ ко всем сисколлам,
>> значит ли это, что у него есть полный доступ к памяти ядра?
> Там как бы есть один жирный плюс: изоляция кернел-юзер аппаратно энфорсится железками.

И в чём, собственно, плюс? Как я понимаю этот "плюс" он хорош для выполнения недоверенного кода, который, вероятно, злонамеренно будет использовать любую дырку для того, чтобы изоляцию обойти. Этот "плюс" хорош для изоляции кода, практики написания которого допускают нечаянный выход за границы массива или выделенного адресного пространства. И этот "плюс" оказывается минусом, когда практики написания кода гарантируют отсутствие выхода за границы, с выполнением всех проверок в compile-time.

> И это по скорости вообще ничего не стоит - проверки делаются
> прямо железками в момент выполнения команд.

Стоит. Частота процессора ограничена возможностями отведения тепла. Чем больше проверок, тем больше выделяется тепла, тем ниже частота процессора при той же мощности теплоотведения.

> А переключение контекста - оно
> как бы да, но его как бы совершенно не обязательно делать
> на каждый пшик, как при наивной реализации. И ядерщики Linux об
> этом как-то догадались и заимплементили.

И тем не менее, как подсказывают ниже, некоторые запиливают юзерспейсные tcp/ip-стеки, дабы уменьшить количество переключений контекста ещё ниже того, что позволяет API построенное вокруг socket и epoll.

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

47. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от eganruemail (?), 30-Сен-18, 13:43 
насколько я помню ядро linux выполняется в одном адресном пространстве.
если не ошибаюсь, то в общем случае из ring 0 есть возможность управлять mmu, что означает полный доступ к памяти.

сама по себе конечно вещь безусловно интересная и полезная на данном этапе развития сетевых технологий:
по сути верно написанный модуль можно подгружать в систему жертвы для более удобных манипуляций с ее железом.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

49. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Orduemail (ok), 30-Сен-18, 15:00 
> насколько я помню ядро linux выполняется в одном адресном пространстве.
> если не ошибаюсь, то в общем случае из ring 0 есть возможность
> управлять mmu, что означает полный доступ к памяти.

Угу. А ещё выполнение в ring3 означает доступ к сисколлам, так? Попробуй из wasm в браузере вызвать сисколл.

Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

50. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от eganruemail (?), 30-Сен-18, 16:32 
[i]А ещё выполнение в ring3 означает доступ к сисколлам, так?[/i] - конечно нет. выполнение в ring3 позволяет выполнять вызовы ядра, если ядро предоставило возможность себя вызывать. вызовом ядра Вы же фактически просто исключение вызываете. и не более.

web-assembly еще только в начале пути. наверняка abi и прочее будут какое-то время меняться.
и, естественно, без syscall сфера применения web-assemly существенно уже, чем с ними.

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

51. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Orduemail (ok), 30-Сен-18, 18:18 
> [i]А ещё выполнение в ring3 означает доступ к сисколлам, так?[/i] - конечно
> нет. выполнение в ring3 позволяет выполнять вызовы ядра, если ядро предоставило
> возможность себя вызывать.

Абсолютная аналогия с вызовами из виртуальной машины наружу. Что vm позволит, то и будет.

Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

44. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Аноним (44), 28-Сен-18, 16:15 
не изолирован. Он выполняется с правами ring 0, в каком месте он изолирован?
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

45. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Orduemail (ok), 28-Сен-18, 16:34 
> не изолирован. Он выполняется с правами ring 0, в каком месте он
> изолирован?

Он выполняется в песочнице jit.

Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

2. "Запуск WebAssembly runtime как модуля ядра Linux"  +3 +/
Сообщение от yet another anonymous (?), 27-Сен-18, 18:41 
А если работать в физичеких адресах, то накладных расходов ещё меньше.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Запуск WebAssembly runtime как модуля ядра Linux"  +2 +/
Сообщение от Orduemail (ok), 27-Сен-18, 18:54 
Да, но тогда мы лишаемся изоляции, и любая ошибка может привести к подвисанию компьютера. Прям как в досе.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

27. "Запуск WebAssembly runtime как модуля ядра Linux"  +2 +/
Сообщение от Аноним (-), 27-Сен-18, 21:51 
> Да, но тогда мы лишаемся изоляции, и любая ошибка может привести к
> подвисанию компьютера. Прям как в досе.

К тому же трансляция здорово подперта железом. В самом хучшем случае требуется внимание 1 раз на 4 кило страницу, что не так уж и часто. А реально и того реже, потому что таблицы трансляции не перегружаются на каждый пшик. Что-то отыграть конечно можно, но это такие копейки...

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

3. "Запуск WebAssembly runtime как модуля ядра Linux"  +1 +/
Сообщение от Нанобот (ok), 27-Сен-18, 18:43 
> увеличить производительность приложений, в которых производится активное обращение к системным вызовам, например, web-серверов

Кстати, а почему никто до сих пор не запилил nginx, работающий в режиме ядра?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Запуск WebAssembly runtime как модуля ядра Linux"  +2 +/
Сообщение от Аноним (8), 27-Сен-18, 18:54 
>> увеличить производительность приложений, в которых производится активное обращение к системным вызовам, например, web-серверов
>
> Кстати, а почему никто до сих пор не запилил nginx, работающий в режиме ядра?

https://en.wikipedia.org/wiki/TUX_web_server

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

17. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Нанобот (ok), 27-Сен-18, 19:31 
Это не то, оно умеет только статику раздавать, это 5% от nginx
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

36. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Crazy Alex (ok), 28-Сен-18, 09:42 
Потому что для типового случая профита нет, всё равно все расходы будут в бизнес-логике на каком-нибудь php. А кто там что для нетиповых делал - вопрос отдельный, мы об этом можем и не узнать никогда.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Аноним (4), 27-Сен-18, 18:44 
VS Code и Хром больше кушать память и тормозить не будет.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Запуск WebAssembly runtime как модуля ядра Linux"  +7 +/
Сообщение от Аноним (8), 27-Сен-18, 18:49 
> доведение проекта до возможности выполнения nginx, скомпилированного в WebAssembly

Может ещё nginx в браузере запустить?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Аноним (6), 27-Сен-18, 18:50 
Безумие какое-то. Зачем запускать nginx под wasm?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Аноним (4), 27-Сен-18, 18:55 
Чтоб вебсервер был ближе к кольцу 0.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

11. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от th3m3 (ok), 27-Сен-18, 19:01 
Что-то я не совсем понял. Это будет очередной Electron в вакууме?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Запуск WebAssembly runtime как модуля ядра Linux"  +3 +/
Сообщение от Аноним (8), 27-Сен-18, 19:09 
Нет, теперь nginx будет запускаться в Electron
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

33. "Запуск WebAssembly runtime как модуля ядра Linux"  +1 +/
Сообщение от th3m3 (ok), 27-Сен-18, 23:25 
> Нет, теперь nginx будет запускаться в Electron

Т.е. теперь мы к ним?

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

34. "Запуск WebAssembly runtime как модуля ядра Linux"  +2 +/
Сообщение от Аноним (34), 27-Сен-18, 23:51 
осталось запустить электрон в электроне
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

14. "Запуск WebAssembly runtime как модуля ядра Linux"  +3 +/
Сообщение от Аноним (14), 27-Сен-18, 19:10 
Для тех, кто не понял. Это альтернатива юзерспейсным сетевым стекам. И то, и другое нужно, чтобы избежать лишних переключений контекста. Тем, у кого менее миллиона пакетов в секунду на сервер, можно не заморачиваться.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Запуск WebAssembly runtime как модуля ядра Linux"  +4 +/
Сообщение от Аноним (15), 27-Сен-18, 19:14 
Подождите, не кмаменьтьте. Я воздушную кукурузу и свч печи достану.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Запуск WebAssembly runtime как модуля ядра Linux"  +1 +/
Сообщение от Аноним (8), 27-Сен-18, 20:15 
> Подождите, не кмаменьтьте. Я воздушную кукурузу и свч печи достану.

Уже можно?

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

23. "Запуск WebAssembly runtime как модуля ядра Linux"  –1 +/
Сообщение от Аноним (23), 27-Сен-18, 20:59 
Маразм крепчал...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

30. "Запуск WebAssembly runtime как модуля ядра Linux"  +2 +/
Сообщение от Аноним (30), 27-Сен-18, 22:46 
Жабаскриптерам стало обидно, что код сишников в ядре может крутица, а ихний - нет.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

35. "Запуск WebAssembly runtime как модуля ядра Linux"  +1 +/
Сообщение от AntonAlekseevichemail (ok), 28-Сен-18, 00:23 
Дальше ждать когда WebAssembly будет крутиться в внутри uefi-flash? (Добро пожаловать в мир где устройство обязано иметь доступ к полноценному интернету.)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

52. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Александрemail (??), 02-Окт-18, 23:25 
Не, у них там своя атмосфера. EFI Byte Code зовётся. Но суть в принципе та же.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

37. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от evkogan (?), 28-Сен-18, 10:03 
Не понимаю. Изначально wasm - это запуск C/C++ в браузере. Эта штука позволяет запускать wasm без браузера и даже как модуль ядра.
Но зачем? Почему не запускать C/C++ просто скомпиленным и если надо, то как модуль ядра?
И да запилить из NGINX модуль ядра наверняка можно и более простыми методами, без wasm.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

40. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от Аноним (40), 28-Сен-18, 10:31 
В ядре уже есть eBPF. webaassembly ещё одна виртуальная машина для ядра, не первая и не последнияя.
Нужно т.к. над эффективностью и безопасностью JIT wasm работает много квалифицированных людей.

Зачем вообще виртуальные машины в ядре: долгосрочно - штуки типа microsoft singularity, реализация изоляции приложений (и драйверов друг от друга) без бажных хардверных реализаций (интел спектры и мелтдауны), возможность получать плюшки DPDK продолжая использовать ядерный сетевой стек, но не роняя ядро своим кривым кодом, тестовые версии драйверов, которые не будут повреждать чужую память (не будет вероятности повреждения файловой системы из-за драйвера usb гаджета).

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

38. "Запуск WebAssembly runtime как модуля ядра Linux"  +2 +/
Сообщение от Аноним (38), 28-Сен-18, 10:09 
Стоило только Линусу на месяцок отлучится, как _эти_ со своими бредовыми идеями налетели.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

43. "Запуск WebAssembly runtime как модуля ядра Linux"  +1 +/
Сообщение от Аноним (43), 28-Сен-18, 15:04 
Чует моё сердце, что Линус больше не вернётся.
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

46. "Запуск WebAssembly runtime как модуля ядра Linux"  +/
Сообщение от anonymous (??), 28-Сен-18, 23:14 
Есть такое.
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

39. "Запуск WebAssembly runtime как модуля ядра Linux"  –1 +/
Сообщение от Аноним (38), 28-Сен-18, 10:23 
И почему бы, кому это реально хочется, просто не оформить существующий код nginx в виде модуля ядра?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру