Lua OS
O Moon OS é um micro-kernel modular direcionado à arquitetura X86_64 e ARMV6, com o objetivo de ser parecidos com Posix no futuro.

Capturas de tela:
Bootsplash:
Botagem detalhada:
Pânico do kernel: 
Características
- Suporte para várias arquiteturas:
- x86_64 PCs com suporte ACPI
- Pagagem de 4 níveis
- Backtrace de Stacktrace/Symbol
- Buddy e alocador de laje zoneado.
- Chamadas de sistema via
syscall (sem suporte para chamadas de sistema baseadas int )
- Nintendo 3DS (ARMV6)
- Driver i2c
- BootROM IVT
- Renderizar seqüências para a tela
Recursos compartilhados (ambas as arquiteturas suportam isso):
- Ubsan
- Argumentos de inicialização parsável (silencioso/verboso)
- Carregador de elfo
- Agendador primitivo (será melhorado horas extras, por enquanto o meu foco está em colocar tudo em funcionamento (IPC, servidores, libc, etc.))
Recursos futuros:
- Tópicos
- Kasan
- ACPI
- SMBIOS
- Multitarefa
- Muitos motoristas de hardware, incluindo, entre outros,:
- Cartões de rede
- Drivers de armazenamento
- GPU's
- E muito mais
- Uma libc para a terra do usuário
Lista de Todo de Future Próximo
- Fazer melhor uso do APIC (atualmente é usado apenas para o timer)
- Subsistema de memória virtual
- Novo gerente de memória física? (Inseguro.)
Isso está atualmente trabalhando em:
- Agendador
- IPC
- Porta Mlibc
- Initrd
- Na biblioteca de descompressão do kernel para descomprimir o initrd
- Programa nativo (Build Machine) para criar e adicionar arquivos (para manter a modularidade decente) ao initrd.
- Carregue e renderize uma imagem do initrd (TGA, BMP)
- Novas adições para tornar a porta ARMV6 muito mais utilizável (driver de cartão SD, GPU, vblank)
Passo a passo do diretório:
- LIBS/ - Utilitários não estritamente relacionados a um kernel (agendador, gerenciador de memória etc.), mas necessário para que ele funcione.
- kernel/ - código -fonte do kernel
- Boot/ - tudo o que a lua precisa para inicializar
- Serviço/-Servidores Micro-Kernel Especiais + LIBC
- Userspace/-arquivos de bootloader, configurações, módulos, etc. Muitos arquivos são adicionados automaticamente no tempo de construção.
Instalação
Construção: (supondo que você esteja usando uma distro baseada em Debian)
Minha jornada: (Inspiração para os recém -chegados)
Eu sempre quis fazer um sistema operacional, então um dia decidi construir um. Acontece que é muito trabalho e, naquela época, isso me sobrecarregou até o ponto em que fiz longas pausas (por meses) porque as informações eram muito escassas e a pouca informação que existe está desatualizada.
Eu escrevi cerca de 4 "kernels" durante minha experiência de aprendizado de desenvolvimento do sistema operacional, e cada vez que comecei porque estava muito sobrecarregado- nenhum passou por um GDT:/ (diabos, alguns onde apenas os carregadores de inicialização chamavam de entrada de kernel e loop)
Se você é um iniciante que procura entender o que esse código está fazendo e como pode escrever seu próprio kernel com informações atualizadas, entre no OSDEV Discord Server (vinculado no wiki OSDEV na parte inferior) e não desista quando ficar difícil no início.
Comecei a desenvolver kernels há cerca de 8 meses no momento da redação (com vários meses de intervalo), e ainda tenho muitas coisas para aprender, no entanto, minha mentalidade try harder me mostrou útil para me ajudar a aproveitar as lutas e escrever um kernel para o qual não tive que roubar ou copiar o código de tutoriais ou outros projetos por falta de conhecimento.
Espero que isso o tenha inspirado a usar essa mentalidade quando as coisas parecem muito difíceis de gerenciar.
Boa sorte ~ V01D (TIM).
Obrigado especial
- Agradecemos a sites como Lowlevel.eu ou OSDEV Wiki, mas também alguns desenvolvedores de SO legais e realmente úteis no Github e Discord.
Toque final (recursos que eu uso)
- https://www.cs.cmu.edu/~ralf/files.html
- https://ethv.net/workshops/osdev/notes/notes-3.html
- https://osdev.wiki (barebones, mas atualizado o Osdev Wiki)
- https://wiki.osdev.org