Warum hat sich Tanenbaum in den Tanenbaum-Torvalds-Debatten geirrt?


233

Ich wurde kürzlich beauftragt, in meiner OS-Klasse aus den Tanenbaum-Torvalds-Debatten zu lesen . In den Debatten macht Tanenbaum einige Vorhersagen:

  1. Mikrokerne sind die Zukunft
  2. x86 wird aussterben und RISC-Architekturen werden den Markt dominieren
  3. (In 5 Jahren) wird jeder ein kostenloses GNU-Betriebssystem ausführen

Ich war ein Jahr alt, als die Debatten stattfanden, daher fehlt mir die historische Intuition. Warum haben sich diese Vorhersagen nicht geändert? Aus Tanenbaums Sicht scheinen sie mir ziemlich vernünftige Vorhersagen für die Zukunft zu sein. Was ist passiert, damit sie nicht eintraten?


189
Wenn Sie die Zukunft vorhersagen, bevorzugen Sie Entropie und Glück gegenüber Innovation und Idealen.
zzzzBov

18
Ich habe hier eine Art Marathon-Antwort geschrieben , die etwas über Punkt 1 aussagt. Tatsächlich ist es ziemlich schwierig, diese Debatte zu vermeiden, wenn Unterschiede in der Kernel-Architektur diskutiert werden. Die süßeste Ironie ist eigentlich die Signatur, Linus "my first, and hopefully last flamefest" Torvaldsdie offensichtlich auch nicht in Erfüllung gegangen ist :)
Tim Post

