Por que Tanenbaum estava errado nos debates de Tanenbaum-Torvalds?


233

Recentemente, recebi uma leitura dos debates de Tanenbaum-Torvalds na minha aula de SO. Nos debates, Tanenbaum faz algumas previsões:

  1. Microkernels são o futuro
  2. x86 desaparecerá e as arquiteturas RISC dominarão o mercado
  3. (Daqui a cinco anos) todo mundo estará executando um sistema operacional GNU grátis

Eu tinha um ano de idade quando os debates aconteceram, por isso não tenho intuição histórica. Por que essas previsões não deram certo? Parece-me que, da perspectiva de Tanenbaum, são previsões bastante razoáveis ​​do futuro. O que aconteceu para que eles não passassem?


189
Ao prever o futuro, favorece a entropia e a sorte em detrimento da inovação e dos ideais.
ZzzzBov 22/03/12

18
Escrevi aqui uma resposta maratona que aborda alguns pontos do ponto 1. De fato, é muito difícil evitar esse debate ao discutir diferenças nas arquiteturas de kernel. A ironia mais doce é, na verdade, a assinatura, Linus "my first, and hopefully last flamefest" Torvaldsque obviamente também não se tornou realidade :)
Tim Post

13
Estou deixando isso como um comentário em vez de uma resposta (não acho que seja "suficientemente elaborado" o suficiente para ser uma resposta): Tanenbaum não estava errado em acreditar que os Microkernels são melhores, que o x86 deveria sair da arena e que o GNU OS (qualquer que seja o kernel em que roda) foi uma solução melhor. Ele era, talvez, ingênuo se realmente afirmasse uma forte crença de que isso aconteceria tão rápido (ou acontecerá), em parte por inércia social e monopólios, e em parte porque microkernels eficientes não são tão fáceis de implementar em sistemas de uso geral . (então sim, sorte )
njsg

15
Tanenbaum não está totalmente errado: na nova era pós-PC, o iOS é baseado em Mach e ARM, o Android é baseado em L4 e ARM. Apenas o GNU perdeu.
Mouviciel 22/03/12

15
@mouviciel: e o GNU apenas perdeu na área de trabalho. Servidores e dispositivos móveis e incorporados são praticamente todos os monopólios GNU.
Gbjbaanb

Respostas:


171

Microkernels são o futuro

Acho que Linus acertou os pontos nos núcleos monolíticos em seu debate. Certamente, algumas lições aprendidas com a pesquisa de microkernel foram aplicadas a núcleos monolíticos. A Microsoft costumava afirmar que o kernel do Win32 era uma arquitetura de microkernel. É um pouco exagerado quando você olha para alguns microkernels de livros didáticos, mas as alegações tinham alguma justificativa técnica.

x86 desaparecerá e as arquiteturas RISC dominarão o mercado

Se você fizer backup de desktops e servidores, o RISC domina o mercado de processadores por qualquer medida. O ARM (R significa RISC) supera o x86 em número de processadores, há mais processadores ARM do que os processadores x86 em uso e há mais capacidade total de computação ARM do que a capacidade x86. Este ano, um único fornecedor de ARM (sim, Apple) poderá vender mais que todos os fornecedores de x86 juntos. Somente na área de trabalho e no servidor o x86 domina. Desde que o Windows seja a plataforma dominante para computadores desktop e Linux para servidores, é provável que continue assim por um tempo.

Há uma parte b nisso também. Os engenheiros da Intel fizeram um trabalho incrível para tirar a vida de seu conjunto de instruções, a ponto de criar um núcleo RISC com um tradutor de código de operação que fica no topo. Compare com um dos fabricantes de chips de desktop RISC dominantes, a IBM, que não conseguiu um G5 com eficiência energética e alto desempenho para laptops da Apple em um prazo razoável.

(Daqui a cinco anos) todo mundo estará executando um sistema operacional GNU grátis

Eu acho que os vários fornecedores de sistemas operacionais ainda oferecem proposições de valor convincentes em seus sistemas operacionais. O GNU não é necessariamente o ator mais importante na comunidade de código aberto, portanto, mesmo uma adoção mais ampla de software de código aberto não se traduz necessariamente em sistemas operacionais GNU. No entanto, existem muitas coisas do GNU por aí (todos os Macs são fornecidos com o Bash do GNU , por exemplo. Provavelmente, existem algumas ferramentas do sistema GNU nos telefones Android). Eu acho que o ecossistema de computadores é muito mais diverso do que Tanenbaum previa, mesmo quando você restringe sua visão aos computadores de mesa.


8
No ponto 3, o Linux é amplamente difundido, provavelmente o sistema operacional mais usado, o Windows e o VxWorks a seguir. Portanto, o ponto 3 pode ser considerado verdadeiro. Faz 2 pontos em 3 corretos, o que é muito bom, considerando o quão imprevisível é a TI.
Deadalnix 22/03/12

