Com base nos arquiteturas树莓派3 e ARMv8-AArch64 , um kernel do sistema micro operações é implementado.
O projeto está organizado na forma de overview + subprojects . overview armazena todo o código. Cada subproject usa esses códigos de acordo com suas próprias necessidades, incluindo filtrar arquivos desnecessários (excluindo -os da compilação).
O projeto é desenvolvido usando a linguagem C++ moderna e a principal arquitetura de destino é ARMv8 . O compilador usado pelo projeto é g++ , portanto o código conterá algumas extensões de sintaxe de g++ , como __attribute__ , __asm__ .
Além disso, compilar
Este projeto é baseado no eclipse ( version > = 4.6.3 ). Ao compilar, você precisa usar a versão apropriada eclipse . No Windows , Linux ou MacOS , selecione File -> Open Projects from File System -> Clique em Directory , selecione o diretório em que o projeto está localizado e aberto -> Finish
O projeto possui vários subprojetos, principalmente: host , qemu_virt , raspi3 e user_space .
Os objetivos correspondentes (arquitetura) dessas configurações são: Desenvolvimento baseado no sistema operacional host host (usado principalmente para testar o gerenciamento de memória e outras funções independentes da arquitetura), desenvolvimento baseado na simulação de Qemu (usada para testar a memória virtual, interrupções etc.), desenvolvimento baseado no espaço do Raspberry Pi (usado para compreender a verificação), e o programa no programa no usuário.
Todos os subprojetos estão localizados em subprojetos.
O projeto configurou algumas metas especiais de construção. Consulte Build Targets para o projeto.
No kernel, evitar o uso de variáveis globais pode realmente ser usado especificamente para inicializar todas as variáveis globais que precisam ser definidas. Essas variáveis são convenientes de usar apenas porque já alocaram espaço durante o período de compilação. Se você precisar usá -lo, defina -o uma vez na definição e redefini -lo uma vez na função de inicialização.
Se a configuração do projeto for alterada, uma nova linha de comando deverá ser reiniciada porque todos os ambientes do Eclipse serão exportados.
Visão geral do progresso do projeto Referência Progress_current.md
Recording de referência do registro do projeto Recording_Note.MD
A estrutura e configuração dos subprojetos, consulte Subprojects/readme.md
Em andamento (talvez MIT-Licence, mas pode ser fechado novamente, agora é meio aberto e meio fechado).
Não, faça -o posix.
Siga algumas regras de codificação que podem ser mais tarde referenciadas aqui
Leia o documento que pode ser publicado posteriormente
Usando o qemu para depurar algum programa de demonstração
Tente alterar o código do kernel, reencontrar.
Então, git add -a && git Commit && git push!
Veja aqui, veja também o documento externo.
RSP3-ARMV8-BAREMital, o projeto original.
Linux, Linux, oficialmente.
Qemu, um emulador que ajuda muito.
Gvisor, um kernel espacial do usuário, pelo Google, em Go.
Modo do usuário Linux (UML), como diz o nome.
x2, um núcleo antigo em Bochs.
Tutorial Raspi3, da BZT, muito útil para iniciantes.
ARMV8 Hello World, Hello World Exemplo para ARMV8, baseado no Qemu, útil para iniciantes.