0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
1
<p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
2
<p>WebVM не имеет активных серверных компонентов. Всем пользователям доступен один и тот же образ диска через CDN, который они могут менять локально прямо в браузере.</p>
2
<p>WebVM не имеет активных серверных компонентов. Всем пользователям доступен один и тот же образ диска через CDN, который они могут менять локально прямо в браузере.</p>
3
WebVM в работе. Источник:<a>блог автора</a><p>WebVM управляется движком<a>CheerpX</a> - виртуальной машиной для x86-систем, которая написана на C++ и скомпилирована комбинацией JavaScript и WebAssembly через<a>Cheerp-компилятор</a>.</p>
3
WebVM в работе. Источник:<a>блог автора</a><p>WebVM управляется движком<a>CheerpX</a> - виртуальной машиной для x86-систем, которая написана на C++ и скомпилирована комбинацией JavaScript и WebAssembly через<a>Cheerp-компилятор</a>.</p>
4
<p>CheerpX разрабатывался около трёх лет и уже использовался в продакшене как часть<a>CheerpX for Flash</a> - энтерпрайз-решения для Adobe Flash.</p>
4
<p>CheerpX разрабатывался около трёх лет и уже использовался в продакшене как часть<a>CheerpX for Flash</a> - энтерпрайз-решения для Adobe Flash.</p>
5
<p>На высоком уровне CheerpX состоит из:</p>
5
<p>На высоком уровне CheerpX состоит из:</p>
6
<ul><li>эффективного интерпретатора для x86-систем;</li>
6
<ul><li>эффективного интерпретатора для x86-систем;</li>
7
<li>JIT-компилятора для x86-Wasm;</li>
7
<li>JIT-компилятора для x86-Wasm;</li>
8
<li>эмулятора системных вызовов для Linux;</li>
8
<li>эмулятора системных вызовов для Linux;</li>
9
<li>блочного файлового бэкенда на основе Ext2;</li>
9
<li>блочного файлового бэкенда на основе Ext2;</li>
10
<li>приватного хранилища для модифицируемых блоков на основе IndexedDB.</li>
10
<li>приватного хранилища для модифицируемых блоков на основе IndexedDB.</li>
11
</ul><p>CheerpX - это сложная система с большим количеством движущихся частей. При этом она корректно справляется с каверзными ситуациями - например, с самоизменяющимся кодом, мультипоточностью, мультипроцессорностью и межпроцессорной коммуникацией. Несмотря на такую сложность, CheerpX работает очень стабильно.</p>
11
</ul><p>CheerpX - это сложная система с большим количеством движущихся частей. При этом она корректно справляется с каверзными ситуациями - например, с самоизменяющимся кодом, мультипоточностью, мультипроцессорностью и межпроцессорной коммуникацией. Несмотря на такую сложность, CheerpX работает очень стабильно.</p>
12
<p>WebVM построен на трёх компонентах. Это:</p>
12
<p>WebVM построен на трёх компонентах. Это:</p>
13
<ul><li>исполнительный движок CheerpX - позволяет запускать bash-процессы;</li>
13
<ul><li>исполнительный движок CheerpX - позволяет запускать bash-процессы;</li>
14
<li>UI-компонент Xterm.js - позволяет работать с такими приложениями, как Vim, а также отправляет входные данные в CheerpX;</li>
14
<li>UI-компонент Xterm.js - позволяет работать с такими приложениями, как Vim, а также отправляет входные данные в CheerpX;</li>
15
<li>Debian-образ диска в формате ext2 с кучей других установленных пакетов.</li>
15
<li>Debian-образ диска в формате ext2 с кучей других установленных пакетов.</li>
16
</ul><p>Сейчас доступна демоверсия WebVM, которая может запускать программы для разных языков программирования, а также системные скрипты и установленные приложения:</p>
16
</ul><p>Сейчас доступна демоверсия WebVM, которая может запускать программы для разных языков программирования, а также системные скрипты и установленные приложения:</p>
17
# Запускайте небольшие программы на Python python3 examples/python3/fibonacci.py # Компилируйте C-код через gcc gcc -o helloworld examples/c/helloworld.c # Запускайте его! ./helloworld # Делайте dump-кода и проверяйте, что это по-настоящему x86-бинарники objdump -d ./helloworld # Изменяйте файлы через Vim vim examples/c/helloworld.c<p>Этот релиз - первая версия большой экосистемы, которую планируют создать разработчики. В ближайшее время они собираются добавить больше полезных и важных функций:</p>
17
# Запускайте небольшие программы на Python python3 examples/python3/fibonacci.py # Компилируйте C-код через gcc gcc -o helloworld examples/c/helloworld.c # Запускайте его! ./helloworld # Делайте dump-кода и проверяйте, что это по-настоящему x86-бинарники objdump -d ./helloworld # Изменяйте файлы через Vim vim examples/c/helloworld.c<p>Этот релиз - первая версия большой экосистемы, которую планируют создать разработчики. В ближайшее время они собираются добавить больше полезных и важных функций:</p>
18
<ul><li>HTTP-серверы и микросервисы;</li>
18
<ul><li>HTTP-серверы и микросервисы;</li>
19
<li>графические Linux-приложения;</li>
19
<li>графические Linux-приложения;</li>
20
<li>Windows-приложения и игры.</li>
20
<li>Windows-приложения и игры.</li>
21
</ul><p>Запустить демо можно на любом десктопном или мобильном браузере на <a>сайте WebVM</a>, а подробнее изучить возможности виртуальной машины - на <a>официальном блоге авторов</a>.</p>
21
</ul><p>Запустить демо можно на любом десктопном или мобильном браузере на <a>сайте WebVM</a>, а подробнее изучить возможности виртуальной машины - на <a>официальном блоге авторов</a>.</p>
22
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
22
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>