11
@deadalnix - eu pretendia fazer uma menção explícita do escopo em 3, restringindo a computadores desktop. Se um farm de servidores do Google executa o Linux (funciona?) E cada caixa conta para a contagem do Linux, e meu modem a cabo executando uma versão simplificada do Linux e o meu telefone Android, então o Linux provavelmente domina. Mas, embora tenha visto bons gráficos de processadores ARM x x86 vendidos / usados ​​ao longo do tempo, não vi um para os sistemas operacionais, principalmente quando você mistura os dispositivos incorporados.
ccoakley

6
Também em relação à parte 2, as várias modernizações do x86 realmente vão alguns passos além do RISC e fazem coisas fascinantes com "micro-operações" internamente, o que oferece ainda melhor flexibilidade de agendamento com a reordenação de instruções on-the-fly, que traz melhorias de desempenho distantes além do que os adeptos do RISC podem sonhar. As CPUs RISC também podem entender isso, mas neste momento você não está comparando RISC vs. CISC, está comparando várias estratégias JIT no hardware com front-ends ISA razoavelmente abstratos.
fofo

5
@KonradRudolph recriando citação para o total de vendas via google: 3 bilhões de chips ARM enviados em 2009 ( vanshardware.com/2010/08/mirror-the-coming-war-arm-versus-x86 ), enquanto cerca de 400 milhões de chips x86 vendidos em 2011 (Número quatro vezes trimestral relatado aqui: computerworlduk.com/news/it-business/3345299/… ). O mercado incorporado é enorme e, em grande parte, não-Intel.
ccoakley

5
Não acho que o ponto 3 seja verdadeiro no sentido que Tanenbaum quis dizer. Na época, havia muito otimismo em torno do GNU HURD. Reivindicar o Linux (em qualquer variante) como uma vitória no SO GNU simplesmente não é historicamente válido. Espaço do usuário? Certo. Mas em um sentido Linux kernel ganhou apesar de GNU.
regularfry 22/03/12

60

Especialistas em software ignoraram a economia do hardware

... ou "Moore estava certo e os dois estavam errados"

A maior coisa que foi esquecida neste debate foi o impacto da tecnologia e da economia de fabricação de CPU, impulsionada pelo tamanho reduzido dos transistores, conforme expresso na Lei de Moore (não é de surpreender que eles soubessem muito sobre o hardware da CPU, esses caras estudaram e debateram software, não Economia ou fabricação de CPU). Os custos fixos de fabricação que são amortizados sobre as CPUs (por exemplo, design ISA, design de CPU e instalações de produção de CPU) cresceram rapidamente, aumentando assim o valor das economias de escala; com os custos de CPU por unidade (em termos de "retorno do investimento" e "retorno do watt"), o custo de uma CPU não precisa ser amortizado por uma ampla seleção de funções para fornecer valor, portanto, a computação em produtos com função fixa explodiu; Os orçamentos de transistor de CPU cresceram exponencialmente,

1. A escala da CPU vence a diversidade da CPU

A importância das economias de escala fez com que os benefícios de um ISA / CPU direcionado para um mercado maior (portanto mais amplo) superasse os benefícios potenciais das escolhas de design que restringem o mercado para um ISA / CPU. Os sistemas operacionais podem abordar partes cada vez maiores do mercado por ISA / CPU suportado, portanto, há pouca necessidade (ou mesmo nenhuma) de exercícios de portabilidade para permitir que um ecossistema de sistemas operacionais prospere. O problema domina o alvo do ISA e da CPU tendem a ser tão amplos que se sobrepõem, portanto, para qualquer software além de um compilador, o tamanho dos exercícios de portabilidade também diminuiu. Indiscutivelmente, Torvalds e Tanenbaumsuperestimou a parte do design e implementação do kernel que agora precisa ser ISA ou mesmo específica da CPU. Como Tanenbaum descreveu, os kernels de sistemas operacionais modernos abstraem as distinções entre CPU e ISA. No entanto, o código específico da CPU / ISA nos sistemas operacionais modernos é muito menor que um microkernel. Em vez de implementar o gerenciamento / agendamento de interrupções, gerenciamento de memória, comunicação e E / S, esses bits não portáteis tratam apenas de uma pequena fração da implementação desses serviços, com a grande maioria da arquitetura dessas funções principais do sistema operacional sendo portáteis.

2. O código aberto venceu a batalha, mas perdeu a guerra

