OS de la luna
Moon OS es un micro kernel modular dirigido a la arquitectura X86_64 y ARMV6, con el objetivo de ser similar a Posix en el futuro.

Capturas de pantalla:
Bootsplash:
Bota detallada:
Pánico del núcleo: 
Características
- Soporte para múltiples arquitecturas:
- x86_64 PCS con soporte ACPI
- 4 Paging de nivel
- Stacktrace/símbolo backtrace
- Buddy Zoned Buddy and Slab Asignator.
- Llamadas del sistema a través de
syscall (sin soporte para llamadas de sistema basadas en int )
- Nintendo 3DS (ARMV6)
- Conductor I2C
- Bootrom IVT
- Renderizar cadenas a la pantalla
Características compartidas (ambas arquitecturas admiten esto):
- Ubsan
- Argumentos de arranque parsables (tranquilo/detallado)
- Cargador de elfos
- Programador primitivo (mejorará las horas extras, por ahora, el enfoque está en poner todo en funcionamiento (IPC, servidores, libc, etc.))
Características futuras:
- Trapos
- kasan
- ACPI
- Smbios
- Multitarea
- Muchos controladores de hardware, incluidos, entre otros::
- Tarjetas de red
- Conductores de almacenamiento
- GPU
- Y mucho mas
- Un libc para el país de usuarios
Lista de TODO de Future Future cercano
- Haga un mejor uso del APIC (actualmente se usa solo para el temporizador)
- subsistema de memoria virtual
- ¿Nuevo administrador de memoria física? (Inseguro.)
Esto está trabajando actualmente en:
- Planificador
- IPC
- Porting MLIBC
- Initrd
- En la biblioteca de descompresión del núcleo para descomprimir el initrd
- Programa nativo (Build Machine) para construir y agregar archivos (para mantener una modularidad decente) al initrd.
- Cargue y rinde una imagen del initrd (TGA, BMP)
- Nuevas adiciones para hacer que el puerto ARMV6 sea mucho más utilizable (controlador de tarjeta SD, GPU, Vblank)
Tutorial del directorio:
- LIBS/ - Utilidades no estrictamente relacionadas con un kernel (programador, gerente de memoria, etc.), pero se requiere que funcione.
- Kernel/ - Código fuente del núcleo
- Boot/ - Todo lo que necesita la luna para arrancar
- Servicio/-Servidores especiales de micro-kernel + libc
- UserSpace/-Archivos de bootloader, configuraciones, módulos, etc. Muchos archivos se agregan automáticamente en el tiempo de compilación.
Instalación
Edificio: (suponiendo que esté utilizando una distribución basada en Debian)
Mi viaje: (inspiración para los recién llegados)
Siempre he querido hacer un sistema operativo, así que un día decidí construir uno. Resulta que es mucho trabajo y en ese entonces me abrumó por completo hasta el punto en que tomé largos descansos (durante meses) porque la información era muy escasa, y la poca información que hay está desactualizada.
He escrito sobre 4 "núcleos" durante mi experiencia de aprendizaje de desarrollo del sistema operativo, y cada vez que comencé de nuevo porque estaba demasiado abrumado, ninguno ha superado un GDT:/ (diablos, algunos donde solo los cargadores de arranque que llamaban una entrada de kernel y enrolladas)
Si es un principiante que busca comprender qué está haciendo este código y cómo puede escribir su propio núcleo con información actualizada, únase al servidor OSDEV Discord (vinculado en el wiki de Osdev en la parte inferior) y no se rinda cuando se pone difícil al principio.
He comenzado a desarrollar núcleos hace unos 8 meses al momento de escribir (con múltiples meses de descanso en el medio), y todavía tengo muchas cosas que aprender, sin embargo, mi mentalidad try harder es útil para ayudarme a superar las luchas y escribir un núcleo para el que no tuve que robar o copiar código de tutoriales u otros proyectos fuera de la falta de conocimiento.
Espero que esto te inspirara a usar esta mentalidad cuando las cosas parecen demasiado difíciles de manejar.
La mejor de las suertes ~ V01D (Tim).
Agradecimiento especial
- Gracias a sitios web como Lowlevel.eu o el Osdev Wiki, pero también algunos desarrolladores de SO geniales y realmente útiles en Github y Discord.
Toque final (recursos que uso)
- https://www.cs.cmu.edu/~ralf/files.html
- https://ethv.net/workshops/osdev/notes/notes-3.html
- https://osdev.wiki (Barebones pero Osdev Wiki actualizado)
- https://wiki.osdev.org