HTML Diff
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>