Mais economia para o dinheiro significa que uma parcela maior da computação é realizada por produtos de função fixa, onde a capacidade de modificar o produto não faz parte da proposta de valor para o cliente. Agora, ironicamente, o código aberto floresceu nesses dispositivos de função fixa, mas, na maioria das vezes, os benefícios dessas liberdades foram percebidos mais por quem fabrica os produtos do que pelos usuários finais (o que era verdade no mercado de software naquela época: Microsoft era um grande consumidor de software de código aberto, mas seus clientes não eram). Da mesma forma, alguém poderia argumentar que o código aberto lutou mais no espaço de desktop de uso geral do que em qualquer outro lugar, mas à medida que a computação na web e na nuvem cresceu, a computação de desktop foi cada vez mais usada para um propósito mais restrito (principalmente executando um navegador), com as demais funções em execução na nuvem (ironicamente, principalmente em plataformas de código aberto). Em resumo: o código aberto realmente possui o espaço de computação de uso geral, mas o mercado se tornou mais sofisticado; o empacotamento do produto de computação com menos frequência para na função de uso geral, mas continua com o produto destinado a funções fixas, onde grande parte da vantagem da computação de código aberto está em conflito com os objetivos do produto.

3. 2 n significa crescimento k fixo As economias não são importantes

O crescimento exponencial dos orçamentos dos transistores trouxe consigo a percepção de que o custo do orçamento dos transistores de uma arquitetura CISC é quase completamente fixo. A vantagem estratégica do RISC foi que ele moveu a complexidade do conjunto de instruções da CPU para o compilador (sem dúvida, em parte motivado pelo fato de que os escritores do compilador se beneficiaram muito menos dos ISA complexos do que os desenvolvedores humanos que codificam em montagem, mas os compiladores poderiam raciocinar com muito mais facilidade matematicamente sobre e, portanto, explorar, um ISA mais simples); a economia resultante do transistor poderia ser aplicada para melhorar o desempenho da CPU. A ressalva era que as economias no orçamento do transistor de um ISA mais simples eram principalmente corrigidas (e a sobrecarga no design do compilador também era principalmente corrigida). Embora esse impacto fixo tenha sido uma grande parte do orçamento naquela época, como se pode imaginar, são necessárias apenas algumas rodadas de crescimento exponencial para que o impacto se torne trivial. Esse impacto em rápido declínio, combinado com a crescente importância da monocultura de CPU acima mencionada, significou uma janela de oportunidade muito pequena para qualquer novo ISA se estabelecer. Mesmo onde os novos ISA obtiveram sucesso, os ISA modernos "RISC" não são os ISA ortogonais descritos pela estratégia RISC, pois o crescimento contínuo nos orçamentos dos transistores e a aplicabilidade mais ampla do processamento SIMD, em particular, incentivou a adoção de novas instruções ajustadas para funções específicas. Esse impacto em rápido declínio, combinado com a crescente importância da monocultura de CPU acima mencionada, significou uma janela de oportunidade muito pequena para qualquer novo ISA se estabelecer. Mesmo onde os novos ISA obtiveram sucesso, os ISA modernos "RISC" não são os ISA ortogonais descritos pela estratégia RISC, pois o crescimento contínuo nos orçamentos dos transistores e a aplicabilidade mais ampla do processamento SIMD em particular incentivaram a adoção de novas instruções ajustadas para funções específicas. Esse impacto em rápido declínio, combinado com a crescente importância da monocultura de CPU acima mencionada, significou uma janela de oportunidade muito pequena para qualquer novo ISA se estabelecer. Mesmo onde os novos ISA obtiveram sucesso, os ISA modernos "RISC" não são os ISA ortogonais descritos pela estratégia RISC, pois o crescimento contínuo nos orçamentos dos transistores e a aplicabilidade mais ampla do processamento SIMD em particular incentivaram a adoção de novas instruções ajustadas para funções específicas.

4. Simples: Separação de Preocupações. Complexo: separação do espaço de endereço.

O kernel moderno do Linux (junto com a maioria dos outros kernels) se encaixa na definição bastante flexível de um macrokernel e não na definição restrita de um microkernel. Dito isto, com sua arquitetura de driver, módulos carregados dinamicamente e otimizações de multiprocessamento que tornam as comunicações do espaço do kernel cada vez mais parecidas com a passagem de mensagens de um microkernel, sua estrutura se parece mais com um design de microkernel (como incorporado pelo Minix) do que com o design de macrokernel (como incorporado pelo design do Linux no momento da discussão). Como um design de microkernel, o kernel Linux fornece comunicação generalizada, agendamento, manipulação de interrupções e gerenciamento de memória para todos os outros componentes do SO; seus componentes tendem a ter estruturas distintas de código e dados. Enquanto os módulos são carregados dinamicamente, pedaços de código portátil fracamente acoplados, que se comunicam por meio de interfaces fixas, não empregam uma propriedade restante dos microkernels: eles não são processos de espaço do usuário. No final, a Lei de Moore garantiu que os problemas motivados por preocupações de hardware como portabilidade (uma preocupação da Tanenbaum) e desempenho (uma preocupação da Torvalds) diminuíssem, mas os problemas de desenvolvimento de software se tornaram de suma importância. As vantagens ainda não realizadas que uma separação de espaços de endereço poderia oferecer são superadas pela bagagem adicional imposta no software OS, devido a limitações de design e ao aumento da complexidade das interfaces de componentes. s A lei assegurava que os problemas motivados por preocupações de hardware como portabilidade (uma preocupação da Tanenbaum) e desempenho (uma preocupação da Torvalds) diminuíssem, mas as questões de desenvolvimento de software se tornaram de suma importância. As vantagens ainda não realizadas que uma separação de espaços de endereço poderia oferecer são superadas pela bagagem adicional imposta no software OS, devido a limitações de design e ao aumento da complexidade das interfaces de componentes. s A lei assegurava que os problemas motivados por preocupações de hardware como portabilidade (uma preocupação da Tanenbaum) e desempenho (uma preocupação da Torvalds) diminuíssem, mas as questões de desenvolvimento de software se tornaram de suma importância. As vantagens ainda não realizadas que uma separação de espaços de endereço poderia oferecer são superadas pela bagagem adicional imposta no software OS, devido a limitações de design e ao aumento da complexidade das interfaces de componentes.