13
Ich lasse dies als Kommentar statt als Antwort (ich denke nicht, dass es "aufwändig" genug ist, um eine Antwort zu sein): Tanenbaum war nicht der Meinung, dass Mikrokerne besser sind, dass x86 die Arena verlassen sollte und dass das GNU-Betriebssystem (auf welchem ​​Kernel auch immer es läuft) war eine bessere Lösung. Er war vielleicht naiv, wenn er wirklich fest davon überzeugt war, dass dies so schnell (oder überhaupt) geschehen würde, teils aufgrund sozialer Trägheit und Monopole, teils weil effiziente Mikrokerne in Allzwecksystemen nicht so einfach zu implementieren sind . (
Also

15
Tanenbaum ist nicht ganz falsch: In der neuen Post-PC-Ära basiert iOS auf Mach und ARM, Android auf L4 und ARM. Nur GNU hat verloren.
Mouviciel

15
@mouviciel: und GNU nur auf dem Desktop verloren. Server und Mobile und Embedded sind praktisch alle GNU-Monopole.
gbjbaanb

Antworten:


171

Mikrokerne sind die Zukunft

Ich denke, Linus hat in seiner Debatte die Punkte in Bezug auf monolithische Kerne getroffen. Gewiss wurden einige Erkenntnisse aus der Mikrokernforschung auf monolithische Kernel übertragen. Microsoft behauptete manchmal, der Win32- Kernel sei eine Mikrokernel-Architektur. Wenn man sich ein paar Lehrbuch-Mikrokerne ansieht, ist das ein bisschen schwierig, aber die Behauptungen hatten eine technische Begründung.

x86 wird aussterben und RISC-Architekturen werden den Markt dominieren

Wenn Sie von Desktops und Servern sichern, dominiert RISC den Prozessormarkt in jeder Hinsicht. ARM (R steht für RISC) übertrifft x86 in der Anzahl der Prozessoren, es werden mehr ARM-Prozessoren als x86-Prozessoren verwendet, und es gibt insgesamt mehr ARM-Rechenkapazität als x86-Rechenkapazität. In diesem Jahr wird ein einzelner ARM-Anbieter (ja, Apple) möglicherweise alle x86-Anbieter zusammen überbieten. Nur auf dem Desktop und auf dem Server dominiert x86. Solange Windows die dominierende Plattform für Desktop-Computer und Linux für Server ist, wird dies wahrscheinlich noch eine Weile so bleiben.

Es gibt auch einen Teil b dazu. Die Ingenieure von Intel haben großartige Arbeit geleistet, um das Leben aus ihrem Befehlssatz herauszuholen, und sogar, um einen RISC-Kern mit einem Opcode-Übersetzer zu erstellen, der sich an der Spitze befindet. Vergleichen Sie mit IBM, einem der führenden Hersteller von RISC-Desktop-Chips, der in vertretbarem Zeitrahmen keinen stromsparenden und leistungsstarken G5 für Apple-Laptops erhalten konnte.

(In 5 Jahren) wird jeder ein kostenloses GNU-Betriebssystem ausführen

Ich denke, die verschiedenen Betriebssystemanbieter bieten immer noch überzeugende Wertversprechen für ihre Betriebssysteme. GNU ist nicht unbedingt der wichtigste Akteur in der Open-Source-Community, weshalb selbst eine breitere Akzeptanz von Open-Source-Software nicht unbedingt zu GNU-Betriebssystemen führte. Es gibt jedoch eine ganze Menge GNU-Zeug (alle Macs werden zum Beispiel mit Bash von GNU ausgeliefert . Es gibt wahrscheinlich einige GNU-Systemtools auf Android-Handys). Ich denke, das Computer-Ökosystem ist viel vielfältiger als Tanenbaum es vorausgesehen hat, auch wenn Sie Ihre Sicht auf Desktop-Computer beschränken.


8
In Punkt 3 ist Linux sehr weit verbreitet, wahrscheinlich das am häufigsten verwendete Betriebssystem, Windows und VxWorks. Punkt 3 kann also als wahr angesehen werden. Es macht 2 von 3 Punkten richtig, was ziemlich gut ist, wenn man bedenkt, wie unvorhersehbar die IT ist.
Deadalnix

11
@deadalnix - Ich wollte ausdrücklich den Geltungsbereich von 3 erwähnen und ihn auf Desktop-Computer beschränken. Wenn eine Google-Serverfarm Linux ausführt (oder?) Und jede Box für die Linux-Anzahl zählt und mein Kabelmodem eine abgespeckte Linux-Version ausführt und mein Android-Telefon zählt, dominiert wahrscheinlich Linux. Aber obwohl ich im Laufe der Zeit schöne Diagramme von ARM- und x86-Prozessoren gesehen habe, die verkauft / verwendet wurden, habe ich keine für die Betriebssysteme gesehen, insbesondere, wenn Sie die eingebetteten Geräte einmischen.
Ccoakley

6
Auch in Bezug auf Teil 2 gehen die verschiedenen x86-Modernisierungen tatsächlich ein paar Schritte über RISC hinaus und erledigen einige faszinierende Aufgaben mit internen "Mikrooperationen", die eine noch bessere Planungsflexibilität bei der sofortigen Befehlsumordnung bieten, was weitreichende Leistungssteigerungen mit sich bringt jenseits dessen, wovon RISC-Anhänger träumen können. RISC-CPUs könnten das auch bekommen, aber zu diesem Zeitpunkt vergleichen Sie RISC nicht mit CISC, sondern verschiedene JIT-Strategien in der Hardware mit relativ abstrakten ISA-Frontends.
Flauschige

5
@KonradRudolph, das Nennung für Gesamtverkäufe über Google neu erstellt: 3 Milliarde ARM-Chips, die im Jahr 2009 ausgeliefert wurden ( vanshardware.com/2010/08/mirror-the-coming-war-arm-versus-x86 ), während geschätzte 400 Millionen x86-Chips im Jahr 2011 verkauft wurden (4-mal die hier angegebene vierteljährliche Zahl: computerworlduk.com/news/it-business/3345299/… ). Der Embedded-Markt ist riesig und größtenteils nicht von Intel.
Ccoakley

5
Ich glaube nicht, dass Punkt 3 in dem Sinne wahr ist, wie Tanenbaum es gemeint hat. Zu dieser Zeit gab es viel Optimismus in Bezug auf GNU HURD. Die Behauptung, Linux (in jeder Variante) sei ein GNU OS- Gewinn, ist historisch gesehen einfach nicht gültig. Benutzerraum? Sicher. Aber in gewisser Hinsicht hat Linux den Kernel trotz GNU gewonnen.
Stammtisch am

60

Software-Experten ignorierten die Wirtschaftlichkeit der Hardware

... oder "Moore hatte Recht und beide lagen falsch"

Die größte Sache, die in dieser Debatte übersehen wurde, war die Auswirkung der CPU-Herstellungstechnologie und -ökonomie, die durch die Verkleinerung der Transistorgrößen gemäß Moores Gesetz verursacht wurde (nicht überraschend, als ob sie viel über CPU-Hardware wüssten, diese Leute untersuchten und diskutierten Software, nicht CPU-Fertigung oder Wirtschaftlichkeit). Feste Herstellungskosten, die über die CPU amortisiert werden (z. B. ISA-Design, CPU-Design und CPU-Produktionsanlagen), sind schnell gestiegen, wodurch sich der Wert von Skaleneffekten erhöht. Da die CPU-Kosten pro Einheit (in Form von "Bang for the Buck" und "Bang for the Watt") sinken, müssen die Kosten einer CPU nicht über eine so breite Auswahl an Funktionen amortisiert werden, um einen Mehrwert zu erzielen mit fester Funktion ist explodiert; Das Budget für CPU-Transistoren ist exponentiell gewachsen.

1. CPU-Skalierung gewinnt über die CPU-Vielfalt

Die Bedeutung von Skaleneffekten hat dazu geführt, dass die Vorteile eines ISA / CPU, der auf einen größeren (daher breiteren) Markt abzielt, die potenziellen Vorteile von Entwurfsentscheidungen überwiegen, die den Markt für einen ISA / CPU einschränken. Betriebssysteme können immer größere Teile des Marktes pro unterstütztem ISA / CPU adressieren, sodass Portierungsübungen kaum (oder gar nicht erforderlich) sind, damit ein Betriebssystem gedeihen kann. Die Zielbereiche von ISA und CPU sind in der Regel so weit gefasst, dass sie sich größtenteils überschneiden. Daher hat sich für jede Software außerhalb eines Compilers der Umfang der Portierungsübungen ebenfalls verringert. Wohl beide, Torvalds & TanenbaumDer Teil des Kernel-Designs und der Implementierung, der jetzt ISA- oder sogar CPU-spezifisch sein muss, wurde überschätzt. Wie Tanenbaum beschrieben hat, abstrahieren moderne Betriebssystemkerne die Unterschiede zwischen CPUs und ISAs. Der CPU / ISA-spezifische Code in modernen Betriebssystemen ist jedoch viel kleiner als ein Mikrokernel. Anstatt Interrupt-Handling / Scheduling, Speicherverwaltung, Kommunikation und E / A zu implementieren, adressieren diese nicht portierbaren Bits nur einen winzigen Bruchteil der Implementierung dieser Dienste, wobei die überwiegende Mehrheit der Architektur selbst dieser Kernbetriebssystemfunktionen portierbar ist.

2. Open Source hat die Schlacht gewonnen, aber den Krieg verloren

Mehr Aufwand bedeutet, dass ein größerer Anteil der Datenverarbeitung von Produkten mit fester Funktion ausgeführt wird, bei denen die Fähigkeit, das Produkt zu modifizieren, nicht Teil des Wertversprechens für den Kunden ist. Ironischerweise hat Open Source in diesen Geräten mit festen Funktionen eine Blütezeit erlebt, aber meistens werden die Vorteile dieser Freiheiten eher von den Herstellern der Produkte als von den Endbenutzern genutzt (was auf dem damaligen Softwaremarkt tatsächlich zutrifft: Microsoft war ein großer Verbraucher von Open-Source-Software, aber ihre Kunden waren nicht). In ähnlicher Weise könnte man argumentieren, dass Open Source im allgemeinen Desktop-Bereich mehr Probleme hat als anderswo, aber mit zunehmendem Web- und Cloud-Computing wurde Desktop-Computing zunehmend zu einem engeren Zweck eingesetzt (hauptsächlich zum Ausführen eines Browsers). Die restlichen Funktionen laufen in der Cloud (ironischerweise hauptsächlich auf Open-Source-Plattformen). Kurz gesagt: Open Source besitzt tatsächlich den Allzweck-Computerraum, aber der Markt ist komplexer geworden. Die Produktverpackung hört seltener bei der Allzweckfunktion auf, fährt aber mit dem Produkt fort, das für feste Funktionen vorgesehen ist, bei denen ein Großteil des Vorteils von Open Source Computing im Widerspruch zu den Produktzielen steht.

3. 2 n Wachstumsmittel fest k Einsparungen sind nicht wichtig

Das exponentielle Wachstum der Transistorbudgets hat die Erkenntnis gebracht, dass die Transistorbudgetkosten einer CISC-Architektur fast vollständig festgelegt sind. Der strategische Vorteil von RISC bestand darin, dass die Komplexität aus dem Befehlssatz der CPU in den Compiler verlagert wurde (zweifellos teilweise begründet durch die Tatsache, dass Compiler-Autoren weit weniger von komplexen ISAs profitierten als menschliche Entwickler, die in Assembler codieren, aber Compiler viel einfacher argumentieren konnten mathematisch über eine einfachere ISA (und daher ausnutzen); Die daraus resultierenden Transistoreinsparungen könnten dann zur Verbesserung der CPU-Leistung eingesetzt werden. Die Einschränkung bestand darin, dass die Einsparungen beim Transistorbudget durch eine einfachere ISA größtenteils behoben wurden (und der Overhead beim Compilerdesign wurde größtenteils ebenfalls behoben). Während diese festen Auswirkungen früher einen großen Teil des Budgets ausmachten, Wie man sich vorstellen kann, dauert es nur ein paar Runden exponentiellen Wachstums, bis der Einfluss trivial wird. Diese rapide abnehmenden Auswirkungen in Verbindung mit der bereits erwähnten rapide zunehmenden Bedeutung der CPU-Monokultur boten jedem neuen ISA eine sehr kleine Chance, sich zu etablieren. Selbst wenn neue ISAs erfolgreich waren, sind moderne "RISC" -ISAs nicht die in der RISC-Strategie beschriebenen orthogonalen ISAs, da ein kontinuierliches Wachstum der Transistorbudgets und eine breitere Anwendbarkeit der SIMD-Verarbeitung insbesondere die Annahme neuer, auf bestimmte Funktionen abgestimmter Anweisungen ermutigt hat. Diese rapide abnehmenden Auswirkungen in Verbindung mit der bereits erwähnten rapide zunehmenden Bedeutung der CPU-Monokultur boten jedem neuen ISA eine sehr kleine Chance, sich zu etablieren. Selbst wenn neue ISAs erfolgreich waren, sind moderne "RISC" -ISAs nicht die in der RISC-Strategie beschriebenen orthogonalen ISAs, da ein kontinuierliches Wachstum der Transistorbudgets und eine breitere Anwendbarkeit der SIMD-Verarbeitung insbesondere die Annahme neuer, auf bestimmte Funktionen abgestimmter Anweisungen ermutigt hat. Diese rapide abnehmenden Auswirkungen in Verbindung mit der bereits erwähnten rapide zunehmenden Bedeutung der CPU-Monokultur boten jedem neuen ISA eine sehr kleine Chance, sich zu etablieren. Selbst wenn neue ISAs erfolgreich waren, sind moderne "RISC" -ISAs nicht die in der RISC-Strategie beschriebenen orthogonalen ISAs, da ein kontinuierliches Wachstum der Transistorbudgets und eine breitere Anwendbarkeit der SIMD-Verarbeitung insbesondere die Annahme neuer, auf bestimmte Funktionen abgestimmter Anweisungen ermutigt hat.

4. Einfach: Trennung von Bedenken. Komplex: Trennung des Adressraums.

Der moderne Linux-Kernel passt (wie die meisten anderen Kernel) zur eher losen Definition eines Makrokerns und nicht zur eher engen Definition eines Mikrokerns. Mit seiner Treiberarchitektur, dynamisch geladenen Modulen und Multiprozessor-Optimierungen, die die Kernel-Space-Kommunikation immer mehr an das Message-Passing eines Mikrokerns erinnern, ähnelt seine Struktur jedoch eher einem Mikrokernel-Design (wie es in Minix enthalten ist) als dem Makrokernel-Design (wie es in Linux enthalten ist) zum Zeitpunkt der Diskussion). Wie ein Mikrokernel-Design bietet der Linux-Kernel eine allgemeine Kommunikation, Zeitplanung, Interrupt-Behandlung und Speicherverwaltung für alle anderen Betriebssystemkomponenten. Seine Komponenten haben in der Regel unterschiedliche Code- und Datenstrukturen. Während Module dynamisch geladen werden, Locker gekoppelte Teile von portablem Code, die über feste Schnittstellen kommunizieren, nutzen keine verbleibende Eigenschaft von Mikrokernen: Sie sind keine User-Space-Prozesse. Am Ende sorgte Moores Gesetz dafür, dass Probleme, die durch Hardwareprobleme wie Portabilität (ein Anliegen von Tanenbaum) und Leistung (ein Anliegen von Torvalds) motiviert waren, abnahmen, aber Fragen der Softwareentwicklung wurden von größter Bedeutung. Die verbleibenden nicht realisierten Vorteile, die eine Trennung von Adressräumen bieten könnte, werden durch das zusätzliche Gepäck aufgewogen, das der Betriebssystemsoftware aufgrund von Designbeschränkungen und einer erhöhten Komplexität der Komponentenschnittstellen auferlegt wird. Das Gesetz sorgte dafür, dass Probleme, die durch Hardwareprobleme wie Portabilität (ein Anliegen von Tanenbaum) und Leistung (ein Anliegen von Torvalds) motiviert waren, abnahmen, während Probleme bei der Softwareentwicklung von größter Bedeutung wurden. Die verbleibenden nicht realisierten Vorteile, die eine Trennung von Adressräumen bieten könnte, werden durch das zusätzliche Gepäck aufgewogen, das der Betriebssystemsoftware aufgrund von Designbeschränkungen und einer erhöhten Komplexität der Komponentenschnittstellen auferlegt wird. Das Gesetz sorgte dafür, dass Probleme, die durch Hardwareprobleme wie Portabilität (ein Anliegen von Tanenbaum) und Leistung (ein Anliegen von Torvalds) motiviert waren, abnahmen, während Fragen der Softwareentwicklung von größter Bedeutung wurden. Die verbleibenden nicht realisierten Vorteile, die eine Trennung von Adressräumen bieten könnte, werden durch das zusätzliche Gepäck aufgewogen, das der Betriebssystemsoftware aufgrund von Designbeschränkungen und einer erhöhten Komplexität der Komponentenschnittstellen auferlegt wird.

Interessanterweise , was hat sich ein starker Trend ist die Entstehung des Hypervisors, die ähnlich wie Mikrokerne, die Hardware abstrahiert werden. Einige behaupten, Hypervisoren seien Mikrokerne. Die Hypervisor-Architektur ist jedoch anders, da die Zuständigkeiten der Mikrokerne von den "Gast" -Kernen übernommen werden, die sich über mehrere Hypervisoren befinden, und die Hypervisor-Abstraktion kein generischer Messaging- und Speicheradressraum ist, sondern vorwiegend die tatsächliche Hardware-Emulation.

Fazit: Die Zukunft bevorzugt diejenigen, die die strengste Semantik anwenden

* .. oder "Nitpicker saugen an der Vorhersage der Zukunft"

In der Praxis ist ein Großteil der Richtigkeit / Falschheit in der Debatte eine Frage der Semantik (und das war ein Teil dessen, was Torvalds argumentierte und IMHO Tanenbaum nicht in vollem Umfang einschätzte). Es ist schwierig, genaue Definitionen für die Zukunft zu erstellen, da es außerhalb des Arguments so viele Faktoren gibt, die eine Rolle spielen können. Eine lockerere Semantik bedeutet, dass Ihre Vorhersagen ein größeres Ziel auf der Dartscheibe sind als die der anderen, wodurch Sie bessere Chancen haben. Wenn Sie die Semantik ignorieren, waren die von Torvalds und Tanenbaum vorgebrachten Argumente in Bezug auf viele Dinge richtig und in Bezug auf sehr wenig falsch.

tl; dr

Die meisten ISAs passen nicht zur semantischen Definition von RISC, sondern nutzen die meisten Designvorteile, die zu dieser Zeit für RISC-CPUs typisch waren. Die Anzahl der prozessorspezifischen Betriebssysteme ist geringer als von Tanenbaum erwartet, geschweige denn von Torvalds. Open Source dominiert das Allzweck-Computing, aber die Konsumenten dieses Marktes sind heute in erster Linie diejenigen, die Computing in Produkte mit fester Funktion einbinden, bei denen ein Großteil des Nutzens von Open Source-Software nicht realisiert wird. Die Aufteilung der Betriebssystemfunktionen auf Adressräume erwies sich nicht als vorteilhaft, die Aufteilung der Betriebssystemfunktionen auf "virtuelle" Hardware jedoch als hilfreich. Wenn Sie behaupten möchten, Ihre Vorhersagen hätten sich als richtig erwiesen, lassen Sie sich wie Mr. Torvalds so viel semantischen Spielraum wie möglich.

PS Eine letzte ironische Beobachtung: Linus Torvalds ist einer der stärksten Befürworter, so viele neue Funktionen wie möglich im Benutzerraum und außerhalb des Linux-Kernels zu belassen.


42
  • Mikrokerne sind die Zukunft

Er hat das falsch verstanden, anscheinend läuft alles zusammen, um Hybrid-Kernel zu verwenden. Linux ist formal immer noch monolithisch, aber wenn man Dinge wie FUSE usw. hinzufügt, sieht es auch ein bisschen hybride aus.

  • x86 wird aussterben und RISC-Architekturen werden den Markt dominieren

Ok, also ist x86 nicht ausgestorben. Aber dominiert RISC nicht den Markt? Milliarden von Smartphones mit ARM, alle Spielekonsolen mit RISC-Prozessoren, die meiste Netzwerkhardware mit MIPS-Prozessoren.

Außerdem sind RISC und CISC Anfang der 2000er Jahre so weit zusammengewachsen, dass es keine eindeutigen Unterschiede im internen Design gab. Moderne x86-Prozessoren sind grundsätzlich intern RISC mit CISC-Schnittstelle.

  • (In 5 Jahren) wird jeder ein kostenloses GNU-Betriebssystem ausführen

Wenn er mit GNU OS GNU Hurd meinte, dann in der Tat eine völlig gescheiterte Vorhersage. Was die Leute massiv nutzen, ist Android. Android ist Linux, es ist jedoch nicht GNU, da es nicht GNU libc verwendet. Stattdessen verwendet es Googles eigenes Bionic . Und der Marktanteil von Standard-Desktop-Linux liegt immer noch unter 2%. Aber meinte er wirklich Consumer-PCs? Auf dem Servermarkt dominiert Linux mit 70-90% Anteil je nach Segment.


5
"Auf dem Servermarkt dominiert Linux mit 70-90% Anteil, je nach Segment." Wo ist der Beweis dafür?
quant_dev

4
Die Zahlen von vartec sind wahrscheinlich übertrieben. Ich lasse das hier. De.wikipedia.org/wiki/OS_market_share#Servers
Federico klez Culloca

4
@quant_dev: 92% der Top500, 60-70% der Webserver, die gesamte Google-Infrastruktur, die gesamte FB-Infrastruktur, die gesamte Amazon-Infrastruktur usw.
vartec

1
Können Sie Links zur Sicherung Ihrer Aussagen bereitstellen?
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. Nicht sicher.

  2. Halb rechts Heutige "x86" -Chips sind RISC unter der Haube, im Grunde genommen mit einer "CISC-Schnittstelle". x86 ist nicht ausgestorben, weil Intel über genügend Marktanteile und Einnahmen verfügte, um diesen Übergang zu vollziehen und es richtig zu machen, bevor andere RISC-Lösungen einen signifikanten Marktanteil von ihnen eroberten.

  3. Zwei Hauptgründe: Kompatibilität und Benutzerfreundlichkeit.

    Auch hier haben die vorhandenen Systeme (Windows und in geringerem Maße Mac OS) eine sehr große installierte Basis. Das bedeutet, dass viele Benutzer viele Programme verwenden. Freie GNU-Betriebssysteme können das nicht duplizieren. Das WINE-Projekt hat viel Arbeit in diese Richtung geleistet, ist aber immer noch kein Ersatz für ein tatsächliches Windows-System, und die WINE-Entwickler versuchen nicht einmal, dies zu behaupten. Die Leute wollen kein Betriebssystem verwenden, das ihre Lieblingsprogramme nicht ausführt, egal wie großartig es theoretisch ist. (Und ohne eine installierte Benutzerbasis möchte sich niemand für das System entwickeln. Es ist ein Henne-Ei-Problem.)

    Und dann kommen wir zur Usability. Meine Mutter hat ein Windows-System. Sie kann es für ihre Zwecke gut gebrauchen. Alles, was sie braucht, um mit ihrem Computer zu arbeiten, ist über die Windows-Oberfläche verfügbar, und wenn ich die Worte "Befehlszeile" zu ihr sagen würde, würde sie nicht einmal wissen, wovon ich spreche. Soweit ich weiß, es ist noch nicht möglich , dass auf einem freien GNU OS zu tun. Tatsächlich ist es so schwierig, mit Linux zu arbeiten, dass selbst die größten Community-Halbgötter manchmal ernsthafte Probleme mit einfachen Aufgaben haben. Und sie scheinen es nie zu "verstehen" und arbeiten daran, die Probleme zu beheben, weshalb sie nie Marktanteile gewinnen. (Der verlinkte Artikel sollte für jeden lesenswert sein, der jemals versucht, ein Massenmarktprogramm zu produzieren!)


16
-1 für Blogpost von vor 8 Jahren, was nicht mehr relevant ist.
Vartec

16
@Vartec: Nicht mehr relevant? Nehmen Sie es ernst mit der Behauptung, ein Benutzer könne heute Linux erlernen und damit beginnen, das gesamte Repertoire gängiger Endbenutzeraufgaben zu erledigen, ohne jemals wissen zu müssen, dass es überhaupt eine Befehlszeile gibt, wie sie es unter Windows oder OSX können?
Mason Wheeler

17
@Mason: Wann hast du zum Beispiel Ubuntu das letzte Mal gesehen? Unter Ubuntu ist es einfacher, allgemeine Endbenutzeraufgaben zu erledigen, ohne sich mit der Konsole auskennen zu müssen, als unter OSX (verdammt, wenn versteckte Dateien unter OSX sichtbar gemacht werden sollen, ist ein Doktortitel in Nerdology erforderlich). In Ubuntu funktioniert einfach alles. In Windows müssen Sie Treiber oder was auch immer installieren. In OSX funktioniert sowas einfach nicht. BTW. Benutzt deine Mutter RegEdit :-P
vartec

8
@ MasonWheeler: Natürlich. Jeder kann Ubuntu abholen und verwenden Sie es mit keinem Zeug Kommandozeile überhaupt . Mein Mitbewohner - mit Sicherheit kein Super-Tech-Kenner - hatte keine Probleme, von Windows zu Ubuntu zu wechseln. Andere Leute, die Ubuntu verwenden - unterschiedlich erfahren, aber keine Experten - hatten ebenfalls keine Probleme. Mein alter Mitbewohner hatte letztes Jahr mehr Probleme mit seinem Mac als mein aktueller Mitbewohner mit Ubuntu, und das bei vergleichbarer Computererfahrung. (Ausgerechnet das Drucken war unter Linux bei weitem einfacher als auf dem Mac!) Die ganze Linux-Befehlszeilensache ist also eine grobe Falschdarstellung.
Tikhon Jelvis

18
@MasonWheeler: Nehmen Sie ernst, dass ein Benutzer heute Windows abrufen und einen Netzwerkdrucker konfigurieren kann?
Christoffer Hammarström

14

Ich denke, es gibt einige Gründe, die ziemlich schwerwiegend sind, aber nicht erwähnt wurden.

Das erste ist Tanenbaums ziemlich blinde Annahme, dass technische Überlegenheit zur Marktbeherrschung führen würde. Die Leute haben jahrelang darüber gestritten, ob Mikrokerne (Nanokerne, Picokerne usw.) technisch überlegen sind, aber im Moment nehmen wir einfach an, dass sie es sind. Wir werden immer noch die Frage haben, ob diese technische Überlegenheit wahrscheinlich zu einer marktbeherrschenden Stellung führt. Ich werde annehmen, dass es nicht so ist. Für die meisten Menschen sind Windows, Mac OS usw. gut genug. Schlimmer noch, die Verbesserungen, die für die meisten Benutzer einen signifikanten Unterschied bedeuten würden, betreffen die Benutzeroberfläche und nicht den Kernel.

Die zweite ist drastisch überschätzen die Geschwindigkeit der Veränderung in einem (vernünftigerweise) reifen Markt. Es ist ziemlich einfach, Dinge in Eile zu ändern, wenn Sie einen neuen Markt haben. Damit in fünf Jahren im Wesentlichen jeder gewechselt werden konnte, hätte die Migration mit voller Geschwindigkeit stattfinden müssen, auch wenn er dies vorhergesagt hatte.

Ich würde auch eine andere Art und Weise bemerken, in der er Recht hatte, die ich nicht erwähnt habe. Die Allgegenwart von RISC wurde bereits erwähnt (z. B. in Mobiltelefonen). Was sie nicht erwähnt haben, ist die Allgegenwart dessen, was ich "Mikrokernel 2.0" nennen würde. Dies wird heute häufiger als "virtuelle Maschine" oder "Hypervisor" bezeichnet. Sie sind wirklich so ziemlich Mikrokerne.

Der große Unterschied besteht darin, dass Tanenbaum an einen Mikrokernel und eine Benutzermodus-Betriebssystememulation gedacht hat, die beide speziell für einander entwickelt wurden. Stattdessen haben wir das Betriebssystem im Wesentlichen unverändert gelassen und den Mikrokernel so angepasst, dass er unverändert ausgeführt wird. Technisch ist dies nicht so gut, aber aus Sicht des Marktes ist es dramatisch überlegen. Statt eines komplett neuen Systems von oben nach unten kann der Benutzer den größten Teil seines vorhandenen Codes unverändert weiterverwenden und einfach ein cooles neues hinzufügen "Dienstprogramm", das wirklich ein Mikrokernel-Betriebssystem ist.


8

Ein wichtiger Grund war Windows, insbesondere Windows 3.1 und etwas später Windows 95 und NT 3.51. Verbraucher mochten besonders die GUI-Oberflächen im Gegensatz zu den alten textbasierten Systemen von Unix und DOS. Dies bedeutete, dass mehr Durchschnittsbürger Computer für den Heimgebrauch kauften. Auch die Explosion des Internets Mitte der 90er Jahre erhöhte den Umsatz.

Die Preise für PCs gingen in den 90er Jahren ebenfalls zurück, bis sie den heutigen Stand erreichten. Dies war auf die Skaleneffekte zurückzuführen, die sich aus der gestiegenen Nachfrage von Verbrauchern und Unternehmen ergaben. Zum Beispiel kosten alle fünf meiner aktuellen Computer weniger als der 486-Desktop, den ich 1992 gekauft habe.

In gewisser Weise könnte er Recht haben, aber in eine unerwartete Richtung. Der Aufstieg mobiler Geräte, Smartphones und Tablets hat teilweise zu vereinfachten Betriebssystemen geführt und kann die Bedeutung von x86 verringern. Sie gehen jedoch weit über das hinaus, was 1992 prognostiziert wurde.


7

Letztendlich kommt es darauf an, dass sich die Dinge nicht wirklich gerne ändern.

Wir sind nicht auf einen besser strukturierten Mikrokernel umgestiegen, weil monolithische einfacher zu erstellen waren, schneller liefen und jeder wusste, wie man sie erstellt. Auch weil Linux als monolithischer Kernel entwickelt wurde und populär wurde, gab es keine Mikrokerne, die genug Erfolg hatten, um zu starten. (Es ist ein bisschen wie der gleiche Grund, warum wir alle Windows ausführen, wir führen Windows aus, weil jeder Windows ausführt.)

RISC, andere haben darauf hingewiesen, dass x86 heutzutage so ziemlich eine RISC-Architektur ist, mit einem CISC-Wrapper an der Spitze, um die Abwärtskompatibilität zu gewährleisten.

Viele Leute betreiben ein kostenloses GNU-Betriebssystem - auf dem Server. Das Web ist ziemlich stark davon getrieben. Niemand merkt, weil alle Clients Windows sind. Damals hatten Sie die Wahl: Linux, das immer noch ein Hobby-Betriebssystem war; eine Variante von Unix, aber Sie konnten es sich nicht leisten, es zu kaufen; oder billig n fröhlichen Windows. Linux brauchte zu lange, um Unix zu ersetzen, und hat immer noch nicht genug überzeugende Lösungen für die Ausführung auf dem Desktop (teilweise aufgrund ideologischer Probleme mit verschiedenen Windows-Systemen, binären Grafiktreibern und dem Fehlen eines stabilen ABI). In anderen Nicht-Desktop-Märkten wie Embedded und Mobile ist das jedoch recht gut.


6

Alle sind wahr, wenn Sie nicht glauben, dass ein Computer etwas auf Ihrem Desktop ist.

  1. Richtig - Mikrokerne haben nie funktioniert, weil sie nie mikro genug waren. Wenn das gesamte abgespeckte eingebettete Linux kleiner als das x86-spezifische Bit des MACH-Kernels ist, ist die Frage nach den Mikrokernen relevant?

  2. RISC dominiert den Markt. Jedes Jahr werden mehr ARM-CPUs verkauft als jemals zuvor X86-CPUs. Sie sind wahrscheinlich nie mehr als 6 Fuß von einer ARM-CPU entfernt.

  3. Fast jeder läuft unter Linux, es befindet sich in seinem Router, seiner TV-Setop-Box, seinem Tivo und seinem Android-Handy - sie wissen nur nicht, dass diese ein Betriebssystem haben


4
"Mikrokerne haben nie funktioniert, weil sie nie mikro genug waren"> Wie ich es verstehe, bezieht sich das Wort "mikro" nicht unbedingt auf Bytes oder Codezeilen. Die Idee ist, die Funktionalität in den Benutzerbereich zu verlagern und die vom Kernel selbst bereitgestellten Dienste auf ein Minimum zu beschränken. Zum Beispiel würde ein System mit einem Mikrokernel einen Benutzerprozess haben, der für die Handhabung des Dateisystems vorgesehen ist. Die Existenz einer abgespeckten Linux-Version, die kleiner als Minix ist, ist also nicht wirklich relevant.
Robz

1
@Robz Size ist ziemlich relevant - der Sinn eines Mikrokerns besteht darin, Ihnen Portabilität zu bieten und bestimmte Edge-Cases zu ermöglichen (wie das gleichzeitige Ausführen von zwei Betriebssystemumgebungen auf einem Computer ohne Virtualisierung). Wenn der Mikrokernel größer ist als ein Hybrid / Monolith, der die Plattformen begrenzt, auf denen er bereitgestellt werden kann, UND das Argument, dass es einfacher ist, Portabilität durch Schreiben einer kleinen Komponente zu erreichen, wird dadurch tendenziell zunichte gemacht, wenn er nicht kleiner als die Alternative ist.
Marcin

4

1) Er hat sich in den Mikrokernen geirrt. Nach meinem Verständnis übertrifft die Notwendigkeit der Geschwindigkeitsanforderung die Trennung von Bedenken, die in Mikrokernen, zumindest im Linux-Kernel, durchgesetzt werden.

