Perché Tanenbaum aveva torto nei dibattiti Tanenbaum-Torvalds?


233

Recentemente mi è stata assegnata la lettura dei dibattiti Tanenbaum-Torvalds nella mia classe OS. Nei dibattiti, Tanenbaum fa alcune previsioni:

  1. I microkernels sono il futuro
  2. x86 si estinguerà e le architetture RISC domineranno il mercato
  3. (Tra 5 anni) tutti eseguiranno un sistema operativo GNU gratuito

Avevo un anno quando sono avvenuti i dibattiti, quindi mi manca l'intuizione storica. Perché queste previsioni non sono state eliminate? A mio avviso, dal punto di vista di Tanenbaum, sono previsioni abbastanza ragionevoli del futuro. Che cosa è successo in modo che non si verificassero?


189
Nel prevedere il futuro, favorire l'entropia e la fortuna rispetto all'innovazione e agli ideali.
zzzzBov

18
Ho scritto un po 'di una risposta maratona qui che copre un terreno sul punto 1. Infatti, è abbastanza difficile da evitare che il dibattito quando si parla di differenze di architetture del kernel. L'ironia più dolce è in realtà la firma, Linus "my first, and hopefully last flamefest" Torvaldsche ovviamente non si è avverata anche :)
Tim Post

13
Lo sto lasciando come un commento invece di una risposta (non credo sia abbastanza "elaborato" da essere una risposta): Tanenbaum non ha sbagliato a credere che i Microkernels siano migliori, che x86 dovrebbe lasciare l'arena e che il sistema operativo GNU (qualunque sia il kernel su cui gira) era una soluzione migliore. Era, forse, ingenuo se affermasse davvero che sarebbe successo così in fretta (o succederà del tutto), in parte a causa dell'inerzia sociale e dei monopoli, e in parte perché i microprocessori efficienti non sono così facili da implementare nei sistemi di uso generale . (quindi sì, fortuna )
njsg

15
Tanenbaum non ha del tutto torto: nella nuova era post PC, iOS si basa su Mach e ARM, Android si basa su L4 e ARM. Solo GNU ha perso.
mouviciel,

15
@mouviciel: e GNU persi solo sul desktop. Server e dispositivi mobili e integrati sono praticamente tutti monopoli di GNU.
gbjbaanb,

Risposte:


171

I microkernels sono il futuro

Penso che Linus abbia centrato i punti sui kernel monolitici nel suo dibattito. Certamente alcune lezioni apprese dalla ricerca sul microkernel sono state applicate ai kernel monolitici. Microsoft a volte sosteneva che il kernel Win32 fosse un'architettura microkernel. È un po 'allungato quando guardi alcuni microkernels da manuale, ma le affermazioni avevano una giustificazione tecnica.

x86 si estinguerà e le architetture RISC domineranno il mercato

Se si esegue il backup da desktop e server, RISC domina il mercato dei processori con qualsiasi misura. ARM (R sta per RISC) supera il numero di processori x86, ci sono più processori ARM rispetto ai processori x86 in uso e c'è una capacità di elaborazione ARM totale maggiore rispetto alla capacità di elaborazione x86. Quest'anno, un singolo fornitore ARM (sì, Apple) potrebbe vendere più di tutti i fornitori x86 messi insieme. Solo nello spazio desktop e server domina x86. Finché Windows è la piattaforma dominante per i computer desktop e Linux per i server, è probabile che questo rimanga vero per un po '.

C'è anche una parte b per questo. Gli ingegneri Intel hanno fatto un lavoro straordinario per spremere la vita dal loro set di istruzioni, fino al punto di creare un core RISC con un traduttore di codici operativi che si trova in cima. Confronta con uno dei principali produttori di chip desktop RISC, IBM, che non è riuscito a ottenere un G5 efficiente dal punto di vista energetico e ad alte prestazioni per i laptop Apple in un lasso di tempo ragionevole.

(Tra 5 anni) tutti eseguiranno un sistema operativo GNU gratuito

Penso che i vari fornitori di sistemi operativi offrano ancora interessanti proposte di valore sui loro sistemi operativi. GNU non è nemmeno necessariamente il giocatore più importante nella comunità Open Source, quindi anche un'adozione più diffusa del software open source non si è necessariamente tradotta in sistemi operativi GNU. Tuttavia, ci sono un sacco di cose GNU là fuori (tutti i Mac vengono forniti con Bash di GNU , per esempio. Probabilmente ci sono alcuni strumenti di sistema GNU sui telefoni Android). Penso che l'ecosistema informatico sia molto più diversificato di quanto previsto da Tanenbaum, anche quando si limita la visualizzazione ai computer desktop.


8
Al punto 3, Linux è molto diffuso, probabilmente il sistema operativo più usato, Windows e VxWorks seguenti. Quindi il punto 3 può essere considerato vero. Rende 2 punti su 3 corretti, il che è abbastanza buono considerando quanto sia imprevedibile l'IT.
deadalnix il

