Introdução
Hoje, vamos explorar o FKernel, mais um dos projetos ambiciosos no mundo dos sistemas operacionais, comparável ao lendário Microsoft Xenix. Se você está interessado na evolução dos sistemas operacionais, confira este post.
Neste post, discutiremos a escolha das linguagens de programação para o FKernel, baseada em insights de um vídeo recente.
Muitos acreditam que o Rust pode substituir outras linguagens, mas, na prática, ele as complementa e não as substitui. Vamos ver como essa combinação pode beneficiar o projeto FKernel.
Alterações na Concepções do FKernel
- Adotar a base *BSD: O FKernel seguirá a estrutura de um projeto BSD, utilizando a licença BSD.
- Integração de linguagens: Embora substituiremos C por Rust, continuaremos a usar C++ e NASM.
Pode parecer contraditório, mas há razões convincentes para essa escolha.
Por Que substituir C por Rust?
O Rust foi criado para superar as limitações do C, oferecendo maior segurança, desempenho e simultaneidade no desenvolvimento de software. O compilador Rust proporciona proteção robusta contra falhas de memória, uma área onde o C++ ainda enfrenta desafios.
Embora o C++ utilize Smart Pointers para melhorar a segurança de memória, a integração do Rust traz uma camada adicional de proteção e controle.
O Abismo das linguagens seguras
Várias linguagens são consideradas seguras para a memória, incluindo:
Essas linguagens são projetadas para proteger contra erros de memória, como estouros de buffer e ponteiros pendentes. Em contraste, C e C++ permitem aritmética de ponteiros sem verificação de limites, tornando-os potencialmente inseguros.
No entanto, o C++ avançou com os Smart Pointers, semelhantes ao recurso de ARC, o que pode justificar seu uso no FKernel junto com o Rust.
O uso de Smart Pointers no FKernel
Utilizando Smart Pointers, como demonstrado no SerenityOS, podemos garantir a segurança da memória e otimizar o desenvolvimento. A abordagem de Andreas Kling mostra como os Smart Pointers podem ser adaptados para criar soluções personalizadas e eficientes no kernel.
Conclusão
O FKernel continua a seguir a ideia de um kernel híbrido, inspirando-se no XNU para combinar elementos do BSD/Unix com OpenMach, visando um sistema mais seguro e rico em funcionalidades.
Este post serve para compartilhar minhas ideias e razões sobre o projeto. Espero que tenha sido útil para você, assim como foi para mim.