2) Die vorherrschende Architektur in Tablets und Mobiltelefonen ist ARM, ein RISC-Befehlssatz. Auch Windows wurde portiert.

3) Jeder hat kein kostenloses GNU-Betriebssystem. Dies ist hauptsächlich auf Patente und Abwärtskompatibilität zurückzuführen. Wer Windows nicht möchte, wählt häufig OS X.


1) geschwindigkeit war damals noch wichtiger! Ich bin mir nicht sicher, ob es heute so wichtig ist.
gbjbaanb

Kommt darauf an, wo Ihre Engpässe sind.

Wenn Ihre einzige Anforderung ist, "schneller zu sein als der andere", wird es mit der Zeit nicht einfacher. Meiner Meinung nach gab es eine sehr kurze Zeitspanne, in der HURD Linux als gangbare Option hätte überholen können, und sie haben es verpfuscht, indem sie Zeit auf einem Port von L4 nach Mach verschwendeten.
Stammtisch am

2

1. Mikrokerne sind fehlgeschlagen

Aus den Gründen, die Linus Torvalds angegeben hat, sieht es auf dem Papier theoretisch attraktiv aus, aber bei der Implementierung auf modernen Systemen - die sehr komplexe Systeme sind - wird die Komplexität exponentiell unüberschaubar. Fallstudie ist GNU Hurd, ein volles Mikrokernsystem, das nicht einmal grundlegende Funktionen erreichen konnte. Mac OS X ähnelt in seiner Struktur Hurd und ist das am wenigsten stabile und am meisten eingeschränkte Betriebssystem.

