- Jari OS
-
Jari OS200px
Jari OS framebuffer consoleРазработчик Jari OS Core Team
Семейство ОС Unix-подобная операционная система, Операционная система реального времени
Поддерживаемые платформы Тип ядра Лицензия Состояние Alpha
Веб-сайт Jari OS — это микроядерная операционная система реального времени, с мульти-сервисной архитектурой. Исходный код Jari OS опубликован под GNU General Public License.
Jari является аббревиатурой Just another Research in «просто другое исследование в», то есть полное название расшифровывается как — Just another Research in Operating Systems.
Содержание
История развития
Jari OS это попытка создать систему, в которой все объекты представлены файлами (устройства, объекты IPC, процессы и так далее). Этот проект появился в 2005 году. Спустя несколько месяцев активной разработки, проект был заморожен на несколько лет.
Летом 2008 года основатель проекта решил продолжить работы над проектом и рассмотреть экзоядро как новый архитектурный дизайн системы, а также рассмотреть возможность создания ОС реального времени на базе проекта, через несколько месяцев разработки работы над проектом были спонсированы. Руководитель проекта Jari OS был нанят руководителем отдела исследований и разработки, который занимается разработкой решений на базе проекта[1].
Экзоядерная архитектура была отвергнута в процессе исследования, взамен было решено использовать микроядро и набор сервисов. Микроядро Jari OS (μString) предоставляет минимальный набор функционала и является полностью вытесняемым.
После выхода первой альфа версии [2] основные работы были направлены в сторону стабилизации и рефакторинга существующего функционала и исходного кода.
В ноябре 2009 года проект снова стал полностью независимым [3], в текущий момент работы ведутся в рамках полностью независимого открытого проекта.
Архитектура
Микроядро Jari OS обеспечивает следующее:
- быстрый IPC (порты и каналы)
- управление памятью
- управление сигналами
- роутинг прерываний
- потоки
- SMP
- начальный bootstrap
Все другие системные абстракции реализуются на уровне серверов; драйверы устройств (контроллеры прерываний, видео карты, клавиатуры, IDE диски, сетевые устройства), файловые системы, поддержка ELF образов — это доверенные сервисы микроядра. В отличие от экзоядра, Jari OS не имеет libOS. Jari как и другая Unix система использует стандартный набор библиотек — libc, libpthread и т. д., расширяя ее с помощью дополнительных библиотек, используемых для корневых серверов.
Jari OS является POSIX совместимой системой, насколько это возможно с такой архитектурой.
Дизайн микроядра был выбран после исследований экзоядерной архитектуры, монолитных и гибридных ядер. Но в отличие от большинства микроядер, микроядро Jari (μstring) не содержит высокоуровневых абстракций, драйверов или реализации протоколов взаимодействия серверов ОС.
Серверы
Jari OS имеет несколько центральных серверов и набор системных серверов, различие между центральным и системным серверами в том, что система не может быть использована (запущена) без центрального сервера, но может работать без системного. Центральные серверы представляются:
- Сервис имён
- Сервис VFS
- Сервер драйверов устройств (реализовано через файловую систему)
- Сервис терминалов
Системные серверы представлены:
- Сервер для запуска и монтирования файловых систем
- Сервер процессов
- Сервер сетевой подсистемы
Загрузка и инициализация
Jari OS использует GNU Grub для загрузки ядра, набора основных серверов и образа с инициализационной файловой системой. В таком случае, определенный набор серверов должен быть загружен:
- Сервер имён
- Сервер виртуальной файловой системы
- Сервер инициализационной файловой системы
- Сервер управления процессами
- Сервер запуска и инициализации
Образ содержит драйверы файловой системы и сервисы. Когда все серверы загружены из образа, действительная корневая файловая система заменяет образ, и система продолжает загрузку с блочного устройства (жесткий диск, CD-ROM или другой источник загрузки).
Примечания
Ссылки
Категории:- Операционные системы реального времени
- Юникс-подобные операционные системы
- Микроядра
Wikimedia Foundation. 2010.