Представлен первый релиз операционной системы QSOE, спроектированной в стиле QNX и поставляемой с двумя заменяемыми микроядрами "Skimmer" и "seL4". На уровне ядра выполняются только система распределения ресурсов, механизм синхронного обмена сообщениями (QNX IPC) и минималистичное ядро, а все остальные компоненты, реализованы в пользовательском пространстве. Поддерживается работа на 64-разрядных CPU с архитектурой RISC-V. ОС протестирована на плате SiFive HiFive Unmatched и в QEMU. Код проекта написан на языке Си и распространяется под лицензией Apache 2.0. На выбор предлагаются варианты: QSOE/N с собственным микроядром Skimmer и QSOE/L на базе микроядра seL4, имеющего формальную верификацию надёжности для архитектуры RISC-V. Помимо этого развиваются загрузчик mr-bml на базе GRUB 2.13, стандартная библиотека libc и набор программ quser. В состав набора программ входит командная оболочка qsh на базе mksh, система инициализации и набор типовых unix-утилит, таких как ls, сat, ps, lspci и login. Микроядро Skimmer использует заимствованную у проекта DragonFly BSD реализацию легковесных потоков в ядре (LWKT, Light Weight Kernel Threads) с привязанными к CPU рабочими очередями и примитивами передачи сообщений msgport. QSOE позволяет использовать разные ядра с одним пользовательским окружением и набором драйверов, не меняющимся при смене ядра. В привязке к ядрам собираются только менеджер задач (taskman) и библиотека libc, выступающая в роли обвязки над QNX-подобными API, предоставляемыми микроядрами. ┌──────────────────────────────────────────────────────────┐ │ qsh + drivers + utils (dynamically linked) │ ├──────────────────────────────────────────────────────────┤ │ libc.so (shared body; LQ-specific seam in lq/libc/) │ │ rtld (FreeBSD-derived; BSD-2-Clause) │ ├──────────────────────────────────────────────────────────┤ │ taskman process / memory / path manager │ │ libtaskman portable taskman body (path / cred / │ │ syscfg / sync / reloc / cpio / elf) │ ├──────────────────────────────────────────────────────────┤ │ seL4 microkernel (RISC-V Sv39, formally verified) │ │ elfloader (loads kernel + taskman) │ └──────────────────────────────────────────────────────────┘ Первый выпуск QSOE примечателен достижением возможности загрузки и входа в командную оболочку на реальной плате SiFive Unmatched (FU740) c накопителем NVMe. Успешная загрузка реализована для конфигураций с обоими ядрами (QSOE/L и QSOE/N).
Источник: https://www.opennet.ru/opennews/art.shtml?num=65768
Источник: https://www.opennet.ru/opennews/art.shtml?num=65768