Skip to content

Objetivo de sustrato seL4 AArch64 en QEMU

Las imágenes de unikernel del stack de substrato se ejecutan sobre el microkernel seL4 dirigido a la arquitectura de conjunto de instrucciones AArch64, con el modelo de máquina virt de QEMU como entorno de emulación principal para el desarrollo, las pruebas y la integración continua. Este objetivo fue seleccionado mediante las decisiones de arquitectura del Grupo 3A y el Grupo 3D en mayo de 2026, y es el sustrato de hardware para todo el trabajo de la Phase 1C y la Phase 2.

Resumen

seL4 es un microkernel de la familia L4 verificado formalmente, desarrollado por CSIRO's Data61 y mantenido por la Fundación seL4. Su propiedad definitoria es una prueba verificada mecánicamente de corrección funcional: la implementación en C del kernel está demostrada contra una especificación formal en Isabelle/HOL. seL4 usa un modelo de control de acceso basado en capacidades: cada recurso del kernel — memoria, hilos, endpoints de IPC, manejadores de interrupciones — es accesible únicamente a través de una capacidad, un token tipado inforjable. Este modelo es la base sobre la cual se construye el Sustrato del Libro de Capacidades: el libro extiende el control de acceso aplicado por el kernel con un registro criptográficamente auditable de cada decisión de capacidad.

AArch64 fue seleccionado como objetivo primario por dos razones: el portafolio de pruebas (seL4 cubre AArch64 como objetivo de primera clase con el historial más largo de mantenimiento continuo de pruebas) y la trayectoria de hardware (procesadores de servidor AArch64 de Ampere Altra, AWS Graviton y Neoverse N1/V1 están disponibles en los proveedores de nube relevantes para los objetivos de despliegue).

El modelo de máquina virt de QEMU para AArch64 es una plataforma sintética diseñada específicamente para el desarrollo de software. La CPU por defecto es Cortex-A53 (-cpu cortex-a53). El controlador de interrupciones es GIC versión 2. La UART es PL011 en dirección física 0x09000000, a la que seL4 enruta su salida de depuración cuando KernelPrinting=ON. La memoria física se describe como una ventana de 1 GiB desde 0x40000000 hasta 0x80000000; QEMU debe lanzarse con al menos -m 1G.

Secciones del TOPIC en inglés

§1 — seL4 como base del microkernel

Explica la prueba de corrección funcional verificada mecánicamente de seL4 en Isabelle/HOL, el modelo de control de acceso basado en capacidades (tokens inforjables, sin autoridad ambiental, sin usuario root), y la relación con el Sustrato del Libro de Capacidades: el kernel proporciona la aplicación en tiempo real; el Sustrato añade la capa de auditoría. Aclara que el stack no modifica el kernel seL4 — construye sobre su API publicada y el modelo de dominio de protección de Microkit.

§2 — AArch64 primero

Documenta las dos razones de la selección: el portafolio de pruebas (AArch64 es un objetivo de primera clase con el historial más largo de mantenimiento continuo en el proyecto seL4; se usa en los propios pipelines de integración continua de la Fundación seL4) y la trayectoria de hardware (procesadores de servidor AArch64 disponibles en los proveedores de nube relevantes). Aclara que x86-64 no está excluido — seL4 lo soporta — pero el enfoque en AArch64 primero calibra la inversión en la cadena de herramientas desde el inicio.

§3 — El modelo de máquina virt de QEMU

Documenta las características del modelo virt relevantes para seL4: CPU Cortex-A53, controlador GIC v2, UART PL011 a 0x09000000, árbol de dispositivos generado desde QEMU en tiempo de configuración del kernel, y ventana de memoria física de 1 GiB (-m 1G requerido). Explica por qué qemu-system-aarch64 debe estar presente antes de que el kernel seL4 pueda configurarse: el sistema de construcción CMake extrae el árbol de dispositivos de la máquina de QEMU en tiempo de configuración.

§4 — Configuración de compilación del kernel

Documenta las opciones de configuración CMake críticas para el objetivo QEMU AArch64: KernelPlatform=qemu-arm-virt, KernelSel4Arch=aarch64, KernelVerificationBuild=OFF (requerido para que KernelPrinting=ON surta efecto — cuando KernelVerificationBuild=ON, el CMake desactiva silenciosamente CONFIG_PRINTING), KernelPrinting=ON, KernelDebugBuild=ON. Explica que el kernel resultante (kernel.elf) es un ELF estático AArch64 con punto de entrada 0xffffff8040000000 — la dirección virtual prevista del kernel una vez configurada la MMU AArch64.

