В рамках проекта Runtime.JS развивается ядро ОС на базе JavaScript-движка V8
29 июня 2014 года
Доступен первый выпуск проекта 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 для хранилищ и сетевых адаптеров.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.