Bambos o kernel Linux e o kernel MacOS são baseados em UNIX. Algumas pessoas dizem que o macOS é “linux”, alguns dizem que ambos são compatíveis devido a semelhanças entre comandos e hierarquia do sistema de arquivos.

Índice

Kernel do macOS

Em 1985, Steve Jobs deixou a Apple devido a um desacordo com o CEO John Sculley e o conselho de administração da Apple. Ele então fundou uma nova empresa de computadores chamada NeXT. Jobs queria que um novo computador (com um novo sistema operacional) fosse lançado rapidamente. Para economizar tempo, a equipe NeXT usou o kernel Carnegie Mellon Mach e partes da base de código BSD para criar o sistema operacional NeXTSTEP.

NeXTSTEP sistema operacional desktop

NeXT nunca se tornou um sucesso financeiro, em parte devido ao hábito de Jobs de gastar dinheiro como se ele ainda estivesse na Apple. Entretanto, a Apple tentou, sem sucesso, atualizar seu sistema operacional em várias ocasiões, até mesmo em parceria com a IBM. Em 1997, a Apple comprou o NeXT por 429 milhões de dólares. Como parte do negócio, Steve Jobs retornou à Apple e o NeXTSTEP tornou-se a fundação do macOS e iOS.

kernel Linux

Embora o kernel macOS, o Linux não foi criado como parte de uma empresa comercial. Ao invés disso, ele foi criado em 1991 pelo estudante de computação Linus Torvalds. Originalmente, o kernel foi escrito de acordo com as especificações do computador do Linus porque ele queria tirar proveito do seu novo processador 80386.

Linus postou o código para seu novo kernel na web em agosto de 1991. Logo, ele estava recebendo sugestões de código e recursos em todo o mundo. No ano seguinte, Orest Zborowski portou o sistema X Windows para Linux, dando a ele a capacidade de suportar uma interface gráfica de usuário.

Recursos do kernel MacOS

O kernel MacOS é oficialmente conhecido como XNU. A sigla significa “XNU não é Unix”. De acordo com a página oficial do Github da Apple, XNU é “um kernel híbrido que combina o kernel Mach desenvolvido na Carnegie Mellon University com componentes FreeBSD e C++ para os drivers”.

A parte do subsistema BSD do código é “normalmente implementado como servidores userspace em sistemas de microkernel”. A parte Mach é responsável pelo trabalho de baixo nível como multitarefa, memória protegida, gerenciamento de memória virtual, suporte a depuração do kernel e console I/O.

 recursos do kernelmacos

Map do MacOS: o coração de tudo se chama Darwin; e dentro dele, temos utilitários de sistema separados e o kernel XNU, que é composto em partes pelo kernel Mach e pelo kernel BSD.

Unlike Linux, este kernel é dividido no que eles chamam de kernel híbrido, permitindo que uma parte dele pare para manutenção, enquanto outra continua a funcionar. Em vários debates isto também abriu a questão do facto de um kernel híbrido ser mais estável; se uma das suas partes parar, a outra pode reiniciá-lo.

Recursos do kernel Linux

Embora o kernel macOS combine as capacidades de um microkernel com Mach e um kernel monolítico como o BSD, o Linux é apenas um kernel monolítico. Um kernel monolítico é responsável pelo gerenciamento da CPU, memória, comunicação inter-processo, drivers de dispositivos, sistema de arquivos e chamadas de serviço do sistema. Ou seja, ele faz tudo sem subdivisões.

Obviamente, isto já ganhou muita discussão mesmo com o próprio Linus e outros desenvolvedores, que afirmam que um kernel monolítico é mais suscetível a erros além de ser mais lento; mas o Linux é o oposto disto a cada ano, e pode ser otimizado como um kernel híbrido. Além disso, com a ajuda do RedHat, o kernel agora inclui um Live Patch que permite a manutenção em tempo real sem necessidade de reinicialização.

Diferenças entre MacOS Kernel (XNU) e Linux

  1. O kernel macOS (XNU) existe há mais tempo que o Linux e foi baseado numa combinação de duas bases de código ainda mais antigas. Isto pesa a favor, pela estabilidade e história.
  2. Por outro lado, o Linux é mais recente, escrito do zero e usado em muitos outros dispositivos; tanto que está presente em todos os 500 melhores entre os melhores supercomputadores e no recém inaugurado supercomputador norte-americano.

No escopo do sistema, não temos um gerenciador de pacotes via linha de comando no terminal macOS.

A instalação dos pacotes no formato .pkg – como o BSD – é através desta linha de comando, se não através da GUI:

$ sudo installer -pkg /path/to/package.pkg -target /

NOTE: MacOS .pkg é totalmente diferente de BSD .pkg!

Não pense que o macOS suporta programas BSD e vice-versa. Ele não suporta e não instala. Você pode ter um comando equivalente ao apt no MacOS, em 2 opções:

Instalando o Homebrewor MacPorts. No final, você terá a seguinte sintaxe:$ brew install PACKAGE

$ port install PACKAGE

Lembrar que nem todos os programas/pacotes disponíveis para Linux ou BSD estarão em MacOS Ports.

Compatibilidade

Em termos de compatibilidade, não há muito a dizer; o núcleo Darwin e o kernel Linux são tão distintos como comparar o kernel Windows NT com o kernel BSD. Os drivers escritos para Linux não rodam em macOS e vice-versa. Eles devem ser compilados previamente; Curiosamente, o Linux tem uma série de daemons macOS, incluindo o servidor de impressão CUPS!

O que temos em comum na compatibilidade são, na verdade, ferramentas terminais como os pacotes GNU Utils ou Busybox, por isso temos não só o BASH mas também o gcc, rm, dd, top, nano, vim, etc. E isto é intrínseco a todas as aplicações baseadas em UNIX. Além disso, temos a arquitetura de pastas do sistema de arquivos, pastas comuns comuns para root in /, / lib, / var, / etc, / dev, e assim por diante.

Conclusão

macOS e Linux têm suas semelhanças e diferenças, assim como o BSD comparado ao Linux. Mas como são baseados em UNIX, eles compartilham padrões que os tornam familiares ao ambiente. Aqueles que usam Linux e migram pro macOS ou vice-versa estarão familiarizados com uma série de comandos e funcionalidades.

A diferença mais marcante seria a interface gráfica, cujo problema seria uma questão de adaptação pessoal.


Alojamento LinuxAndUbuntu é patrocinado por massiveGRID