Curiosamente, o que tem sido uma forte tendência é o surgimento do hipervisor, que, como os microkernels, abstrai o hardware. Alguns afirmam que os hipervisores são microkernels. A arquitetura do hipervisor é diferente, pois as responsabilidades que pertencem aos microkernels são tratadas pelos kernels "convidados", no topo, com os hypervisores multiplexados entre eles, e a abstração do hipervisor não é um espaço genérico de mensagens e endereços de memória, mas sim uma emulação de hardware predominantemente real.

Em conclusão: o futuro favorece aqueles que adotam semântica menos rigorosa

* .. ou "nitpickers são péssimos em prever o futuro"

Na prática, grande parte do acerto / errado no debate é uma questão de semântica (e isso era parte do que Torvalds estava discutindo e o IMHO Tanenbaum não conseguiu apreciar completamente). É difícil fazer definições precisas sobre o futuro, porque existem muitos fatores fora do argumento que podem surgir; semântica mais flexível significa que suas previsões são um alvo maior no alvo do que o outro, oferecendo chances muito melhores. Se você ignorar a semântica, os argumentos avançados por Torvalds e Tanenbaum estavam certos sobre muitas coisas e errados sobre muito pouco.

tl; dr

A maioria dos ISA não se encaixa na definição semântica de RISC, mas aproveita a maioria das vantagens de design que eram distintas das CPUs RISC na época; a quantidade de SO que é específica da CPU é menor do que Tanenbaum esperava, sem falar no Torvalds; o código aberto domina a computação de uso geral, mas agora os consumidores desse mercado são principalmente os que empacotam a computação em produtos com funções mais fixas, onde grande parte dos benefícios do software de código aberto não é alcançada; separar a função do SO nos espaços de endereço não provou ser benéfico, mas separar a função do SO no hardware "virtual". Se você quiser afirmar que suas previsões foram acertadas, deixe o máximo de espaço de manobras semântico possível, assim como o Sr. Torvalds.

PS Uma observação final irônica: Linus Torvalds é um dos mais fortes defensores de manter o máximo de novas funcionalidades possível no espaço do usuário e fora do kernel do Linux.


42
  • Microkernels são o futuro

Ele entendeu errado, parece que tudo está convergindo para o uso de kernels híbridos. O Linux formalmente ainda é monolítico, mas adicionar coisas como o FUSE etc. também o torna um pouco híbrido.

  • x86 desaparecerá e as arquiteturas RISC dominarão o mercado

Ok, então o x86 não desapareceu. Mas o RISC não domina o mercado? Bilhões de smartphones usando ARM, todos os consoles de jogos usando processadores RISC, a maioria dos hardwares de rede usando processadores MIPS.

Além disso, no início dos anos 2000, o RISC e o CISC convergiram tanto, que não havia diferenças claras no design interno. Processadores x86 modernos basicamente são internamente RISC com interface CISC.

  • (Daqui a cinco anos) todo mundo estará executando um sistema operacional GNU grátis

Se por GNU OS ele quis dizer GNU Hurd, então uma previsão totalmente falhada. O que as pessoas usam massivamente é o Android. O Android é Linux, no entanto, não é o GNU, pois não usa o GNU libc. Em vez disso, usa o Bionic do Google . E a participação de mercado do Linux desktop padrão ainda está abaixo de 2%. Mas ele realmente quis dizer PCs de consumo? No mercado de servidores, o Linux domina absolutamente com 70 a 90% de participação, dependendo do segmento.


5
"No mercado de servidores, o Linux domina absolutamente com 70-90% de participação, dependendo do segmento." Onde está a prova disso?
22412 quant_dev

4
os números da vartec provavelmente são exagerados. Vou deixar isso aqui pt.wikipedia.org/wiki/OS_market_share#Servers
Federico klez Culloca

4
@quant_dev: 92% do Top500, 60-70 servidores web%, infra-estrutura inteira Google, infra-estrutura FB todo, infra-estrutura inteira Amazon ... etc
vartec

