Porque eu posso.
Tendo um bom tempo é o meu caminho para este projeto + Aprendo muitas coisas de baixo nível legal ao lado disso!
O Kernel Cavos é um monolítico x86_64 escrito em C relativamente simples, com alguns bits de montagem da Intel aqui e ali. Ele usa o carregador de inicialização limine e aproveita o sistema de arquivos FAT32 para inicialização junto com o Ext2 para a partição raiz. Tento manter a estrutura de código limpa e bastante fácil de entender, evitando muita abstração. Portanto, a qualidade e a clareza do código às vezes são priorizadas em relação aos ganhos de desempenho.
O Usuáriospace é o meu foco principal no momento, com o kernel sendo bastante estável. Estou tentando tornar esse sistema operacional o mais próximo possível do Linux, enquanto adicionava minhas próprias coisas em cima. Isso é visível com as chamadas do sistema exatamente como o Linux. Isso não é aleatório, eu quero que o Cavos seja o mais compatível com ele!
Não! O kernel do Cavos não compartilha o código -fonte ou os cabeçalhos com o Linux. O código -fonte do Linux é puxado durante a montagem do Usuários Space, mas apenas porque alguns programas de terceiros (portados) dependem de seus cabeçalhos. Mesmo assim, nenhum código real é compartilhado.
É importante mencionar que esses objetivos nunca podem ser satisfeitos, demore muito tempo para ser concluído (estamos conversando anos depois) ou talvez nunca sejam feitos. Além disso, esta lista não incluirá todos os recursos implementados ou planejados e podem ser alterados a qualquer momento ...
systemcall Tudo sobre isso pode ser encontrado no install.md. Vá lá para obter mais informações sobre como criar o sistema operacional corretamente, limpando binários não utilizados e outras coisas.
Sábado, 2 de março de 2024. Através de muitas soluções alternativas, decisões "ruins" e uma mentalidade dominadora de "Just-Works", eu havia reunido um kernel puramente x86 (32 bits) que poderia ingressar aplicativos de espaço para usuários de combustível. Ainda segurando o código antigo (nas costas, quando eu mal entendi conceitos simples, como dizer paginação), bibliotecas desatualizadas e muitas outras coisas. Às vezes funcionava, mas eu não estava satisfeito.
17:00; Naquela tarde, decidi iniciar um longo processo de migração de tudo para a arquitetura x86_64 e resolver muitos problemas de confiabilidade, o que fez com que os pesadelos reais depurassem. Basicamente, cheguei a um certo ponto para entender que as soluções rápidas e ditadas levam apenas a erros completamente evitáveis, que eram extremamente difíceis de identificar depois que quantidades enormes de abstrações foram adicionadas.
Este projeto é licenciado no GPL V3 (Licença Pública Geral da GNU v3.0). Para mais informações, vá para o arquivo de licença.