Доступен первый выпуск проекта Runtime.JS, нацеленного на предоставления средств для обособленного выполнения JavaScript-приложений поверх гипервизоров. Runtime.JS представляет собой ядро операционной системы, построенное с использованием JavaScript-движка V8. Целью разработки является предоставление операционного окружения для выполнения программ на языке JavaScript без лишних прослоек. Ориентация только на запуск JavaScript-кода позволяет пересмотреть архитектуру ядра и предоставить более высокий уровень безопасности, надёжности и производительности. Код Runtime.JS распространяется под лицензией Apache 2.0.

На языках Си и C++ реализованы только низкоуровневые компоненты для организации загрузки, управления памятью, обработки прерываний, организации ввода/вывода, планирования задач и взаимодействия с движком V8. Всё остальное написано на языке JavaScript, включая драйверы, код управления ресурсами, систему разграничения доступа и средства для управления сеансами. Виртуальная ФС, сетевой стек и подсистемы ввода и вывода оформляются в виде системных сервисов, привязываемых к JavaScript-приложениям, которые выполняются в изолированных друг от друга sandbox-окружениях.

Система является многозадачной - поверх базового ядра может выполняться несколько изолированных приложений. При этом многозадачность не позволяет использовать традиционные процессы или нити, вместо них обеспечивает запуск JavaScript-окружений, по аналогии с открытием разных вкладок в браузере. Для диспетчеризации задач используется работающий в неблокирующем режиме цикл обработки событий (event loop), похожий на применяемый в проекте Node.js. В системе запускается по одному экземпляру виртуальной машины V8 на каждое процессорное ядро. Все компоненты ядра, драйверы и пользовательские приложения выполняются в едином адресном пространстве в режиме ядра (ring 0). Защита и изоляция обеспечивается программно силами движка V8. Поддерживается только архитектура x86_64.

Из уже реализованных возможностей отмечается: встроенный движок V8, кооперативная многозадачность, перемещаемые через IPC функций и ArrayBuffer, поддержка SMP и ACPI, драйверы для PCI, клавиатуры и VGA-адаптера, приложение с консолью (REPL). В планах создание сетевого стека, виртуальной файловой системы и набора драйверов virtio для хранилищ и сетевых адаптеров.



Источник: http://www.opennet.ru/opennews/art.shtml?num=40103