1
Você pode fornecer links para fazer backup de suas declarações?
22412 quant_dev

13
Top500: i.top500.org/stats , Google: lwn.net/Articles/357658 , Amazon: news.cnet.com/2100-1001-275155.html , FB: http: /www.infoq.com/presentations/Facebook --Software-Stack
vartec

21
  1. Não tenho certeza.

  2. Meia direita. Os chips "x86" de hoje são RISC ocultos, com basicamente uma "interface CISC". O x86 não desapareceu porque a Intel tinha participação de mercado e receita suficientes para fazer essa transição e acertar antes que outras soluções RISC capturassem participação de mercado significativa delas.

  3. Duas razões principais: compatibilidade e usabilidade.

    Novamente, os sistemas existentes (Windows e, em menor grau, Mac OS) possuem uma base instalada muito grande. Isso significa muitos usuários usando muitos programas. Os sistemas operacionais GNU gratuitos não podem duplicar isso. O projeto WINE fez muito trabalho nessa direção, mas ainda não substitui um sistema Windows real, e os desenvolvedores do WINE nem tentam afirmar que sim. As pessoas não querem usar um sistema operacional que não execute seus programas favoritos, por mais teoricamente impressionante que seja. (E sem uma base de usuários instalada, ninguém deseja desenvolver o sistema. É um problema de galinha e ovo.)

    E então chegamos à usabilidade. Minha mãe tem um sistema Windows. Ela pode usá-lo muito bem para seus propósitos. Tudo o que ela precisa para trabalhar com o computador está disponível na interface do Windows e, se eu dissesse as palavras "linha de comando", ela nem saberia do que estou falando. Até onde eu sei, ainda não é possível fazer isso em nenhum sistema operacional GNU livre. De fato, o Linux é tão difícil de trabalhar que até os maiores semideuses da comunidade têm sérios problemas com tarefas simples às vezes. E eles nunca parecem "entender" e trabalham para corrigir os problemas, e é por isso que nunca ganham participação de mercado. (O artigo vinculado deve ser uma leitura obrigatória para quem tentar produzir qualquer programa de mercado de massa!)


16
-1 para postagem no blog de 8 anos atrás, que não é mais relevante.
vartec 22/03

16
@Vartec: Não é mais relevante? Você está afirmando seriamente que um usuário hoje pode pegar o Linux e começar a executar o repertório completo de tarefas comuns do usuário final, sem precisar sequer saber que existe uma linha de comando, como no Windows ou no OSX?
Mason Wheeler

17
@Mason: quando foi a última vez que você viu, por exemplo, o Ubuntu? É mais fácil executar tarefas comuns do usuário final no Ubuntu sem o conhecimento sobre console, do que no OSX (inferno, no OSX tornar visível os arquivos ocultos requer Ph.D. em Nerdologia). No Ubuntu, coisas simplesmente funcionam. No Windows, você precisa instalar drivers ou o que for. No OSX, as coisas simplesmente não funcionam. Entre. sua mãe usa RegEdit :-P
vartec 22/03

8
@MasonWheeler: Claro. Qualquer um pode pegar Ubuntu e usá-lo com qualquer coisa de linha de comando em tudo . Meu colega de quarto - certamente não é um especialista em tecnologia - não teve problemas para mudar do Windows para o Ubuntu. Outras pessoas que conheço usar o Ubuntu - com experiência variada, mas nem todas especialistas - também não tiveram problemas. Meu antigo colega de quarto no ano passado teve mais problemas com seu Mac do que meu atual companheiro de quarto com o Ubuntu, em níveis semelhantes de experiência com computadores. (Até a impressão, de todas as coisas, era mais fácil de longe no Linux do que no Mac!) Portanto, toda a linha de comando do Linux é uma deturpação total.
Tikhon Jelvis 22/03/12

18
@MasonWheeler: Você está dizendo seriamente que um usuário hoje pode pegar o Windows e configurar uma impressora de rede?
Christoffer Hammarström

14

Eu acho que existem algumas razões bastante sérias, mas não foram mencionadas.

A primeira é a suposição bastante cega de Tanenbaum de que a superioridade técnica levaria ao domínio do mercado. As pessoas discutem há anos sobre se os microkernels (nanokernels, picokernels etc.) são tecnicamente superiores, mas, no momento, vamos apenas assumir que são. Ainda resta a questão de saber se é provável que essa superioridade técnica se traduza no domínio do mercado. Vou afirmar que não. Para a maioria das pessoas, Windows, Mac OS, etc., são bons o suficiente. Pior, as melhorias que fariam uma diferença significativa para a maioria dos usuários estariam na interface do usuário, não no kernel.

O segundo está superestimando drasticamente a taxa de mudança em um mercado (razoavelmente) maduro. É muito fácil mudar as coisas com pressa quando você tem um novo mercado. Para que essencialmente todos mudassem em cinco anos, a migração teria que estar ocorrendo a toda velocidade, como ele previu.