2. CPU-Architektur

Dies hat sich für verschiedene Anwendungsfälle diversifiziert. Eine CPU-Architektur dominierte nicht, da die Anwendungsfälle für Embedded, Mobile, Desktop, Server usw. unterschiedlich sind und unterschiedliche Ansätze erfordern. Tannenbaum bemerkte diese Diversifikation nicht.

3. GNU vs World?

GNU dominierte nicht, Linux jedoch auf Servern, Embedded und Mobilgeräten. Auf Apple-Tablets und -Telefonen läuft iOS, das ist einfach altes Unix. Es ist schwierig, genaue Statistiken für Linux-Bereitstellungen auf dem Desktop zu erhalten, da es keinen echten Kernmechanismus gibt - den Verkauf von Einheiten -, der mit Sicherheit einen genauen Wert liefern kann. Die meisten Linux-Bereitstellungen auf dem Desktop werden manchmal als Windows-Bereitstellungen aufgezeichnet, da Benutzer ein Windows-System kaufen und es dann mit Linux überschreiben. Wenn Sie jedoch Betriebssysteme einteilen, hat Linux laut http://www.w3schools.com/browsers/browsers_os.asp ungefähr 5-6% auf dem Desktop, und dies entspricht der Anzahl der Windows Vista-Benutzer weltweit, was von großer Bedeutung ist .