11
@deadalnix - Volevo menzionare esplicitamente l'ambito su 3, limitandomi ai computer desktop. Se una server farm di Google esegue Linux (lo fa?) E ogni casella conta per il conteggio di Linux, e il mio modem via cavo esegue una versione ridotta di conteggi di Linux e il mio telefono Android conta, quindi Linux probabilmente domina. Ma mentre ho visto dei grafici carini dei processori ARM vs x86 venduti / utilizzati nel tempo, non ne ho visto uno per i sistemi operativi, in particolare quando si mescolano i dispositivi integrati.
ccoakley,

6
Sempre per quanto riguarda la parte 2, le varie modernizzazioni x86 in realtà vanno oltre i RISC e fanno cose affascinanti con "micro-operazioni" internamente che offrono una flessibilità di pianificazione ancora migliore con il riordino delle istruzioni al volo, che porta a miglioramenti delle prestazioni che sono lontani oltre ciò che gli aderenti al RISC possono persino sognare. Anche le CPU RISC potrebbero ottenerlo, ma a questo punto non stai confrontando RISC vs. CISC, stai confrontando varie strategie JIT interne all'hardware con front-end ISA piuttosto astratti.
soffice

5
@KonradRudolph ricrea la citazione per le vendite totali tramite google: 3 miliardi di chip ARM spediti nel 2009 ( vanshardware.com/2010/08/mirror-the-coming-war-arm-versus-x86 ) mentre circa 400 milioni di chip x86 venduti nel 2011 (4 volte il numero trimestrale riportato qui: computerworlduk.com/news/it-business/3345299/… ). Il mercato embedded è enorme e in gran parte non Intel.
ccoakley,

5
Non credo che il punto 3 sia vero nel senso che Tanenbaum intendeva. All'epoca c'era molto ottimismo attorno a GNU HURD. Rivendicare Linux (in qualsiasi variante) come una vittoria del sistema operativo GNU non è storicamente valido. Spazio utente? Sicuro. Ma in un certo senso Linux ha vinto il kernel nonostante GNU.
dal

60

Gli esperti di software hanno ignorato l'economia dell'hardware

... o "Moore aveva ragione e avevano entrambi torto"