Eu também observaria outra maneira pela qual ele estava certo que eu não vi mencionado. As pessoas já notaram a onipresença do RISC (por exemplo, nos telefones celulares). O que eles não mencionaram é a onipresença do que eu chamaria de "microkernel 2.0". Agora isso é mais conhecido como "máquina virtual" ou "hypervisor". Eles realmente são praticamente microkernels.

A grande diferença é que Tanenbaum pensou em termos de microkernel e emulação de sistema operacional no modo de usuário, projetados especificamente um para o outro. Em vez disso, mantivemos o sistema operacional essencialmente inalterado e adaptamos o microkernel para executá-lo como está. Tecnicamente, isso não é tão bom, mas, do ponto de vista do mercado, é extremamente superior - em vez de um sistema totalmente novo, de cima para baixo, o usuário pode continuar usando a maior parte do código existente e adicionar um novo "utilitário" que realmente é um sistema operacional de microkernel.


8

Um grande motivo foi o Windows, especialmente o Windows 3.1 e um pouco mais tarde, o Windows 95 e NT 3.51. Os consumidores adoraram as interfaces GUI, em oposição aos antigos sistemas baseados em texto do Unix e DOS. Isso significava que mais pessoas comuns comprariam computadores para uso doméstico. Além disso, a explosão da Internet em meados dos anos 90 aumentou as vendas.

Os preços dos PCs também caíram ao longo dos anos 90 até chegarem ao ponto em que estão hoje. Isso ocorreu devido às economias de escala apresentadas por um aumento da demanda de consumidores e negócios. Por exemplo, todos os cinco computadores atuais custam menos do que o 486 desktop que comprei em 1992.

Agora, de certa forma, ele pode estar certo, mas em uma direção inesperada. A ascensão de dispositivos móveis, smartphones e tablets, trouxe parcialmente sistemas operacionais simplificados e pode reduzir a proeminência do x86. No entanto, eles vão muito além do previsto em 1992.


7

Em última análise, tudo se resume ao fato de que as coisas realmente não gostam de mudar.

Não migramos para um microkernel com arquitetura melhor, porque os monolíticos eram mais fáceis de criar, rodavam mais rápido e todos sabiam como construí-los. Também porque o Linux foi desenvolvido como um kernel monolítico e se tornou popular, não havia microkernels que obtiveram sucesso suficiente para decolar. (é o mesmo motivo pelo qual todos executamos o Windows, executamos o Windows porque todos executam o Windows)

RISC, outros apontaram que o x86 é praticamente uma arquitetura RISC atualmente, com um wrapper CISC no topo para compatibilidade com versões anteriores.

Muitas pessoas estão executando um sistema operacional GNU grátis - no servidor. A web é praticamente impulsionada por ela. Ninguém percebe porque todos os clientes são Windows. Naquela época, você tinha uma escolha: Linux que ainda era um sistema operacional passatempo; um sabor do Unix, mas você não podia comprar; ou barato n Windows alegre. O Linux demorou muito para substituir o Unix e ainda não possui uma solução atraente para rodar na área de trabalho (em parte devido a problemas ideológicos com diferentes sistemas Windows, drivers de gráficos binários e falta de uma ABI estável). No entanto, está indo muito bem em outros mercados que não são de desktop, como incorporado e móvel.


6

Tudo é verdade se você não acha que um computador é algo na sua área de trabalho.

  1. Os microkernels verdadeiros nunca funcionaram porque nunca foram micro o suficiente. Se todo o seu linux incorporado despojado é menor que o bit específico x86 do kernel do MACH, a questão dos micro-kernels é relevante?

  2. O RISC está dominando o mercado. Mais cpus ARM são vendidos a cada ano que X86 cpus. Você provavelmente nunca está a mais de 6 pés de um processador ARM.

  3. Quase todo mundo está executando o Linux, está no roteador, na caixa de TV, no Tivo e no telefone Android - eles simplesmente não sabem que eles têm um sistema operacional


4
"microkernels nunca funcionaram porque nunca foram micro o suficiente"> Pelo que entendi, a palavra "micro" não se refere necessariamente a bytes ou linhas de código. A idéia é inserir a funcionalidade no espaço do usuário, tornando os serviços fornecidos pelo próprio kernel mínimos. Por exemplo, um sistema com um microkernel teria um processo de usuário dedicado a manipular o sistema de arquivos. Portanto, a existência de uma versão simplificada do linux menor em tamanho que o minix não é realmente relevante.
Robz

1
O @Robz Size é meio relevante - o objetivo de um microkernel é fornecer portabilidade e permitir certos casos extremos (como executar dois ambientes de SO em uma máquina ao mesmo tempo sem virtualização). Se o microkernel for maior que um híbrido / monólito que limita as plataformas nas quais ele pode ser implantado, E tende a destruir o argumento de que é mais fácil obter portabilidade escrevendo um pequeno componente se ele não for menor que a alternativa.
22412 Marcin