Nach meinen eigenen Schätzungen aus verschiedenen Quellen könnte Linux auf dem Desktop tatsächlich der Anzahl der Benutzer unter Windows XP entsprechen - etwa 25% -, wenn Sie nicht-westliche Nationen wie China und Indien zählen, in denen Linux populärer ist als in USA oder EU, die jedoch möglicherweise nicht in die westlichen Statistiken einbezogen werden, weil sie nur die Zugriffe auf englischsprachige Websites zählen, die sich an Westler richten.

In Indien verwenden die meisten College-Studenten Ubuntu oder Fedora, da dies das Standard-Betriebssystem des indischen Bildungssystems und des berühmten IIT ist. Die meisten indischen Regierungsstellen verwenden auch Linux. In China ist Red Flag Linux das offizielle Betriebssystem der chinesischen Regierung und des chinesischen Schulsystems - Akademien der Künste und Wissenschaften - und das von den staatlichen Medien empfohlene Betriebssystem in China, um zu verhindern, dass junge verarmte Chinesen Raubkopien von Windows verwenden. Wenn Sie die Nutzung von Linux in Indien und China zählen würden, würde dies die meisten westlichen Technologieexperten schockieren und die Wahrnehmung der wahren Dominanz von Linux-Desktops in nicht-westlichen Entwicklungsländern, in denen Linux vorherrscht, radikal verändern.