La cosa più grande che è stata trascurata in questo dibattito è stato l'impatto della tecnologia di produzione della CPU e dell'economia, guidata dalla riduzione delle dimensioni dei transistor come espresso nella Legge di Moore (non sorprende come se sapessero molto sull'hardware della CPU, questi ragazzi hanno studiato e discusso di software, non Produzione di CPU o economia). I costi di produzione fissi che sono ammortizzati sulla CPU (ad es. Progettazione ISA, progettazione della CPU e strutture di produzione della CPU) sono cresciuti rapidamente, aumentando così il valore delle economie di scala; con i costi della CPU per unità (in termini di "bang for the buck" e "bang for the watt"), il costo di una CPU non deve essere ammortizzato su una così ampia selezione di funzioni per fornire valore, quindi il calcolo dei prodotti con funzione fissa è esplosa; I budget dei transistor CPU sono cresciuti esponenzialmente,

1. La scala della CPU vince sulla diversità della CPU

L'importanza delle economie di scala ha reso i vantaggi di un ISA / CPU rivolto a un mercato più ampio (quindi più ampio) supera i potenziali benefici delle scelte di progettazione che restringono il mercato di un ISA / CPU. I sistemi operativi possono rivolgersi a porzioni sempre più grandi del mercato per ISA / CPU supportate, quindi non c'è bisogno (o addirittura non c'è bisogno) di esercizi di porting per consentire a un ecosistema di sistemi operativi di prosperare. I domini problematici Gli obiettivi di ISA e CPU tendono ad essere così ampi che si sovrappongono per lo più, quindi per qualsiasi software al di fuori di un compilatore, anche la dimensione degli esercizi di porting è diminuita. Probabilmente, sia Torvalds che Tanenbaumsopravvalutato la parte di progettazione e implementazione del kernel che ora deve essere ISA o specifica della CPU. Come descritto da Tanenbaum, i moderni kernel del sistema operativo eliminano le distinzioni tra CPU e ISA. Tuttavia, il codice specifico CPU / ISA nei moderni sistemi operativi è molto più piccolo di un microkernel. Invece di implementare la gestione / pianificazione degli interrupt, la gestione della memoria, la comunicazione e l'I / O, questi bit non portatili affrontano solo una piccola parte dell'implementazione di tali servizi, con la maggior parte dell'architettura anche di queste funzioni del sistema operativo principale portatili.

2. Open Source ha vinto la battaglia, ma ha perso la guerra

Un maggiore rapporto qualità-prezzo significa che una quota maggiore di elaborazione viene eseguita da prodotti a funzione fissa, in cui la capacità di modificare il prodotto non fa parte della proposta di valore per il cliente. Ironia della sorte, l'open source è fiorito in questi dispositivi a funzione fissa, ma il più delle volte, i benefici di quelle libertà sono stati realizzati più da coloro che producono i prodotti piuttosto che dagli utenti finali (che in realtà era vero anche per il mercato del software di allora: Microsoft era un grande consumatore di software open source, ma i loro clienti non lo erano). Allo stesso modo, si potrebbe sostenere che l'open source ha lottato più nello spazio desktop per scopi generici che in qualsiasi altro luogo, ma poiché il web e il cloud computing sono cresciuti, il desktop computing è stato sempre più utilizzato per uno scopo più ristretto (principalmente eseguendo un browser), con le restanti funzioni in esecuzione nel cloud (ironicamente, principalmente su piattaforme open source). In breve: l'open source possiede davvero lo spazio di elaborazione per scopi generici, ma il mercato è diventato più sofisticato; il confezionamento dei prodotti informatici si arresta meno spesso alla funzione generale, ma prosegue con il prodotto destinato a funzioni fisse, dove gran parte del vantaggio dell'elaborazione open source è in conflitto con gli obiettivi del prodotto.

3. 2 n Mezzi di crescita fissi k I risparmi non sono importanti

La crescita esponenziale dei budget dei transistor ha portato alla realizzazione che il costo del budget dei transistor di un'architettura CISC è quasi completamente fissato. Il vantaggio strategico di RISC era che spostava la complessità fuori dal set di istruzioni della CPU e nel compilatore (senza dubbio in parte motivato dal fatto che gli autori di compilatori beneficiavano molto meno di ISA complessi rispetto agli sviluppatori umani che codificavano in assembly, ma i compilatori potevano ragionare molto più facilmente matematicamente su, e quindi sfruttare, un ISA più semplice); il conseguente risparmio di transistor potrebbe quindi essere applicato per migliorare le prestazioni della CPU. L'avvertenza era che i risparmi sul budget dei transistor da un ISA più semplice erano per lo più corretti (e anche i costi generali nella progettazione del compilatore erano per lo più corretti). Mentre questo impatto fisso era un grosso pezzo del budget nel corso della giornata, come si può immaginare, bastano pochi round di crescita esponenziale affinché l'impatto diventi banale. Questo impatto in rapido declino combinato con la già menzionata importanza crescente della monocoltura della CPU ha significato una finestra molto piccola di opportunità per qualsiasi nuovo ISA di affermarsi. Anche laddove i nuovi ISA hanno avuto successo, i moderni ISA "RISC" non sono gli ISA ortogonali descritti dalla strategia RISC, poiché la continua crescita dei budget dei transistor e l'applicabilità più ampia dell'elaborazione SIMD in particolare hanno incoraggiato l'adozione di nuove istruzioni ottimizzate per funzioni specifiche. Questo impatto in rapido declino combinato con la già menzionata importanza crescente della monocoltura della CPU ha significato una finestra molto piccola di opportunità per qualsiasi nuovo ISA di affermarsi. Anche laddove i nuovi ISA hanno avuto successo, i moderni ISA "RISC" non sono gli ISA ortogonali descritti dalla strategia RISC, poiché la continua crescita dei budget dei transistor e l'applicabilità più ampia dell'elaborazione SIMD in particolare hanno incoraggiato l'adozione di nuove istruzioni ottimizzate per funzioni specifiche. Questo impatto in rapido declino combinato con la già menzionata importanza crescente della monocoltura della CPU ha significato una finestra molto piccola di opportunità per qualsiasi nuovo ISA di affermarsi. Anche laddove i nuovi ISA hanno avuto successo, i moderni ISA "RISC" non sono gli ISA ortogonali descritti dalla strategia RISC, poiché la continua crescita dei budget dei transistor e l'applicabilità più ampia dell'elaborazione SIMD in particolare hanno incoraggiato l'adozione di nuove istruzioni ottimizzate per funzioni specifiche.

4. Semplice: separazione delle preoccupazioni. Complesso: separazione dello spazio degli indirizzi.

Il moderno kernel Linux (insieme alla maggior parte degli altri kernel) si adatta alla definizione piuttosto libera di un macrokernel e non alla definizione piuttosto che stretta di un microkernel. Detto questo, con la sua architettura di driver, i moduli caricati dinamicamente e le ottimizzazioni multiprocessore che fanno sì che le comunicazioni nello spazio del kernel assomiglino sempre più al passaggio di un messaggio di microkernel, la sua struttura assomiglia più a un design di microkernel (come incarnato da Minix) rispetto al design di macrokernel (come incarnato dal design di Linux al momento della discussione). Come una progettazione di microkernel, il kernel Linux fornisce comunicazione, pianificazione, gestione degli interrupt e gestione della memoria generalizzati per tutti gli altri componenti del sistema operativo; i suoi componenti tendono ad avere codice e strutture dati distinti. Mentre i moduli vengono caricati dinamicamente, pezzi di codice portatile liberamente accoppiati, che comunicano attraverso interfacce fisse, non impiegano una proprietà rimanente di microkernel: non sono processi spaziali dell'utente. Alla fine, la legge di Moore ha assicurato che i problemi motivati ​​da problemi hardware come la portabilità (una preoccupazione di Tanenbaum) e le prestazioni (una preoccupazione di Torvalds) sono diminuiti, ma i problemi di sviluppo del software sono diventati di fondamentale importanza. I rimanenti vantaggi non realizzati che una separazione degli spazi di indirizzi potrebbe fornire sono compensati dal bagaglio aggiuntivo imposto al software del sistema operativo a causa delle limitazioni di progettazione e della maggiore complessità delle interfacce dei componenti. La legge ha assicurato che i problemi motivati ​​da problemi hardware come la portabilità (una preoccupazione di Tanenbaum) e le prestazioni (una preoccupazione di Torvalds) sono diminuiti, ma i problemi di sviluppo del software sono diventati di fondamentale importanza. I rimanenti vantaggi non realizzati che una separazione degli spazi di indirizzi potrebbe fornire sono compensati dal bagaglio aggiuntivo imposto al software del sistema operativo a causa delle limitazioni di progettazione e della maggiore complessità delle interfacce dei componenti. La legge ha assicurato che i problemi motivati ​​da problemi hardware come la portabilità (una preoccupazione di Tanenbaum) e le prestazioni (una preoccupazione di Torvalds) sono diminuiti, ma i problemi di sviluppo del software sono diventati di fondamentale importanza. I rimanenti vantaggi non realizzati che una separazione degli spazi di indirizzi potrebbe fornire sono compensati dal bagaglio aggiuntivo imposto al software del sistema operativo a causa delle limitazioni di progettazione e della maggiore complessità delle interfacce dei componenti.

È interessante notare che ciò che è stato una tendenza forte è l'emergere dell'hypervisor, che molto simile ai microkernel, estrae l'hardware. Alcuni sostengono che gli hypervisor siano micro kernel. L'architettura dell'hypervisor è diversa, poiché le responsabilità che appartengono ai micro kernel sono gestite dai kernel "guest" posti in cima, con multiplex hypervisor tra loro, e l'astrazione dell'hypervisor non è la messaggistica generica e lo spazio degli indirizzi di memoria, ma l'emulazione hardware prevalentemente reale.

In conclusione: il futuro favorisce coloro che adottano la semantica meno rigorosa

* .. o "i nitpicker fanno schifo nel predire il futuro"

In pratica, molta della correttezza / erroneità nel dibattito è una questione di semantica (e questo faceva parte di ciò che Torvalds stava discutendo e l'IMHO Tanenbaum non ha pienamente apprezzato). È difficile fare definizioni precise sul futuro perché ci sono così tanti fattori al di fuori dell'argomento che possono entrare in gioco; semantica più libera significa che le tue previsioni sono un bersaglio più grande sul bersaglio rispetto a quello dell'altro ragazzo, dandoti probabilità migliori. Se si ignora la semantica, gli argomenti avanzati sia da Torvalds che da Tanenbaum avevano ragione su molte cose e sbagliato su molto poco.

tl; dr

La maggior parte degli ISA non si adatta alla definizione semantica di RISC, ma sfrutta la maggior parte dei vantaggi di progettazione che all'epoca erano distintivi delle CPU RISC; la quantità di SO specifica per CPU è inferiore a quanto previsto da Tanenbaum, figuriamoci Torvalds; l'open source domina il computing per scopi generici, ma i consumatori di quel mercato sono ora principalmente coloro che confezionano il computing in prodotti con funzioni più fisse in cui non viene realizzato gran parte del vantaggio del software open source; la separazione della funzione del sistema operativo attraverso gli spazi degli indirizzi non si è rivelata vantaggiosa, ma la separazione della funzione del sistema operativo attraverso l'hardware "virtuale" ha. Se vuoi affermare che le tue previsioni si sono rivelate giuste, lasciati il ​​maggior spazio di manovra semantico possibile, proprio come il signor Torvalds.

PS Un'ultima ironica osservazione: Linus Torvalds è uno dei più forti sostenitori di mantenere quante più nuove funzionalità possibili nello spazio utente e fuori dal kernel di Linux.


42
  • I microkernels sono il futuro

Ha sbagliato, sembra che tutto stia convergendo nell'uso di kernel ibridi. Linux è formalmente ancora monolitico, ma l'aggiunta di elementi come FUSE ecc. Lo rende anche un po 'ibrido.

  • x86 si estinguerà e le architetture RISC domineranno il mercato

Ok, quindi x86 non si è spento. Ma il RISC non domina il mercato? Miliardi di smartphone che utilizzano ARM, tutte le console di gioco che utilizzano processori RISC, la maggior parte dell'hardware di rete che utilizza processori MIPS.

Inoltre, nei primi anni 2000 RISC e CISC si sono convertiti così tanto che non ci sono state differenze nette nel design interno. I moderni processori x86 sono fondamentalmente RISC internamente con interfaccia CISC.

  • (Tra 5 anni) tutti eseguiranno un sistema operativo GNU gratuito

Se per GNU OS intendeva GNU Hurd, allora una previsione totalmente fallita. Quello che le persone usano in modo massiccio è Android. Android è Linux, ma è non è GNU, in quanto non fa uso di GNU libc. Utilizza invece il Bionic di Google . E la quota di mercato di Linux desktop standard è ancora inferiore al 2%. Ma intendeva davvero PC consumer? Sul mercato dei server Linux domina assolutamente con il 70-90% di share a seconda del segmento.


5
"Sul mercato dei server Linux domina assolutamente con il 70-90% di share a seconda del segmento." Dov'è la prova per questo?
quant_dev il

4
I numeri di vartec sono probabilmente esagerati. Lascio questo qui en.wikipedia.org/wiki/OS_market_share#Servers
Federico klez Culloca il

4
@quant_dev: 92% di Top500, 60-70% di server Web, intera infrastruttura Google, intera infrastruttura FB, intera infrastruttura Amazon ... ecc.
vartec

1
Potete fornire collegamenti per il backup delle vostre dichiarazioni?
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. Non sono sicuro.

  2. Half-destra. I chip "x86" di oggi sono RISC sotto il cofano, con fondamentalmente una "interfaccia CISC". x86 non si è spento perché Intel aveva abbastanza quota di mercato e entrate sufficienti per effettuare tale transizione e ottenerla prima che altre soluzioni RISC ne acquisissero una significativa quota di mercato.

  3. Due ragioni principali: compatibilità e usabilità.

    Ancora una volta, i sistemi esistenti (Windows e, in misura minore Mac OS) hanno una base installata molto ampia. Ciò significa che molti utenti utilizzano molti programmi. I sistemi operativi GNU gratuiti non possono duplicarlo. Il progetto WINE ha svolto molto lavoro in quella direzione, ma non è ancora un sostituto per un vero sistema Windows, e gli sviluppatori WINE non provano nemmeno a dichiararlo. Le persone non vogliono usare un sistema operativo che non eseguirà i loro programmi preferiti, non importa quanto teoricamente sia fantastico. (E senza una base di utenti installata, nessuno vuole sviluppare per il sistema. È un problema di gallina e uovo.)

    E poi arriviamo all'usabilità. Mia mamma ha un sistema Windows. Può usarlo bene per i suoi scopi. Tutto ciò di cui ha bisogno per lavorare con il suo computer è disponibile dall'interfaccia di Windows, e se le dicessi le parole "riga di comando", non saprebbe nemmeno di cosa sto parlando. Per quanto ne so, non è ancora possibile farlo su qualsiasi sistema operativo GNU gratuito. In effetti, Linux è così difficile da lavorare che persino il più grande dei semidei della comunità ha seri problemi con compiti semplici a volte. E non sembrano mai "ottenerlo" e lavorare per risolvere i problemi, motivo per cui non guadagnano mai quote di mercato. (L'articolo che dovrebbe essere collegato deve essere letto per chiunque cerchi di produrre programmi di massa!)


16
-1 per post di blog di 8 anni fa, che non è più pertinente.
vartec,

16
@Vartec: non è più pertinente? Stai seriamente affermando che un utente oggi può prendere Linux e iniziare a fare il repertorio completo delle attività comuni dell'utente finale senza nemmeno sapere che esiste persino una riga di comando, come può fare su Windows o OSX?
Mason Wheeler,

17
@Mason: quando è stata l'ultima volta che hai visto Ubuntu, ad esempio? È più semplice svolgere attività comuni dell'utente finale su Ubuntu senza conoscere la console, piuttosto che su OSX (diavolo, su OSX che rende visibili i file nascosti richiede Ph.D. in Nerdology). In Ubuntu le cose funzionano e basta. In Windows devi installare i driver o altro. In OSX le cose non funzionano. BTW. tua mamma usa RegEdit :-P
vartec il

8
@MasonWheeler: Certo. Chiunque può prendere Ubuntu e usarlo con nessun roba da riga di comando a tutti . Il mio compagno di stanza - sicuramente non un esperto di tecnologia avanzata - non ha avuto problemi a passare da Windows a Ubuntu. Altre persone che conosco usando Ubuntu - che variano per esperienza ma non tutti esperti - non hanno avuto problemi. Il mio vecchio coinquilino lo scorso anno ha avuto più problemi con il suo Mac rispetto al mio attuale compagno di stanza con Ubuntu, a livelli simili di esperienza informatica. (Anche la stampa, tra l'altro, è stata di gran lunga più facile su Linux che su Mac!) Quindi l'intera cosa della riga di comando di Linux è una grossolana dichiarazione.
Tikhon Jelvis,

18
@MasonWheeler: Stai seriamente affermando che un utente oggi può scegliere Windows e configurare una stampante di rete?
Christoffer Hammarström,

14

Penso che ci siano un paio di ragioni che sono piuttosto serie, ma non sono state menzionate.

Il primo è l'assunto piuttosto cieco di Tanenbaum secondo cui la superiorità tecnica porterebbe al dominio del mercato. Le persone hanno discusso per anni sul fatto che i micro-kernel (nanocerni, pic-kernel, ecc.) Siano tecnicamente superiori, ma per il momento, supponiamo che lo siano. Ci resta ancora da chiedersi se è probabile che tale superiorità tecnica si traduca in posizione dominante sul mercato. Suppongo che non lo faccia. Per la maggior parte delle persone, Windows, Mac OS, ecc. Sono abbastanza buoni. Peggio ancora, i miglioramenti che farebbero una differenza significativa per la maggior parte degli utenti sarebbero nell'interfaccia utente, non nel kernel.

Il secondo sta sopravvalutando drasticamente il tasso di cambiamento in un mercato (ragionevolmente maturo). È abbastanza facile cambiare le cose in fretta quando hai un nuovo mercato. Per far sì che tutti cambiassero sostanzialmente in cinque anni, la migrazione avrebbe dovuto avvenire a tutta velocità anche se l'aveva previsto.

Vorrei anche notare un altro modo in cui aveva ragione che non ho visto menzionato. Le persone hanno già notato l'ubiquità del RISC (ad es. Nei telefoni cellulari). Ciò che non hanno menzionato è l'ubiquità di ciò che definirei "microkernel 2.0". Questo è ora più spesso noto come "macchina virtuale" o "hypervisor". In realtà sono praticamente dei micro-kernel.

La grande differenza è che Tanenbaum pensava in termini di un microkernel e di un'emulazione del sistema operativo in modalità utente entrambi progettati specificamente l'uno per l'altro. Invece, abbiamo mantenuto il sistema operativo sostanzialmente invariato e personalizzato il microkernel per eseguirlo così com'è. Tecnicamente, questo non è così bello, ma dal punto di vista del mercato, è drammaticamente superiore - invece di un sistema completamente nuovo dall'alto verso il basso, l'utente può continuare a utilizzare la maggior parte del suo codice esistente così com'è, e aggiungere semplicemente un nuovo fantastico "utility" che sembra essere davvero un sistema operativo microkernel.


8

Un grande motivo era Windows, in particolare Windows 3.1 e poco dopo, Windows 95 e NT 3.51. I consumatori hanno particolarmente apprezzato le interfacce GUI rispetto ai vecchi sistemi basati su testo di Unix e DOS. Ciò significava che più persone nella media acquistavano computer per uso domestico. Inoltre, l'esplosione di Internet a metà degli anni '90 ha aumentato le vendite.

Anche i prezzi dei PC sono scesi negli anni '90 fino a quando non hanno raggiunto il punto in cui si trovano oggi. Ciò era dovuto alle economie di scala presentate da un aumento della domanda dei consumatori e delle imprese. Ad esempio, tutti e cinque i miei computer attuali costano meno combinati rispetto al desktop 486 che ho acquistato nel 1992.

Ora, in un certo senso potrebbe avere ragione, ma in una direzione inaspettata. L'ascesa di dispositivi mobili, smartphone e tablet ha parzialmente determinato sistemi operativi semplificati e può ridurre l'importanza di x86. Tuttavia, vanno ben oltre quanto previsto nel 1992.


7

Alla fine tutto si riduce al fatto che alle cose non piace davvero cambiare.

Non siamo migrati verso un microkernel con architettura migliore perché quelli monolitici erano più facili da creare, funzionavano più velocemente e tutti sapevano come costruirli. Anche perché Linux è stato sviluppato come un kernel monolitico ed è diventato popolare, non c'erano micro kernel che hanno ottenuto abbastanza successo per decollare. (è un po 'come lo stesso motivo per cui eseguiamo tutti Windows, eseguiamo Windows perché tutti eseguono Windows)

RISC, altri hanno sottolineato che x86 è praticamente un'architettura RISC al giorno d'oggi, con un wrapper CISC in cima per la compatibilità all'indietro.

Molte persone eseguono un sistema operativo GNU gratuito - sul server. Il web è praticamente guidato da esso. Nessuno se ne accorge perché tutti i client sono Windows. A quei tempi, avevi una scelta: Linux che era ancora un sistema operativo per hobby; un sapore di Unix ma non potevi permetterti di acquistarlo; o economico e allegro Windows. Linux ha impiegato troppo tempo per sostituire Unix, e non ha ancora abbastanza soluzione convincente per l'esecuzione sul desktop (in parte a causa di problemi ideologici con diversi sistemi Windows, driver di grafica binaria e mancanza di un ABI stabile). Tuttavia, sta andando piuttosto bene in altri mercati non desktop come embedded e mobile.


6

Tutti sono veri se non pensi che un computer sia qualcosa sul tuo desktop.

  1. È vero: i microkernel non hanno mai funzionato perché non erano mai abbastanza micro. Se tutto il tuo Linux embedded ridotto è più piccolo del bit specifico x86 del kernel MACH, la questione dei micro-kernel è rilevante?

  2. RISC sta dominando il mercato. Ogni anno vengono venduti più cpus ARM rispetto ai cpus X86 di sempre. Probabilmente non sei mai a più di 6 piedi da una CPU ARM.

  3. Quasi tutti usano Linux, si trovano nel loro router, nella loro TV setop box, nel loro Tivo e nel loro telefono Android - semplicemente non sanno che questi hanno un sistema operativo


4
"i micro kernel non hanno mai funzionato perché non erano mai abbastanza micro"> A quanto ho capito, la parola "micro" non si riferisce necessariamente a byte o righe di codice. L'idea è di spingere la funzionalità nello spazio utente, riducendo al minimo i servizi forniti dal kernel stesso. Ad esempio, un sistema con un microkernel avrebbe un processo utente dedicato alla gestione del file system. Quindi l'esistenza di una versione ridotta di Linux di dimensioni inferiori rispetto a minix non è davvero rilevante.
Robz,

1
@Robz Size è abbastanza rilevante: il punto di un microkernel è darti portabilità e abilitare determinati casi limite (come eseguire due ambienti OS su una macchina contemporaneamente senza virtualizzazione). Se il microkernel è più grande di un ibrido / monolito che limita le piattaforme su cui può essere distribuito, E tende a distruggere l'argomento secondo cui è più facile ottenere la portabilità scrivendo un piccolo componente se in realtà non è più piccolo dell'alternativa.
Marcin,

4

1) Aveva torto sui microkernels. Per quanto ho capito, la necessità di requisiti di velocità supera la separazione delle preoccupazioni imposte nei microkernels, almeno nel kernel di Linux.

2) L'architettura predominante in tablet e telefoni cellulari è ARM, che è un set di istruzioni RISC. Anche Windows è stato portato.

3) Tutti non eseguono un sistema operativo GNU gratuito. Ciò è principalmente dovuto ai brevetti e alla retrocompatibilità. Coloro che non vogliono Windows scelgono spesso OS X.


1) la velocità contava ancora di più allora! Non sono sicuro che importerebbe così tanto oggi.
gbjbaanb

