Fundo
Há alguns anos ouvi pessoas dizendo que o OSX e o Linux eram melhores que o Windows, também me lembro de ter lido algo que dizia que o sistema operacional Solaris não fragmentava seus arquivos e que o sistema de arquivos do Linux estava quase no mesmo passo mas nenhuma dessas afirmações parecia ter base ou referências.
Pergunta
Quais são alguns critérios objetivos que podem ser usados para comparar sistemas operacionais entre si?
Responder1
Acho que você pode pegar os métodos de comparação de sistemas operacionais e dividi-los em dois grupos:
- Características
- Diferenças estruturais
Primeiro, diferenças estruturais: os sistemas operacionais de hoje são bastante semelhantes nos bastidores. Basicamente todos têm alguma influência de Brian Kernighan e Dennis Ritchie, os dois que trabalharam na linguagem de programação C e também no UNIX. Na verdade, muitos dos sistemas operacionais atuais, como Linux, Solaris e OS X, são categorizados como "semelhantes ao UNIX", porque são descendentes do UNIX de uma forma ou de outra. A filosofia do UNIX era basicamente tornar tudo simples, ou mais precisamente, "básico", e que cada programa deveria ter uma e exatamente uma função. Esses conceitos ainda são usados hoje.
Quanto ao Windows, o estranho, também foi influenciado pelo trabalho de K&R. Embora o Windows não seja um sistema "semelhante ao UNIX", ele é escrito em C, a linguagem inventada por K&R, e apresenta certas semelhanças. Por exemplo, a “Tela Azul da Morte” é apenas a versão do Windows dopânico do kernel, uma ideia que foi inventada junto com o UNIX.
Todos os principais sistemas operacionais de hoje são baseados em um esquema de design de kernel chamado kernel "monolítico". Isso significa apenas que o kernel é executado como um programa. Uma implicação disso é que todo o código deste programa tem controle total sobre todos os recursos do seu computador, o que pode causar sérios danos aos bugs. Houve umdebate conhecidosobre a possibilidade de "dividir" o kernel de um sistema operacional em programas separados para melhorar a estabilidade e a segurança. Este design é chamado de "microkernel". Como mencionei, todos os sistemas operacionais atuais são baseados no design de kernel monolítico, talvez por causa de seu melhor desempenho, ou talvez apenas porque é assim há muito tempo.
Quanto aos recursos, esta é provavelmente a grande comparação, já que, como mencionado acima, todos os sistemas operacionais convencionais de hoje são estruturalmente muito semelhantes. E, na verdade, os recursos variam apenas ligeiramente na minha opinião. Este realmente depende de quem você está perguntando. Por exemplo, o Mac OS X possui alguns recursos bastante interessantes, como XGrid e OpenCL (embora agora também funcione em outras plataformas). Também é muito fácil de usar. Mas também foi criticado como “carregando bagagem”, talvez referindo-se ao seu sistema de arquivos relativamente desatualizado. Além disso, só funciona em hardware Apple.
O Linux é ótimo para servidores e supercomputadores devido à sua abertura e aparente superioridade com multiprocessamento. É também uma das opções mais seguras que existem. Mas também foi criticado por não ser tão fácil de usar para um ambiente de desktop e não ser suportado oficialmente por nenhuma grande empresa. No entanto, o Linux é provavelmente o caminho a percorrer para o software mais inovador, uma vez que é alterado com frequência. Na verdade, o Linux pode estar recebendo umnovo sistema de arquivosenovo gerenciador de janelasno futuro próximo.
Depois, há o Windows. O Windows, assim como o OS X, é suportado por uma grande empresa e você encontra muitos softwares para esta plataforma. Pela conversa sobre recursos e estrutura do sistema operacional acima, você pode ver que eles não são tão diferentes, então essa abundância de software disponível é provavelmente o que mantém a participação de mercado deste sistema operacional à tona. Além dessa clara vantagem, há também o fato de que ele funcionará em vários hardwares diferentes, ao contrário do OS X.
Então você vê que os sistemas operacionais de hoje não são tão diferentes uns dos outros. E muitos dos recursos criados hoje assumem a forma de software de código aberto, que pode ser usado em qualquer um desses sistemas operacionais. No entanto, existem algumas diferenças claras, como o hardware em que podem ser executados legalmente, a abertura do código, etc. Sinta-se à vontade para fazer mais perguntas, se desejar.
Responder2
Qualquer comparação de sistemas operacionais precisa ser feita no contexto de “adequação para uso”. Você tem que definir o que deseja que o sistema operacionalfazerantes de decidir qual é o melhor para qualquer caso de uso específico.
No entanto, certamente existem pontos objetivos de comparação. Uma lista não exaustiva inclui:
- Suporte de hardware
- Ecossistema de aplicativos
- Ecossistema de desenvolvimento
- Suporte ao sistema de arquivos
- Gestão de recursos
- Gerenciamento de memória
- Agendamento de processos
- Controles de E/S
- Implementação de pilha TCP
- Contabilidade em nível de recurso
- Segurança
- Mecanismos de segurança em nível de sistema operacional
- Mecanismos de segurança em nível de sistema de arquivos
- Recursos de auditoria
- Contabilidade de processos
- Gerenciamento de usuários/funções
- Serviços de sistema nativos
- Benchmarks de desempenho específicos de aplicativos
Há muitos detalhes para cada um desses tópicos, e é por isso que é improvável que você encontre uma resposta canônica para sua pergunta.