4

1) Ele estava errado nos microkernels. Para meu entendimento, a necessidade de requisitos de velocidade supera a separação de preocupações impostas nos microkernels, pelo menos no kernel do Linux.

2) A arquitetura predominante em tablets e celulares é o ARM, que é um conjunto de instruções RISC. Até o Windows foi portado.

3) Todo mundo não executa um SO GNU grátis. Isso ocorre principalmente devido a patentes e compatibilidade com versões anteriores. Aqueles que não desejam o Windows frequentemente escolhem o OS X.


1) a velocidade importava ainda mais naquela época! Não tenho certeza se isso importaria tanto hoje.
precisa

Depende de onde estão os seus gargalos.

Quando seu único requisito é "ser mais rápido que o outro cara", não fica mais fácil com o tempo. Na minha opinião, houve um período muito curto de tempo em que o HURD poderia ter ultrapassado o Linux como uma opção viável, e eles perderam tempo perdendo tempo em uma porta de L4 para Mach.
regularfry 22/03

2

1. Microkernels falharam

Pelas razões que Linus Torvalds afirmou, que no papel parece teoricamente atraente, mas na implementação em sistemas modernos - que são sistemas muito complexos - a complexidade se torna exponencialmente incontrolável. O estudo de caso é o GNU Hurd, um sistema totalmente microkernel que nem sequer conseguiu realizar funções básicas. O Mac OS X é semelhante ao Hurd em estrutura e é o sistema operacional menos estável e mais restrito do mercado.

2. arquitetura da CPU

Isso tornou-se diversificado para vários casos de uso. Uma arquitetura de CPU não dominou porque os casos de uso incorporados, móveis, de desktop, servidor e assim por diante são diferentes e exigem abordagens diferentes. Tannenbaum não viu essa diversificação.

3. GNU vs Mundo?

O GNU não dominou, mas o Linux dominou no servidor, incorporado e móvel. Os tablets e telefones da Apple executam o iOS, que é simplesmente o Unix antigo. É difícil obter estatísticas precisas para implantações do Linux no desktop, porque não existe um mecanismo principal real - venda de unidades - que certamente possa fornecer um valor exato. A maioria das implantações do Linux na área de trabalho às vezes são registradas como implantações do Windows porque os usuários compram um sistema Windows e depois escrevem sobre ele com o Linux. No entanto, se você segmentar sistemas operacionais, o Linux terá cerca de 5-6% na área de trabalho, de acordo com http://www.w3schools.com/browsers/browsers_os.asp, e isso é igual ao número de usuários do Windows Vista em todo o mundo, o que é altamente significativo .

Com base em minhas próprias estimativas de várias fontes, parece que o Linux na área de trabalho pode realmente ser igual ao número de usuários no Windows XP - aproximadamente 25% - se você contar com países não ocidentais como China e Índia, onde o Linux é mais popular do que em nos EUA ou na UE, mas que podem não ser contados nas estatísticas ocidentais porque contam apenas o tráfego para sites de língua inglesa destinados a ocidentais.

Na Índia, a maioria dos estudantes universitários usa o Ubuntu ou o Fedora, porque este é o sistema operacional padrão dos sistemas de ensino indianos e dos famosos IITs. A maioria dos escritórios do governo indiano também usa Linux. Na China, o Red Flag Linux é o sistema operacional oficial do governo e dos sistemas escolares chineses - Academies of Arts and Sciences - e é o sistema operacional recomendado na China pela mídia estatal como um esforço para impedir que jovens chineses empobrecidos usem cópias piratas do Windows. Se você contasse o uso do Linux na Índia e na China, chocaria a maioria dos especialistas em tecnologia ocidentais e mudaria radicalmente as percepções do verdadeiro domínio do desktop Linux nos países em desenvolvimento não ocidentais, onde é dominante.


1
A realidade é que o Windows está sendo realmente massacrado na frente do SO para desktop e servidor. Se você acha que apenas 45% dos usuários usam o Windows 7, isso significa que a adoção de novos ciclos de atualização do sistema operacional Windows diminui um pouco de 10 a 15% e os usuários ficam com a versão antiga ou acessam o Mac ou Linux. Para servidores a situação é ainda pior, pois cada servidor Windows atualizar 20-30% dos usuários de mudar imediatamente para clusters de servidores Linux ...
AG Restringere


1

A produção ficou mais barata, o x86 chegou tão perto do preço do RISC, que não era mais possível usá-lo. Havia também um pequeno bloqueio de fornecedor.