Dipende da dove si trovano i colli di bottiglia.

Quando il tuo unico requisito è "essere più veloce dell'altro", non diventa più facile nel tempo. A mio avviso, c'è stato un periodo di tempo molto breve in cui HURD avrebbe potuto superare Linux come opzione praticabile, e l'hanno superato perdendo tempo su una porta da L4 a Mach.
dal

2

1. Microkernels non riuscito

Per i motivi che Linus Torvalds ha affermato, che sulla carta sembra teoricamente attraente ma in attuazione su sistemi moderni - che sono sistemi molto complessi - la complessità diventa esponenzialmente ingestibile. Il caso di studio è GNU Hurd, un sistema completamente microkernel che non è riuscito nemmeno a raggiungere le funzioni di base. Mac OS X è simile a Hurd nella struttura ed è il sistema operativo meno stabile e più limitato là fuori.

2. Architettura della CPU

Questo è diventato diversificato per vari casi d'uso. Un'architettura CPU non ha dominato perché i casi d'uso integrati, mobili, desktop, server e così via sono diversi e richiedono approcci diversi. Tannenbaum non è riuscito a vedere questa diversificazione.

3. GNU vs World?

GNU non dominava, ma Linux lo faceva su server, embedded e mobile. I tablet e i telefoni Apple eseguono iOS, che è semplicemente vecchio Unix. È difficile acquisire statistiche accurate per le distribuzioni Linux su desktop poiché non esiste un vero meccanismo di base - la vendita di unità - che possa sicuramente dare un valore preciso. La maggior parte delle distribuzioni Linux sul desktop a volte vengono registrate come distribuzioni Windows perché gli utenti acquistano un sistema Windows e quindi lo sovrascrivono con Linux. Tuttavia, se segmentate i sistemi operativi, Linux ha circa il 5-6% sul desktop secondo http://www.w3schools.com/browsers/browsers_os.asp e questo è uguale al numero di utenti di Windows Vista in tutto il mondo, il che è molto significativo .