1
Die Realität ist, dass Windows an der Betriebssystemfront für Desktop und Server wirklich geschlachtet wird. Wenn Sie der Meinung sind, dass nur ca. 45% der Benutzer Windows 7 verwenden, bedeutet dies, dass die Übernahme neuer Windows-Betriebssysteme in jedem Windows-Aktualisierungszyklus ein wenig um 10-15% abnimmt und die Benutzer entweder bei der alten Version bleiben oder zu Mac oder Linux wechseln. Bei Servern ist die Situation noch schlimmer, da bei jedem Windows-Server-Upgrade 20-30% der Benutzer sofort auf Linux-Server-Cluster
umsteigen

1
Toller Artikel über die oben genannten ... focus.com/fyi/50-places-linux-running-you-might-not-expect
AG Restringere

1

Die Produktion wurde billiger, x86 kam dem Preis von RISC so nahe, dass es nicht mehr machbar war, es zu verwenden. Es gab auch eine kleine Verkäufer-Sperre.


Ich glaube nicht, dass der Treiber für RISC jemals ein Preis war, vielmehr waren RISC-Architekturen besser gestaltet als x86. Leider haben sich MIPS und SPARC nie sehr gut entwickelt, und DEC ging das Geld aus, bevor der Alpha genügend Marktanteile hatte, um von Bedeutung zu sein. Intel war in der Lage, einiges an Leistung aus x86 herauszuholen, sodass es wirklich keinen zwingenden Grund gab, etwas zu ändern (für die meisten Leute). Jetzt, da die Leistung in Watt als MHz gemessen wird, beginnt x86 langsam, irrelevant zu werden.
TMN

Ja, ich weiß, ich habe nur erwähnt, warum RISC am Anfang viel schneller gestiegen ist als RISC. Natürlich hat sich dies heutzutage sehr verändert.
Lucas Kauffman

1
  1. Mikrokerne ersetzen Methodenaufrufe durch prozessübergreifendes Messaging, was die Entwicklungskomplexität für einige hypothetische Vorteile erhöht. Wie sich größtenteils herausstellt, können Sie mit einer guten Komponentisierung fast die gleichen Vorteile erzielen, auch wenn alles in einem großen Prozess abläuft.
  2. Die Frage ist nicht mehr relevant. CISC-Architekturen existieren nicht mehr, alle modernen Prozessoren sind in ihrem Herzen RISC, aber das hat den x86-Befehlssatz nicht zerstört. x86-Prozessoren seit der Pentium-Pro-Ära (vor 17 Jahren) verwenden Op-Code-Übersetzung, damit ein im Wesentlichen RISC-Kern von außen wie eine x86-CPU aussieht.
  3. Klassisch schlechter ist besser . Iteration, Pragmatismus, Netzwerk- und Ökosystemeffekte schlagen jedes Mal die Reinheit.

1

Mikrokerne sind die Zukunft x86 wird aussterben und RISC-Architekturen werden den Markt dominieren (in 5 Jahren). Jeder wird ein freies GNU-Betriebssystem ausführen

Es hängt davon ab, wie Sie die Zukunft betrachten und definieren. Im herkömmlichen Sinne sind seine Vorhersagen gescheitert.

Die Zeit ist jedoch noch nicht vorbei (abgesehen von einer weiteren eingehenderen Diskussion) .

Somit könnten sich die Dinge noch ändern:

  1. Mikrokerne oder eine andere Variante könnten ein Comeback erleben

  2. RISC / ARM kann durchaus dominieren -> Tablets / Handys

  3. In 10 oder 15 Jahren. Wer weiß, Open Source verändert die Welt langsam.


1
Natürlich können sich die Dinge in Zukunft ändern. Meine Frage ist, wie die Welt jetzt ist und warum sie nicht bereits seine Vorhersagen widerspiegelt.
Robz

Diese Gründe wurden bereits von anderen angeführt. Ich gebe Ihnen eine alternative Sichtweise. Im Rahmen einer gesunden Diskussion sollten zumindest alle Perspektiven berücksichtigt werden. Lebe lange und gedeihe mein Freund.
Darknight

Etwa 3, der Unterschied ist, dass das GNU-Betriebssystem nicht mehr relevant ist. Niemand verwendet den GNU Hurd-Kernel, und wenn Sie alle GNU-Userspace-Tools von Linux- oder OS X-Desktops entfernen, bemerken die meisten Leute das gar nicht. Wenn Sie sich andere erfolgreiche Bereitstellungen von Open-Source-Betriebssystemen ansehen (z. B. Linux-basierte Router und Android), hängen die meisten davon auch nicht von GNU-Komponenten ab. Es gibt viele GNU-Tools, die sehr beliebt und nützlich sind, aber sie sind weit davon entfernt, Teil des von Menschen verwendeten "Betriebssystems" zu sein.
Ehabkost

0

Zu 2: Der CISIC-Befehlssatz hat einen großen Vorteil: Er ist kompakter als komprimierter Maschinencode. Heutzutage ist es sehr billig, CISC-Anweisungen in Micro-Ops zu dekodieren, und es ist sehr teuer, auf den RAM zuzugreifen. Daher hat CISC den Vorteil, dass mehr Code in den L1 / L2 / L3-Caches abgelegt wird


0

Ich erinnere mich an die Zeit - und an die Zeit davor. Keine Ahnung von Mikrokernen, aber

2) Die Idee von RISC hatte zwei Seiten: Software-Optimierungen könnten in Software besser als in der Hardware durchgeführt werden, und RISC-Chips könnten wirtschaftlich schneller als CISC-Chips hergestellt werden.

Beide Vorstellungen erwiesen sich kurzfristig als falsch. Intel konnte und konnte CISC-Chips herstellen, die Instruktionen schneller als die konkurrierenden RISC-Chips zu einem wettbewerbsfähigen Preis takten. Intel konnte und konnte CISC-Chips herstellen, die die Programmoptimierung in der Hardware besser ausführten als im Compiler oder im Software Runtime Supervisor. Außerdem konnte jede Softwareoptimierung hinzugefügt werden, genau wie bei einem RISC-Chip.

3) Informatik, Programmierung und Operations wurden in meiner Karriere viermal komplett neu erfunden. Vom Hauptrahmen zum PC. Von der Kommandozeile zur GUI. Von der GUI ins Internet. Vom Internet zum iPad. Die Revolution scheint jetzt normal zu sein, aber das haben wir nicht vorhergesagt. Wie alle älteren Programmierer zu dieser Zeit sagte er das "Ende der Geschichte" voraus.

In fünf Jahren hatten nur sehr wenige Leute ein GNU-Betriebssystem, weil die Zählung neu gestartet wurde.

Vielleicht passiert es immer noch. Vor 5 Jahren hätten Sie vorausgesagt, dass unser Windows-Server durch * nix-Server ersetzt wird (während ich schreibe, hat SAMBA einen AD-Domänenserver veröffentlicht, der das fehlende Puzzleteil war). Es wird nicht passieren, wo ich arbeite: Wir werden keine lokalen Server haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.