Eu não acho que o driver para o RISC já tenha sido um preço, mas as arquiteturas RISC foram mais bem projetadas que o x86. Infelizmente, o MIPS e o SPARC nunca aumentaram muito bem, e o DEC ficou sem dinheiro antes que o Alpha tivesse participação de mercado suficiente para importar. A Intel conseguiu aumentar bastante o desempenho a partir do x86, então não havia realmente um motivo convincente para mudar (para a maioria das pessoas). Agora que o desempenho é medido em termos de watts que MHz, o x86 começa sua lenta queda na irrelevância.
TMN

Sim, eu sei, eu estava apenas me referindo por que o RISC aumentou muito mais rápido que o RISC no começo. Claro que hoje em dia isso mudou muito.
21412 Lucas Kauffman

1
  1. Os microkernels substituem as chamadas de método pelas mensagens entre processos, o que aumenta a complexidade do desenvolvimento para alguns benefícios hipotéticos. Como se vê, você pode obter praticamente as mesmas vantagens de uma boa componenteização, mesmo que tudo esteja vivendo em um grande processo.
  2. A questão não é mais relevante. As arquiteturas CISC não existem mais, todos os processadores modernos são RISC em seus corações, mas isso não matou o conjunto de instruções x86. Os processadores x86 desde a era Pentium-Pro (17 anos atrás) usam a tradução de código operacional para permitir que um núcleo essencialmente RISC pareça uma CPU x86 do lado de fora.
  3. Pior clássico é melhor . Os efeitos de iteração, pragmatismo, rede e ecossistema superam a pureza sempre.

1

Microkernels são o futuro x86 desaparecerá e as arquiteturas RISC dominarão o mercado (daqui a cinco anos) todos estarão executando um sistema operacional GNU grátis

Depende de como você vê e define o futuro, no sentido tradicional de que suas previsões falharam.

No entanto, o tempo ainda não terminou (outra discussão mais profunda à parte) .

Assim, as coisas ainda podem mudar:

  1. Microkernels ou alguma variante podem voltar

  2. O RISC / ARM pode muito bem dominar -> tablets / celulares

  3. Daqui a 10 ou 15 anos. Quem sabe, o código aberto está mudando o mundo lentamente ..


1
Claro que as coisas podem mudar no futuro. Minha pergunta é sobre como o mundo está agora e por que ele ainda não refletiu suas previsões.
Robz

Todas essas razões já foram listadas por outras pessoas. Estou oferecendo uma visão alternativa. Como parte de qualquer discussão saudável, todas as perspectivas devem ser consideradas pelo menos. Viva por muito tempo e prospere, meu amigo.
Darknight

Cerca de 3, a diferença é que o sistema operacional GNU especificamente não é mais relevante. Ninguém usa o kernel GNU Hurd, e se você remover todas as ferramentas de espaço de usuário GNU dos desktops Linux ou OS X, a maioria das pessoas nem notaria. Se você observar outras implementações bem-sucedidas de sistemas operacionais de código aberto (por exemplo, roteadores baseados em Linux e Android), a maioria delas também não depende de componentes GNU. Existem muitas ferramentas GNU que são muito populares e úteis, sim, mas estão longe de fazer parte do "sistema operacional" que as pessoas usam.
ehabkost

0

Para 2: O conjunto de instruções CISIC tem uma grande vantagem: é mais compacto, como código de máquina compactado. Hoje em dia é muito barato decodificar instruções CISC em micro-ops e é muito caro acessar a RAM. Portanto, o CISC tem a vantagem de inserir mais código nos caches L1 / L2 / L3


0

Lembro-me da hora - e da hora que a precedeu. Não sei sobre microkernals, mas

2) A idéia do RISC tinha duas pernas: que otimizações de software pudessem ser feitas em software melhor do que no hardware, e que chips RISC pudessem ser economicamente economicamente mais rápidos que os chips CISC.

Ambas as idéias se mostraram falsas no curto prazo. A Intel podia, e conseguiu, fabricar chips CISC que cronometravam instruções mais rapidamente que os chips RISC concorrentes, a um preço competitivo. A Intel poderia, e fez, fabricar chips CISC que melhoraram a otimização do programa em hardware do que o compilador ou o supervisor de tempo de execução do software - e qualquer otimização de software pode ser adicionada, como faria com um Chip RISC.

3) Ciência da Computação, Programação e Operações, foram completamente reinventadas 4 vezes em minha carreira. Do quadro principal para o PC. Da linha de comando para a GUI. De GUI para internet. Da Internet para o iPad. A revolução parece normal agora, mas nós não prevíamos isso. Como todos os programadores mais antigos da época, ele previa o "fim da história".

Muito poucas pessoas estavam executando um sistema operacional GNU em cinco anos, porque a contagem foi reiniciada.

Talvez ainda esteja acontecendo. Há cinco anos, você teria previsto que nosso Windows Server seria substituído por servidores * nix (enquanto escrevo, o SAMBA lançou um Servidor de Domínio AD, que era a peça que faltava no quebra-cabeça). Não vai acontecer onde eu trabalho: não teremos servidores locais.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.