§5 — El elfloader y la cadena de arranque

Explica por qué el kernel.elf de seL4 para AArch64 no puede cargarse directamente en QEMU: el punto de entrada 0xffffff8040000000 no existe en el espacio de direcciones físico de la máquina virt. Documenta el rol del elfloader (de vendor-sel4-tools/elfloader-tool/): se ejecuta desde la dirección física 0x40400000, desempaqueta el kernel y el servidor raíz desde un archivo CPIO embebido, configura las tablas de páginas de la MMU AArch64 para mapear el espacio de direcciones virtuales del kernel, y salta al punto de entrada del kernel. Aclara que, desde Phase 1C.d, el paso AssembleImage de moonshot-toolkit compila y enlaza el elfloader automáticamente en Rust puro, sin Python, CMake ni scripts de shell.

§6 — Cadena de arranque de Phase 1C — verificada

Documenta los cuatro hitos completados. Phase 1C.b (2026-05-27): kernel seL4 compilado desde fuente; kernel.elf verificado como ELF AArch64 estático, punto de entrada 0xffffff8040000000. Phase 1C.c (2026-05-28): arranque completo en QEMU confirmado; elfloader → kernel seL4 → servidor raíz produce salida serial. Phase 1C.d (2026-05-29): moonshot-toolkit v0.3.0 automatiza el pipeline completo; moonshot-toolkit build produce build/system-image.bin (punto de entrada 0x40400000); el comando de arranque es qemu-system-aarch64 -machine virt,secure=off -cpu cortex-a53 -m 1G -nographic -kernel build/system-image.bin; salida verificada: "Booting all finished, dropped to user space".


(El TOPIC canónico en inglés está en sel4-aarch64-qemu-substrate-target. Esta versión en español es un panorama estratégico, no una traducción literal.)

Important Information

Important Information

Corporate structure. PointSav Digital Systems ("PointSav") is a trade name of Woodfine Capital Projects Inc. ("Woodfine"). PointSav does not itself offer, sell, or solicit any security. Any securities offering associated with Woodfine's real-property direct-hold solutions is made exclusively by Woodfine, and only by means of the applicable Private Placement Memorandum.

No investment advice. This wiki's content is provided for engineering, operational, research, and development purposes. Nothing on this wiki constitutes investment advice or a solicitation to invest in any Woodfine partnership or direct-hold solution.

Intellectual property. The PointSav name, trade name, wordmark, and marks, together with all current and future PointSav- and Totebox-branded products, services, and offerings — and the software, source code, documentation, design system, and all related materials — are proprietary to Woodfine and its affiliates, except for components identified as open source. No rights are granted except as expressly set out in a written license or agreement. See TRADEMARK.md in this repository for the full trademark notice.

Open source components. Portions of the platform are made available under permissive open-source licenses identified in the accompanying repository. Use of those components is governed by their respective license terms.

No warranty; informational use. Content on this wiki is provided for general informational purposes only and does not constitute a representation, warranty, or commitment with respect to product functionality, availability, pricing, or roadmap. Some articles describe planned or intended features, capabilities, and milestones — language such as "planned," "intended," "targeted," "may," and "expected" marks this forward-looking content, which is subject to change and does not constitute a commitment regarding future performance.

Confidentiality. Where an article describes an operational or deployment detail that is not intended for public disclosure, that article is not published on this wiki. Content here is general-purpose engineering documentation, not customer-specific configuration.

Jurisdiction. Woodfine Capital Projects Inc. is organized in British Columbia, Canada. References to the Sovereign Data Foundation on this wiki describe a planned or intended initiative only, not a current equity holder or active governance body.

Changes to this notice. PointSav may update this notice from time to time; the version posted on this page governs.

Not a filing system. This wiki is not a securities filing system, an electronic disclosure repository, or a substitute for SEDAR+ or any other regulatory filing system. Formal securities filings are made through the applicable regulatory filing system, not through this wiki.

Full disclaimer. This notice supplements, and does not replace, the full Disclaimers article. In the event of any conflict, the full Disclaimers article governs.

Read the full disclaimer →