Sulla base delle mie stime da varie fonti sembra che Linux sul desktop potrebbe effettivamente essere uguale al numero di utenti su Windows XP - circa il 25% - se si contano nazioni non occidentali come la Cina e l'India dove Linux è più popolare che in Stati Uniti o UE, ma che potrebbero non essere conteggiati nelle statistiche occidentali perché contano solo il traffico verso siti Web di lingua inglese rivolti agli occidentali.

In India la maggior parte degli studenti universitari usa Ubuntu o Fedora perché questo è il sistema operativo predefinito dei sistemi educativi indiani e presso i famosi IIT. La maggior parte degli uffici governativi indiani usa anche Linux. In Cina Red Flag Linux è il sistema operativo ufficiale del governo e dei sistemi scolastici cinesi - Academies of Arts and Sciences - ed è il sistema operativo raccomandato in Cina dai media gestiti dallo stato nel tentativo di impedire ai giovani cinesi poveri di utilizzare copie piratate di Windows. Se si considerasse l'uso di Linux in India e in Cina, questo scioccerebbe la maggior parte degli esperti di tecnologia occidentali e cambierebbe radicalmente le percezioni del vero dominio del desktop Linux nelle nazioni in via di sviluppo non occidentali dove è dominante.


1
La realtà è che Windows viene davvero massacrato sul fronte del sistema operativo per desktop e server. Se ritieni che solo il 45% circa degli utenti utilizzi Windows 7, ciò significa che l'adozione di nuovi sistemi operativi Windows ogni ciclo di aggiornamento di Windows diminuisce leggermente del 10-15% e gli utenti rimangono con la versione precedente o vanno su Mac o Linux. Per i server la situazione è ancora peggiore poiché ogni aggiornamento del server Windows 20-30% degli utenti passa immediatamente ai cluster di server Linux ...
AG Restringere,


