El primer lanzamiento de QSOE, un sistema operativo estilo QNX con dos microkernels intercambiables.

Se ha presentado la primera versión del sistema operativo QSOE, diseñado al estilo de QNX y entregado con dos microkernels intercambiables: 'Skimmer' y 'seL4'. A nivel del kernel, solo se ejecutan el sistema de distribución de recursos, el mecanismo de intercambio de mensajes síncronos (QNX IPC) y un núcleo minimalista, mientras que todos los demás componentes se implementan en el espacio de usuario. Es compatible con CPU de 64 bits con arquitectura RISC-V. El sistema operativo ha sido probado en la placa SiFive HiFive Unmatched y en QEMU. El código del proyecto está escrito en C y se distribuye bajo la licencia Apache 2.0.

Se ofrecen opciones: QSOE/N con su propio microkernel Skimmer y QSOE/L basado en el microkernel seL4, que tiene verificación formal de fiabilidad para la arquitectura RISC-V. Además, se desarrolla el cargador mr-bml basado en GRUB 2.13, la biblioteca estándar libc y un conjunto de programas quser. El conjunto de programas incluye el terminal qsh basado en mksh, el sistema de inicialización y un conjunto de utilidades típicas de Unix, como ls, cat, ps, lspci y login.

El microkernel Skimmer utiliza una implementación de hilos ligeros en el kernel (LWKT, Light Weight Kernel Threads) tomada del proyecto DragonFly BSD, con colas de trabajo vinculadas a la CPU y primitivas de transferencia de mensajes msgport. QSOE permite utilizar diferentes kernels con un mismo entorno de usuario y un conjunto de controladores, que no cambian al cambiar de kernel. Solo se recopilan el gestor de tareas (taskman) y la biblioteca libc vinculada a los kernels, que actúa como un envoltorio sobre las API similares a QNX que proporcionan los microkernels.

┌──────────────────────────────────────────────────────────┐
│ qsh + drivers + utils (enlazados dinámicamente) │
├──────────────────────────────────────────────────────────┤
│ libc.so (cuerpo compartido; costura específica de LQ en lq/libc/) │
│ rtld (derivado de FreeBSD; BSD-2-Clause) │
├──────────────────────────────────────────────────────────┤
│ taskman gestor de procesos / memoria / ruta │
│ libtaskman cuerpo portable de taskman (ruta / cred / │
│ syscfg / sincronización / reubicación / cpio / elf) │
├──────────────────────────────────────────────────────────┤
│ microkernel seL4 (RISC-V Sv39, verificado formalmente)│
│ elfloader (carga del kernel + taskman) │
└──────────────────────────────────────────────────────────┘

La primera versión de QSOE es notable por lograr la carga y el acceso a la shell de comandos en la placa real SiFive Unmatched (FU740) con un almacenamiento NVMe. La carga exitosa se ha implementado para configuraciones con ambos núcleos (QSOE/L y QSOE/N).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster