Linux e o kernel do Windows [fechado]

9

Eu trabalho no Linux e em um amigo no Windows 7.

Fiquei espantado com a velocidade com que o NetBeans, o Eclipse, o pgAdmin e outros programas abrem muito, realmente, muito mais rápido no Linux do que no Windows.

Qual é a principal diferença entre o Linux e o kernel do Windows que faz com que a diferença de tempo seja carregada?

Ambas as máquinas têm exatamente a mesma configuração de hardware.

    
por Gerep 14.06.2012 / 20:55

4 respostas

8

Este é apenas o meu palpite, mas acho que quando você trabalha para uma empresa, onde tudo é compilado (convertido em dados binários, que computadores podem executar), ninguém pode ver mais o código-fonte, você tende a ser um muito preguiçoso, já que não importa desde que funcione .
O Linux é de código aberto, então todos podem ver o código-fonte se quiserem fazê-lo. Se você é preguiçoso, e escreve um pedaço realmente de código que realmente vai retardar o sistema ou algo do tipo, lá vai a sua reputação, como todo mundo acabou de ver. Desenvolvedores e usuários. Eu acho que essa é uma das razões pelas quais os desenvolvedores do open source tendem a ser menos preguiçosos.

Também é fato que o núcleo do kernel do Windows nunca foi escrito com a intenção de se tornar o que é hoje (nem o Linux, mas eles fizeram o esforço para otimizar os bits antigos), e os desenvolvedores simplesmente sempre foram adicionando e adicionando em cima dele, até que o código fosse tão enigmático que ninguém mais pudesse fazer algo disso. Duas propriedades do código bagunçado é que muitas vezes há muita redundância, e que você não vê mais os links entre dois pedaços de código tão facilmente, o que faz com que você não possa sequer tentar começar a otimizá-lo. Apenas um exemplo (não um enigmático);

for (int i = 0; i < 20; i++)
{
    if (x == y)
    {
        if (z <= u)
        {
            goto banana;
        }
    }
}

O exemplo acima pode ser feito com muito mais eficiência;

for (int i = 0; (i < 20) && (x == y) && (z <= u); i++)
{
    banana ();
}
    
por RobinJ 14.06.2012 / 21:10
5

Outro grande não mencionado ainda é que o Linux possui sistemas de arquivos melhores. O desempenho do NTFS com arquivos pequenos não é tão bom - o ext3 é melhor e o ext4 é muito, muito melhor. Há algumas especulações interessantes sobre por que outra pergunta .

Quando você está abrindo um programa, uma quantidade significativa do tempo de inicialização está carregando um monte de minúsculos arquivos do disco, então ter um sistema de arquivos que faz isso rapidamente é muito importante.

    
por Brendan Long 14.06.2012 / 23:57
4

Esta é apenas a minha opinião, mas acho que existem várias razões para os sistemas GNU / Linux serem mais rápidos que o Windows e nem todos estão relacionados ao kernel:

  • Obviamente, há o motivo explicado por RobinJ, é bastante óbvio que, se o software é de código aberto, o código tende a ser mais eficientemente escrito
  • O
  • Linux faz uso de componentes muito otimizados, por exemplo, usa um planejador muito otimizado que tende a maximizar a utilização da CPU.
  • Os sistemas Linux sofrem menos com a fragmentação de memória
  • Os sistemas Linux têm um uso melhor da memória principal e geralmente usam maciçamente o cache, em vez disso, os sistemas Windows tendem a usar massivamente a memória virtual
  • O kernel do Linux é continuamente atualizado e peças inúteis geralmente são removidas, embora Linus Torvalds afirme que o kernel do Linux está se tornando "enorme e inchado", em oposição as atualizações do kernel do NT são geralmente construídas sobre as existentes.
por Onyris 14.06.2012 / 22:02
3

Eu acredito que o kernel sozinho não é a resposta. O Windows 7 é a primeira vez que o Windows responde o suficiente para considerá-lo aceitável.

Eu acredito que mais do diferencial de velocidade está relacionado aos pensamentos do @ RobinJ sobre engenharia de software. Tudo * no Windows é construído no MSDN através de algum tipo de framework da Microsoft ou outro. Na verdade, isso está relacionado a como o Big Business adora a Microsoft; A Microsoft tem tudo a ver com ajudar programas / suítes / tecnologias diferentes a falar uns com os outros.

Próxima ... para tornar mais fácil para os desenvolvedores o essencial (e não reinventar a roda) A Microsoft permite que os fabricantes incluam e / ou requeiram bibliotecas pré-compiladas como o Microsoft Visual C ++ 2008 Redistributable. Ou .Net4.0, MSSQL 2005, ad nauseum. Há algo como dez anos no valor de pacotes que os desenvolvedores podem usar e desenvolver e exigir que os usuários finais instalem em seus computadores Windows para usar o novo software.

Portanto, para que o programa Zyzzyx seja carregado e executado, uma ou mais bibliotecas redistribuíveis do MSDN devem estar presentes e em execução. Essas bibliotecas determinam como os programas interagem com o SO.

Para resumir, eu diria que a compatibilidade intencional da Window ao longo de décadas de software a torna inchada e, ocasionalmente, mais lenta do que um sistema Linux comparável. Note também que eu desenvolvi software visual para windows mas não para linux ... não GTK, Qt, Py, nada, então minhas suposições sobre o linux ser menos inchado são apenas isso.

editado para adicionar: mais, o software FOSS tem pessoas que o aprimoram o tempo todo, então o GTK vai melhorar com o passar do tempo, em vez do GTK-2005 e GTK-2008 estarem no mesmo computador, enquanto a Microsoft faz isso o tempo todo.

* - ok, há exceções, tenho certeza.

    
por Chris K 14.06.2012 / 22:10

Tags