1

La produzione divenne più economica, x86 arrivò così vicino al prezzo di RISC, che non era più possibile usarlo. C'era anche un piccolo blocco del fornitore.


Non credo che il driver per RISC sia mai stato il prezzo, era più che le architetture RISC erano progettate meglio di x86. Sfortunatamente, MIPS e SPARC non si sono mai ingranditi molto bene, e DEC ha finito i soldi prima che l'Alfa avesse abbastanza quota di mercato per la questione. Intel è stata in grado di ottenere un bel po 'di prestazioni da x86, quindi non c'era davvero un motivo convincente per cambiare (per la maggior parte delle persone). Ora che le prestazioni sono misurate in termini di watt rispetto a MHz, x86 sta iniziando il suo lento scivolamento verso l'irrilevanza.
TMN,

Sì, lo so, mi stavo solo riferendo perché RISC è aumentato molto più velocemente di RISC all'inizio. Ovviamente in questi giorni questo è cambiato molto.
Lucas Kauffman,

1
  1. I microkernel sostituiscono le chiamate di metodo con la messaggistica tra processi, il che aggiunge complessità allo sviluppo per alcuni vantaggi ipotetici. Come risulta, per la maggior parte, puoi ottenere gli stessi vantaggi da una buona componentizzazione anche se tutto vive in un unico grande processo.
  2. La domanda non è più pertinente. Le architetture CISC non esistono più, tutti i moderni processori sono RISC nei loro cuori, ma questo non ha ucciso il set di istruzioni x86. i processori x86 dall'era Pentium-Pro (17 anni fa) usano la traduzione del codice operativo per consentire a un core essenzialmente RISC di apparire come una CPU x86 dall'esterno.
  3. Il peggio classico è meglio . Effetti di iterazione, pragmatismo, rete ed ecosistema battono ogni volta la purezza.

