Basado en树莓派3 y ARMv8-AArch64 , se implementa un micro sistema operativo.
El proyecto está organizado en forma de overview + subprojects . overview almacena todo el código. Cada subproject utiliza estos códigos de acuerdo con sus propias necesidades, incluido el filtrado de archivos innecesarios (excluyéndolos de la compilación).
El proyecto se desarrolla utilizando el lenguaje C++ moderno, y la arquitectura objetivo principal es ARMv8 . El compilador utilizado por el proyecto es g++ , por lo que el código contendrá algunas extensiones de sintaxis de g++ , como __attribute__ , __asm__ .
Además, compilar
Este proyecto se basa en eclipse ( version > = 4.6.3 ). Al compilar, debe usar la versión eclipse apropiada. En Windows , Linux o MacOS , seleccione File -> Open Projects from File System -> Haga clic en Directory , seleccione el directorio donde se encuentra el proyecto y Abra -> Finish
El proyecto tiene múltiples subproyectos, principalmente: host , qemu_virt , raspi3 y user_space .
Los objetivos correspondientes (arquitectura) de estas configuraciones son: desarrollo basado en el sistema operativo host del host (utilizado principalmente para probar la gestión de la memoria y otras funciones independientes de la arquitectura), el desarrollo basado en la simulación QEMU (utilizada para probar la memoria virtual, las interrupciones, etc.), el desarrollo basado en la frambuesa PI 3 (utilizada para la verificación comprensiva) y el programa en el espacio de los usuarios.
Todos los subproyectos se encuentran bajo subproyectos.
El proyecto ha configurado algunos objetivos de construcción especiales. Ver Build Targets para el proyecto.
En el núcleo, evitar el uso de variables globales se puede usar específicamente para inicializar todas las variables globales que deben definirse. Esas variables son convenientes de usar solo porque ya han asignado espacio durante el período de compilación. Si tiene que usarlo, defina una vez en la definición y redefinirlo una vez en la función de inicialización.
Si se cambia la configuración del proyecto, se debe reiniciar una nueva línea de comandos porque se exportarán todos los entornos de eclipse.
Descripción general del progreso del proyecto Referencia Progress_current.md
Referencia de registro del proyecto Recording_note.md
La estructura y configuración de los subproyectos, consulte subprojects/readMe.md
En progreso (tal vez MIT-Licence, pero puede estar cerrado nuevamente, ahora está medio abierto y medio cerrado).
No, hazlo Posix en su lugar.
Siga algunas reglas de codificación a las que se puede hacer referencia más tarde aquí
Lea el documento que se puede publicar más tarde
Uso de QEMU para depurar algún programa de demostración
Intenta cambiar el código del kernel, Rerun.
Entonces, Git Agregar -a && git commit && git push!
Ver aquí, ver también documento externo.
RSP3-Armv8-Baremital, el proyecto original.
Linux, Linux, oficialmente.
Qemu, un emulador que ayuda mucho.
Gvisor, un núcleo espacial de usuario, de Google, en GO.
Modo de usuario Linux (UML), como dice su nombre.
X2, un antiguo núcleo en Bochs.
Tutorial Raspi3, por BZT, muy útil para principiantes.
ARMV8 Hello World, Hello World Ejemplo para ARMV8, basado en QEMU, útil para principiantes.