Introdução
Como um entusiasta dos Unixes, Linuxes e dos BSD’s, em geral. Sempre me questionei sobre porque os BSD’s são tão pouco usados hoje em dia como desktop principal.
Primeiramente, uso como desktop principal não vai contar nem MacOSX e nem IOS. Uma coisa é usar a base do BSD para construir seu kernel, mas só contar com ela desconsidera totalmente o trabalho da Apple e da combinação com o OpenMach.
Como diria Kirk McKusick:
The other common approach is the Berkeley license. Sometimes referred to as a ‘‘Copycenter’’ license, as in take it down to the copy center and make as many copies as you want Source and patent rights may or may not be provided, i.e., you can give back your changes, or not, as you choose. FreeBSD uses a Berkeley license, which has played a big role in its success, particularly with companies that have their proprietary code in the kernel. In practice, the FreeBSD Project gets back about as much code as do GPLs open-source projects. But it takes longer as there is a learning curve
Isso significa que o código do BSD foi feito para ser modificado, recriado, adaptado e sua licença permissiva garante que você é responsável por qualquer decisão que tomar inclusive fechar o código se assim desejar.
Também cria uma faca de dois gumes, pois segundo o Handbook do FreeBSD e o Docs do FreeBSD equivalente a ArchWiki no mundo Linux e uma leitura muito recomendada, existem alguns motivos para o FreeBSD não ser adotado por uma imersa comunidade.
Hoje quero apresentar esses problemas e algumas resoluções.
Motivos para os BSD não serem tão usados ou tão populares quanto o linux
Existe uma série de resoluções, mas os principais que este post cita são:
- Os desenvolvedores do BSD estão mais interessados em aprimorar o código do que em divulgá-lo.
- Grande parte da popularidade do Linux se deve a fatores externos ao projeto Linux, como a mídia e empresas que foram criadas para prover serviço Linux. Até pouco tempo atrás os BSD de código aberto não tinham este tipo de proposta.
- Em 1992 a AT&T processou a BSDI, que comercializava o BSD/386, alegando que o produto continha código protegido por direitos autorais da AT&T. O caso foi encerrado fora dos tribunais em 1994, mas o fantasma do litígio continua assombrando. Em março de 2000, um artigo publicado na web afirma que o caso foi “recentemente encerrado”.
Existe alguma outra série de razões, estas vindas de mim sobre os BSD que podem não estar totalmente corretos, mas ainda devem fornecer alguma ideia:
- Temos um sistema operacional BSD seguro (OpenBSD), um sistema operacional BSD de alto desempenho (DragonFlyBSD), um sistema operacional BSD de uso geral (FreeBSD), e um sistema operacional de porta de entrada (GhostBSD). Mas esses sistemas são incompletos, somente o OpenBSD e o DragonFlyBSD são realmente sistemas próprios, mas ainda, sim, compartilham algum código com FreeBSD.
- Os sistemas operacionais não são totalmente focados no usuário final e exigem uma curva maior de aprendizado que o Linux. (O gerenciador de pacotes gráficos do GhostBSD está mais próximo do synaptic do que de uma loja de aplicativos como o gnome software). Ainda usamos bootloaders que sobem uma série de informações ao invés de um Plymouth…, etc.
- Softwares são muito antigos e pretendem trabalhar com tudo
Como trabalhar esses problemas e determinar soluções
Primeiramente essas dicas se referem apenas ao ambiente de desktop e servidores em x86-64.
- Limpar pacotes gordurosos (Os BSD não precisam de pacotes que não vão usar e acredite existem 30k de pacotes que você nem sabe como usa com mais de décadas de idade sem atualização).
- Reescrever alguns softwares (Não existe nenhum problema real nos existentes, mas se são velhos provavelmente vai ter um code smell por aí. Salvo o OpenBSD que está sempre revisando o código).
- Reescrever o kernel com recursos a mais (Novamente não existe nenhum problema nos kerneis existentes, quero dizer até existem, mas não é incorrigível, a reescrita só serve para facilitar).
E os novos recursos que eu cito seria a adoção de recursos como:
- Sistemas similares ao Driver Kit e ao IOKit que a Apple usa para facilitar desenvolvimento de drivers
- Sistemas como o devfs que o Linux usa para reconhecimento de dispositivos
- Sistemas de auditoria como os que o OpenBSD adicionam
- Sistemas de alto desempenho como os que o DragonFlyBSD adicionam
- Sistema de rodar aplicações Linux como o WSL e o FreeBSD adicionam
- Subsistemas que o OpenMach usa para fazer sei-lá o que (to precisando reestudar isso).
Enfim, recursos modernos para termos um sistema coeso. Claro que é um processo lento e trabalhoso para se trabalhar em um kernel.
E sendo este o primeiro passo para se fazer os BSD mais populares. Ainda temos que criar alguma distribuição focada no usuário final usando esse kernel e convencer pessoas e empresas a criarem software para o mesmo.
Isso é além de portar muitos dos softwares open-source ou convencer devs que aceitarem usar o sistema a fazer o mesmo.
Conclusão
Esse seria um projeto interessante para se fazer durantes as férias, espero que tenham gostado do post, qualquer dúvida, ideia, crítica ou sugestão deixe nos comentários.