1

I microkernel sono il futuro che x86 si estinguerà e le architetture RISC domineranno il mercato (tra 5 anni) tutti eseguiranno un sistema operativo GNU gratuito

Dipende da come vedi e definisci il futuro, in senso tradizionale le sue previsioni sono fallite.

Tuttavia, il tempo non è ancora terminato (a parte un'altra discussione più approfondita) .

Quindi, le cose potrebbero ancora cambiare:

  1. Microkernels o qualche variante potrebbero tornare

  2. RISC / ARM può ben dominare -> tablet / cellulari

  3. Tra 10 o 15 anni. Chissà, l'open source sta cambiando il mondo lentamente ..


1
Naturalmente le cose potrebbero cambiare in futuro. La mia domanda è su come sia adesso il mondo e perché non abbia già riflesso le sue previsioni.
Robz,

Questi motivi sono stati tutti elencati da altri, ti sto dando una visione alternativa, come parte di ogni discussione salutare tutte le prospettive dovrebbero almeno essere prese in considerazione. Vivi a lungo e prospera amico mio.
Darknight,

Circa 3, la differenza è che il sistema operativo GNU in particolare non è più rilevante. Nessuno usa il kernel GNU Hurd e se rimuovete tutti gli strumenti dello spazio utente GNU dai desktop Linux o OS X, la maggior parte delle persone non se ne accorgerebbe nemmeno. Se si osservano altre implementazioni di successo di sistemi operativi open source (ad esempio router basati su Linux e Android), la maggior parte di essi non dipende nemmeno dai componenti GNU. Esistono molti strumenti GNU molto popolari e utili, sì, ma sono lungi dall'essere parte del "sistema operativo" che le persone usano.
ehabkost,

0

Per 2: il set di istruzioni CISIC ha un grande vantaggio: è più compatto, come il codice macchina compresso. Oggi è molto economico decodificare le istruzioni CISC in micro-operazioni ed è molto costoso accedere alla RAM. Quindi il CISC ha il vantaggio di spingere più codice nelle cache L1 / L2 / L3


0

Ricordo il tempo - e il tempo che lo ha preceduto. Non so di microkernals, ma

2) L'idea di RISC aveva due gambe: che le ottimizzazioni del software potevano essere fatte meglio nel software che nell'hardware e che i chip RISC potevano essere fatti economicamente più veloci dei chip CISC.

Entrambe le idee si sono rivelate false a breve termine. Intel ha potuto e fatto produrre chip CISC che eseguivano il clock delle istruzioni più velocemente dei chip RISC concorrenti, a un prezzo competitivo. Intel ha potuto e fatto chip CISC che ottimizzavano l'hardware del programma meglio di quanto si potesse fare nel compilatore o nel supervisore del runtime del software, e qualsiasi ottimizzazione del software poteva essere aggiunta a ciò, proprio come farebbe con un Chip RISC.

3) Informatica, programmazione e operazioni, sono stato completamente reinventato 4 volte nella mia carriera. Dal frame principale al PC. Dalla riga di comando alla GUI. Dalla GUI a Internet. Da Internet a iPad. Adesso la rivoluzione sembra normale, ma NON LO ABBIAMO PREVISTO. Come tutti i programmatori più anziani all'epoca, stava predicendo la "fine della storia".

Pochissime persone eseguivano un sistema operativo GNU in cinque anni, perché il conteggio è stato riavviato.

Forse sta ancora accadendo. 5 anni fa avresti previsto che il nostro server Windows sarebbe stato sostituito da server * nix (mentre scrivo, SAMBA ha rilasciato un server di dominio AD, che era il pezzo mancante del puzzle). Non succederà dove lavoro: non avremo server locali.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.