2 Punkte von GN⁺ 2023-11-06 | 1 Kommentare | Auf WhatsApp teilen
  • Intel 80386 war mehr als die erste 32-Bit-CPU der x86-Familie: Mit 4 GiB Flat Memory und gleichzeitiger Kompatibilität zu bestehendem x86 wurde sie zur Grundlage moderner Betriebssysteme für PCs
  • Intel setzte anfangs stärker auf andere Architekturen wie iAPX 432 und P7, machte die Fertigstellung des 386 wegen des Wachstums des PC-Markts und der x86-Softwarekompatibilität aber schließlich zur obersten Priorität
  • Beim 386 erlaubte Intel keine Second-Source-Produktion durch IBM oder AMD und wurde zum alleinigen Anbieter; der Compaq Deskpro 386 erschütterte den von IBM dominierten Verlauf der PC-Standards
  • Die Leistung war zeitgenössischen RISC-Chips nicht überwältigend überlegen, doch die in allen 386-Modellen enthaltene MMU und der Virtual-8086-Modus wurden zum Kern des Übergangs zu UNIX, OS/2, Windows, NT und Linux
  • Mit der Massenproduktion von 386-basierten PCs verbreitete sich die MMU bis in PCs für normale Nutzer; auch die Popularisierung von Windows und die Entstehung von Linux sind eng mit der Verbreitung des 386 verbunden

Der 32-Bit-x86, den Intel nicht wollte

  • Der Intel 80386 war die erste 32-Bit-CPU der x86-Familie, gehörte aber anfangs nicht zu Intels zentralen Plänen
  • Intels wichtigstes Projekt Ende der 1970er-Jahre war iAPX 432, gedacht als führendes Design der 1980er-Jahre
    • iAPX 432 war eine ambitionierte CPU, die objektorientierte Programmierung und Speicherallokation passend zu Hochsprachen wie ADA in Hardware bereitstellen sollte
    • Weil absehbar war, dass die Reifung des Designs lange dauern würde, begann Intel 1976 als Übergangsentwurf mit dem 8086
  • Die 8086-Familie gewann den Vertrag für den IBM PC, während iAPX 432 1981 verspätet erschien und mit enttäuschender Leistung auffiel
    • In Benchmarks erreichte er bei gleicher Taktfrequenz nur etwa ein Viertel der Geschwindigkeit des deutlich günstigeren 80286
  • Auch 1982 erkannte Intel die Bedeutung der PC-Plattform und der Software-Binärkompatibilität noch nicht ausreichend; auch der 80286 war eher eine weitere Übergangs-CPU
  • Nachdem Intel-Ingenieure das Scheitern der 432-Familie erkannt hatten, begannen sie mit der Vorbereitung einer neuen 32-Bit-RISC-Architektur namens P7

Festlegung der Designrichtung des 80386

  • Bob Childs, einer der Entwickler des 286, fasste informell Ideen für eine 32-Bit-Erweiterung des 286 zusammen
  • Etwa sechs Monate später kam Intel zu dem Schluss, dass vor der Fertigstellung von P7 eine weitere Iteration der x86-Familie nötig sei, und genehmigte die Entwicklung des 386
    • Das anfängliche Team war klein und das Budget begrenzt
    • Eine Untersuchung der Anforderungen von x86-Kunden ergab, dass das segmentierte Speichermodell des 8086 weithin unbeliebt war und dass auch der 80286 diese Schwäche nicht beseitigt hatte
  • Da UNIX auf günstigeren Workstations wichtiger wurde, setzte sich das 386-Team eine für UNIX geeignete CPU zum Ziel
  • Die wichtigste Anforderung war Flat-Memory-Adressierung
    • Um die bestehende x86-Kompatibilität zu erhalten, behielt auch der 386 die Segmentstruktur bei
    • Da jedes Segment nun bis zu 4 GiB groß sein konnte, trat die Bedeutung der Segmente praktisch in den Hintergrund
    • Auch die Bereitstellung von Paging und virtuellem Speicher wurde in dieser Phase beschlossen
  • Der bestehende Befehlssatz und die Register wurden auf 32 Bit erweitert, um Binärkompatibilität zu erhalten
    • Ein Ansatz mit einem völlig anderen Befehlssatz hinter einem separaten „Mode Header“ wurde nicht gewählt
    • Dadurch ließ sich jedoch die x86-Schwäche der geringen Registerzahl nicht beheben
  • Zeitweise wurde auch die Nutzung eines neuen Busses für P7 geprüft, aber verworfen, weil er sich zu stark vom 286-Bus unterschied und eine Neuentwicklung von Mainboards und Support-Chips erfordert hätte
    • Gewählt wurde ein weniger ambitionierter Ansatz, bei dem der bestehende Bus auf 32 Bit erweitert wurde
  • Um 1984, als der PC-Markt wuchs, verstand Intel die Bedeutung der x86-Familie, und die Fertigstellung des 80386 wurde zur obersten Priorität
    • Das P7-Projekt führte 1988 zum i960 und wurde auf den Embedded-Markt umgelenkt, damit es den 386-Verkäufen nicht in die Quere kam

Intels Strategie als alleiniger 386-Anbieter

  • Der 80386 wurde im Oktober 1985 vorgestellt
  • Damals war es üblich, dass Chipdesign-Firmen wie Intel ihre CPUs an andere Unternehmen lizenzierten, damit diese sie ebenfalls fertigen konnten und so Second Sources entstanden
    • Kunden konnten CPU-Engpässe vermeiden, selbst wenn der Hauptlieferant Yield-Probleme hatte
    • Intel und AMD pflegten seit den 8085-Zeiten eine lange Zusammenarbeit und lizenzierten Produkte gegenseitig
    • Auch IBM besaß seit 1983 eine Lizenz, den 808x und den 80286 selbst zu produzieren
  • Beim 80386 änderte sich diese Praxis
    • Intel hielt es für wichtig, alleiniger Anbieter zu werden, wenn es die wertvollste Komponente im PC, die CPU, direkt kontrollieren wollte
    • IBM war stärker daran interessiert, umfangreich in den 286 zu investieren als in einen zukünftigen 386
    • Die Vereinbarung zwischen Intel und IBM wurde so neu verhandelt, dass IBM beim 286 zufriedengestellt wurde, aber IBM durfte den 386 nicht produzieren
  • Auch AMD hatte kein großes Interesse an der Produktion des 386, und die Second-Source-Vereinbarung mit AMD wurde nicht auf den 386 ausgeweitet
  • Etwa zur gleichen Zeit entschied der Fall NEC gegen Intel, dass Mikrocode urheberrechtlich geschützt ist und ohne eine spezifische Lizenz von Intel nicht kopiert werden darf
    • Selbst wenn NEC den Mikrocode des 8086 hätte reverse-engineeren können, galt der 386 wegen seiner Komplexität als nahezu unmögliches Ziel
  • Nach dieser Entwicklung war Intel zusammen mit Microsoft in einer Position, die Zukunft des PC-Markts zu kontrollieren

Compaq Deskpro 386 und der Sieg der PC-Klone

  • Der IBM PC nutzte Standardkomponenten, um schnell auf den Markt zu kommen; dadurch konnten auch andere Unternehmen dieselben Teile kaufen und kompatible Rechner bauen
  • Der erfolgreichste und ambitionierteste Klonhersteller war Compaq
    • Damals war Compaq das Unternehmen, das am schnellsten 100 Millionen US-Dollar Umsatz erreichte
  • Compaq stellte den Deskpro 386 im September 1986 vor, fast ein Jahr nachdem Intel den 80386 herausgebracht hatte
    • Der Deskpro 386 war der erste 386-Computer
    • Er war auch der erste PC, der nicht der Linie folgte, mit der IBM über den 286-basierten PC/AT die Kontrolle über den PC-Markt zurückgewinnen wollte
  • Bill Gates sagte, IBM habe dem 386 nicht vertraut und Microsoft habe Compaq ermutigt, eine 386-Maschine zu bauen
    • Dieses Ereignis wurde zu einem Wendepunkt, der zeigte, dass nicht nur IBM Standards setzen konnte, sondern auch Unternehmen wie Compaq und Intel Neues schaffen konnten
  • Der Compaq Deskpro 386 war anfangs sehr teuer, verkaufte sich aber ordentlich und zeigte, dass IBM nicht mehr an der Spitze stand
  • Erst fast ein Jahr später brachte IBM mit dem PS/2 Model 80 seinen ersten 386-Computer heraus
    • Die PS/2-Linie versuchte mit einem damals sehr fortschrittlichen proprietären Bus, die Kontrolle zurückzugewinnen
    • IBM war jedoch nicht mehr in der Lage, seinen Weg zu erzwingen, und die PS/2-Linie erfüllte diese Aufgabe nicht

Wettbewerbsumfeld und Leistung des 386

  • 1985 war die Motorola-680x0-Familie der wichtigste Konkurrent der Intel-x86-Familie
    • Viele hielten den 68000 für einen dem 8086 weit überlegenen Chip und sahen im 80286 eine verpasste Chance, sich zu einer sauberen Architektur weiterzuentwickeln
    • Der 68020 war die natürliche 32-Bit-Evolution der Motorola-CPU
  • Mit dem 80386 hatte Intel erstmals einen ernstzunehmenden Wettbewerber
    • Mit integrierter MMU und 4-GiB-Flat-Adressraum konnte Intel auch den lukrativen Workstation-Markt ins Visier nehmen
  • Im Workstation-Markt führten viele Unternehmen RISC-Designs ein
    • RISC war attraktiv, weil es schneller und günstiger herzustellen sein konnte
    • Der 386 war ein CISC-Design, das auf umfangreichen Mikrocode angewiesen war, um den komplexen x86-Befehlssatz und die Adressierungsmodi des 80286 zu verarbeiten
  • In Benchmarks zeigte der 386 durchschnittliche Leistung
    • Intel 80386 mit 16 MHz erreichte 4 MIPS, mit 25 MHz 6 MIPS
    • Motorola 68030 mit 25 MHz erreichte ebenfalls 6 MIPS
    • Mips R2000 mit 16 MHz erreichte 16 MIPS, Motorola 88000 mit 16 MHz 17 MIPS, Intel i960CA mit 33 MHz 66 MIPS
  • Die Leistung war nicht revolutionär, aber die für den Wettbewerb nötigen Funktionen waren vorhanden

386SX und die Verbreitung von 32-Bit-Software

  • Nachdem Intel sich vollständig zum 386 bekannt hatte, führte das Unternehmen 1988 den 386SX ein
  • Der 386SX war intern identisch mit dem ursprünglichen 386, der nun in 386DX umbenannt wurde
    • Der externe Datenbus war 16 Bit breit
    • Er wurde in einem günstigen Kunststoffgehäuse angeboten
    • Er konnte in günstige 16-Bit-Mainboards gesteckt werden
  • Das Hauptziel des 386SX war es, den 286 in ähnlichen Preisklassen zu ersetzen
    • Für den 286 gab es weiterhin Second-Source-Anbieter
  • Anfang der 1990er-Jahre war die installierte Basis des 386 groß genug, dass mehr Softwareanbieter 32-Bit-Funktionen und moderne Features nutzen konnten
  • Entscheidend war, dass alle 386-Modelle, einschließlich der günstigen Varianten, eine integrierte MMU enthielten

Wie die MMU die Speicherverwaltung veränderte

  • MMU steht für Memory Management Unit, eine Hardwareeinheit, die virtuelle Adressen automatisch in physische Adressen übersetzt
  • Frühe Programme konnten den gesamten Adressraum der Maschine sehen
    • Bei kleinen Adressräumen war das beherrschbar, doch als mehrere Programme gleichzeitig liefen und das Betriebssystem nicht mehr im ROM bleiben konnte, wurde Isolation zu einem größeren Problem
  • Eine der frühen Lösungen war Segmentierung
    • Segmentregister dienten als Basisadressen
    • Wenn ein Programm auf eine Adresse zugriff, wurde ein 16-Bit-Wert zum Segmentregister addiert, um die physische Adresse zu bilden
    • Wurde die Segmentgrößengrenze überschritten, trat ein Fault auf, wodurch Isolation zwischen Programmen möglich wurde
    • Der 8086 nutzte Segmentierung für Speicherzugriffe
  • Der 80286 verfügte über eine funktionsreiche Segment-MMU, die komplexere Speicherverwaltung unterstützte und Zugriff auf bis zu 16 MiB Speicher ermöglichte
    • OS/2 1.x nutzte diese MMU, um eine modernere Erfahrung zu bieten
  • Für PC-Programmierer war segmentierter Speicher stark eingeschränkt und schwer zu handhaben
  • Modernere MMU-Designs konzentrieren sich auf Paging
    • Die MMU teilt den virtuellen Adressraum in Seiten fester Größe auf
    • Beim Zugriff auf eine Seite liest sie einen Page Descriptor, um Informationen für die Übersetzung in eine physische Adresse zu erhalten
    • Da Page Descriptors üblicherweise im Speicher liegen, wird aus Leistungsgründen ein TLB-Cache für kürzlich verwendete Deskriptoren genutzt
  • Viele moderne Betriebssysteme, insbesondere UNIX-Ports, passten besser zu Paging
    • 68000-basierte Workstations nutzten teils eigene externe Paging-MMUs statt des MC68451
    • Motorola führte mit dem 68851 eine externe MMU für den 68020 ein

Struktur und Besonderheiten der 80386-MMU

  • Der 386 musste für moderne Betriebssysteme geeignet sein und zugleich mit 8086, 80286 und bestehender x86-Software kompatibel bleiben
  • Dafür wurde die 386-MMU fast wie zwei getrennte Einheiten aufgebaut
    • Eine Einheit für den Segmentmodus
    • Eine andere Einheit für den Paging-Modus
  • Die beiden Einheiten arbeiten hintereinander
    • Eine logische Adresse wird zunächst durch die Segmenteinheit in eine lineare Adresse berechnet
    • Ist Paging deaktiviert, ist diese lineare Adresse zugleich die physische Adresse
    • Ist Paging aktiviert, wird ein Page Descriptor aus dem TLB oder dem Speicher geholt, um die tatsächliche physische Adresse zu erzeugen
  • Die Segmenteinheit lässt sich nicht deaktivieren, kann aber wie Flat Memory genutzt werden, indem der gesamte Speicherraum als 4-GiB-Segment ab Adresse 0 dargestellt wird
  • Die Paging-Einheit teilt Segmente in 4-KiB-Seiten auf
  • Der 80386 führte vier Privilegstufen ein, die Rings
    • Sie dienen dazu, privilegierten Speicher vor unprivilegiertem Lesen und Schreiben zu schützen
    • Sie gehörten zu den Grundbausteinen, auf denen moderne geschützte Betriebssysteme aufbauen
  • Die MMU ist auch am Virtual-8086-Modus beteiligt
    • 8086-Programme laufen so, als kontrollierten sie einen ganzen 8086 mit bis zu 1 MiB Speicher
    • Mehrere V86-virtuelle Maschinen können gleichzeitig laufen
    • Aktionen wie der Zugriff auf geschützte Ressourcen lösen Interrupts aus und werden von privilegierter Software behandelt
  • Die 386-MMU wurde als integrierter und sauber organisierter Teil der CPU entworfen
    • Unter idealen Bedingungen beeinflusst sie die Leistung von Speicherzugriffen nicht
    • Der MC68851 fügt immer mindestens einen Zyklus Verzögerung hinzu
  • In der 68000-Familie war eine MMU nicht immer vorhanden
    • Der 68020 benötigte eine externe MMU
    • Die günstigen EC-Versionen von 68030 und 68040 hatten keine integrierte MMU
  • Beim 80386 war selbst im günstigen 386SX in allen Modellen eine MMU enthalten
    • Programme, die MMU und erweiterte Betriebsmodi nutzten, konnten auf jedem 386 laufen

Der vom 386 eröffnete Betriebssystem-Übergang

  • Die eigentliche Wirkung des 386 lag weniger in der Rohleistung als darin, auf PCs moderne Betriebssysteme zu ermöglichen
  • Xenix

    • Xenix war einer der frühen UNIX-Ports für Mikrocomputer und entstand aus der Zusammenarbeit von Microsoft und SCO
    • 1980 wurde ein 8086-Port angekündigt, doch ohne echte MMU waren Speicherschutz und die Trennung von User Space und Kernel Space unmöglich
    • Die 286-Version nutzte den Protected Mode und kam dem UNIX von Workstations näher
    • Der 386-Port von 1987 nutzte Paging, verringerte die Lücke und wurde zum ersten modernen 32-Bit-Betriebssystem auf x86
  • OS/2

    • OS/2 war zunächst eine gemeinsame Entwicklung von Microsoft und IBM; später stieg Microsoft aus, um sich auf Windows zu konzentrieren
    • Es erschien 1987, aber die frühen Versionen zielten auf den 286
    • Der Grund war, dass viele Systeme der IBM-PS/2-Linie mit einem 286 ausgestattet waren
    • OS/2 nutzte den Protected Mode gut und galt damals als fortschrittliches Betriebssystem
    • Zu einem 32-Bit-Betriebssystem wurde OS/2 erst mit Version 2.0 im Jahr 1992
    • Bis dahin war die Unterstützung für DOS-Anwendungen wegen des segmentierten Speichermodells und des fehlenden Virtual-8086-Modus schlecht und fiel auch hinter Windows/386 zurück
    • OS/2 2.0 war das erste 32-Bit-Betriebssystem, das auf Personal Computern breite Verwendung fand
  • Windows

    • Windows bot ab Windows/386 im Jahr 1987 eine speziell auf den 80386 ausgerichtete Betriebsumgebung
    • Windows/386 war weiterhin ein 16-Bit-Betriebssystem und legte keinen 32-Bit-Flat-Memory-Raum offen
    • Stattdessen nutzte es 386-Funktionen, um DOS-Sitzungen im Virtual-8086-Modus zu virtualisieren
    • Mehrere DOS-Sitzungen konnten parallel laufen, ohne voneinander zu wissen
    • Das war für viele Unternehmen wichtig, die auf DOS-Software angewiesen waren
    • Dank der MMU wurde über Protected-Mode-Treiber, die EMS emulierten, auch Extended Memory bereitgestellt
    • Mit Windows 3.0 und Windows 3.1 wurde diese Linie verbessert, und Windows 3.1 wurde ein großer Erfolg
    • Windows for Workgroups 3.11 von 1993 stellte die Unterstützung für CPUs unterhalb des 386 ein; Dateizugriffe und viele Treiber wurden 32-Bit
    • Windows 95 nutzte die 386-MMU ernsthaft
      • Es legte einen Flat-Memory-Raum offen
      • Es verwendete Paging und virtuellen Speicher
      • Teile des Codes waren weiterhin 16-Bit, aber DOS wurde fast auf die Rolle eines Bootloaders reduziert
  • Windows NT

    • Das erste Windows NT erschien im Juli 1993
    • Anders als Windows 95, das sich aus Windows 3.11 entwickelte und einen Teil des 16-Bit-Legacy-Codes beibehielt, wurde NT von Grund auf neu mit dem Ziel eines „reinen“ 32-Bit-Windows entwickelt
    • Eines der Hauptmerkmale von NT war Hardware-Unabhängigkeit, doch der wichtigste Port war der für den 80386
    • NT nutzte Paging, Supervisor Mode und Speicherschutz umfassend
    • NT teilte sich nahezu dieselbe API mit Windows 95 und konnte viele Win32-Anwendungen ausführen
    • NT4 begann Mitte der 1990er-Jahre, den Workstation-UNIX-Markt zu beeinflussen
    • Windows 11 ist ein direkter Nachfahre des NT-Kernels
  • Linux

    • Das am engsten mit dem 386 verbundene Betriebssystem ist Linux
    • Linus Torvalds kaufte sich um Januar 1991 einen neuen 386-PC
    • Linus sagte, er habe PCs als Computer-Purist, der mit dem 68008-Chip aufgewachsen war, nicht gemocht, aber mit dem Erscheinen des 386 habe der PC attraktiv zu wirken begonnen
    • Der 386 konnte das leisten, was der 68020 konnte
    • Bis 1990 war er durch Massenproduktion und günstige Klone deutlich billiger geworden
    • Dieser 386-PC eignete sich, um Minix auszuführen, einen kleinen UNIX-Klon zum Lehren von Betriebssystem-Innenleben
    • Linus war mit dem Terminalemulator von Minix unzufrieden und begann, einen eigenen zu schreiben
    • Ein gutes Terminal war wichtig, um sich mit dem Universitätscomputer zu verbinden
    • Um die 386-Hardware zu lernen, schrieb er ihn im Bare-Metal-Stil
    • Er implementierte Tastatureingabe und Bildschirmausgabe
    • Da er ihn um zwei unabhängige Threads herum entwarf, schrieb er einen kleinen Task Switcher
    • Um Programme herunterzuladen, brauchte er einen Festplattentreiber zum Speichern; als nach und nach Funktionen hinzukamen, entstand das Betriebssystem, das als Linux bekannt werden sollte
    • Mitte 1991 bat Linus um ein Exemplar der POSIX-Spezifikation, und am 25. August 1991 teilte er in der Newsgroup comp.os.minix mit, dass er an einem neuen Betriebssystem arbeite
    • Die damalige Formulierung lautete: „just a hobby, won’t be big and professional like gnu“

Langfristige Wirkung des 80386

  • Der 80386 gilt als die wichtigste CPU der x86-Familie
  • Technisch war der 80386 ein guter Chip, aber bei der Leistung war er nicht revolutionär und lag hinter zeitgenössischen RISC-Chips zurück
  • Der Kern waren eine moderne, schnelle MMU und mehrere Betriebsmodi
    • Er konnte auf 4 GiB Flat Memory zugreifen
    • Er hielt die Kompatibilität mit bestehender x86-Software aufrecht
    • Windows konnte schrittweise modernisiert werden
  • Die Speicherverarbeitungsfähigkeiten des 386 waren gut genug, sodass spätere CPUs zwar leistungsfähiger wurden, in diesem Bereich aber fast 20 Jahre lang kaum große Ergänzungen vornahmen
  • Der Linux-Mainline-Kernel stellte die Unterstützung für i386 erst 2013 ein
  • Auch kommerziell war die Bedeutung des 386 groß
    • Intel glaubte anfangs nicht an eine Nachfrage nach 32-Bit-x86, erkannte aber, dass x86 die Zukunft war
    • Diese Veränderung signalisierte dem Markt, dass x86 weiterbestehen würde
    • Die 386-Übernahme durch wichtige Klonhersteller verdrängte IBM und zeigte, dass es eine vertrauenswürdige offene Alternative gab
    • Intel wurde zum einzigen Anbieter der stärksten x86-CPU und tat damit einen wichtigen Schritt zur Dominanz im CPU-Markt
  • Als 386-basierte Maschinen in Massenproduktion gingen, fielen die Preise schnell und der Zugang zur MMU wurde breit verfügbar
    • Windows führte Millionen Menschen an modernes Computing heran
    • Der NT-Kernel zeigte, dass auch auf günstigen „beigen“ PCs ein robustes Betriebssystem laufen konnte
    • Linux ist so eng mit dem 386 verbunden, dass man sagen kann, ohne den 386 hätte es Linux nicht gegeben

1 Kommentare

 
GN⁺ 2023-11-06
Hacker-News-Kommentare
  • Ich denke, dass das endgültige Design des 80386 stark vom Motorola 68000 und dem nachfolgenden m68020 profitiert hat
    Hätte Motorola nicht einen kompromisslosen, echten 32-Bit-CPU herausgebracht, hätte Intel nach dem 80286 womöglich noch eine weitere Behelfslösung veröffentlicht. Auch der 80286 selbst war nicht als echter Nachfolger des 8086/8088 gedacht
    Tatsächlich gab es auch beim 80386 viele Kompromisse. Abgesehen von der 16-Byte-Befehlsvorabruf-Warteschlange gab es überhaupt keinen Cache, während der m68020 einen 256-Byte-Instruktions-Cache hatte. Es gab auch keine atomaren Instruktionen, und LOCK war hier nicht besonders nützlich, weshalb heute viele Betriebssysteme zwar den 80486, aber nicht den 80386 unterstützen. Wegen der 8086-Kompatibilität waren Real Mode und VM86 nötig, sodass es ziemlich lange dauerte, bis Software die neuen Funktionen des 80386 wirklich nutzte
    Trotzdem war es ein wichtiger Chip und zeigte schon frühe Anzeichen des Musters, für das Intel später bekannt wurde. Dazu gehörten Versuche, mit x86 nicht zu konkurrieren oder zugunsten anderer Märkte x86 zu opfern (iAPX 432, 20 Jahre später Itanic), Funktionen, die hastig ergänzt wurden und dann wie beim 80286 für immer als Legacy-Support mitgeschleppt werden mussten, sowie das späte Aufholen bei Funktionen, die andere Hersteller bereits hatten und die alle wollten (damals flacher 32-Bit-Support, 20 Jahre später 64-Bit-Support)

    • Der Rechner, auf dem Linus Torvalds den ersten Linux-Kernel schrieb, war ein 386, und dass Linux von Anfang an die neuen Funktionen des 386 unterstützte, war einer der Gründe für seinen schnellen Aufstieg
    • Ob das Fehlen atomarer Instruktionen beim 386 wirklich so wichtig war, ist fraglich. Soweit ich weiß, gab es beim 386 kein symmetrisches Multiprocessing (SMP), und in einer Einprozessorumgebung kann man Operationen atomar machen, indem man Interrupts deaktiviert
  • Intel steckte damals in einer großen Krise, und das Schicksal des gesamten Unternehmens hing davon ab, dass dieser Chip hervorragend gelang
    Es hätte auch leicht schiefgehen können, wie bei Data General, Honeywell, CDC, AST, Tandy, Olivetti, Xerox, DEC Rainbow, AT&T Hobbit, Wang 2200 oder Unisys. Hier gibt es einen starken Survivorship Bias. Die meisten einstigen Giganten wie SDS, SDC und Fairchild sind heute fast vergessen
    Intel war seiner Geschichte nach ursprünglich eher ein Speicherhersteller. Man kann sagen, dass das Unternehmen sich heute wieder in einer ähnlich schwierigen Lage befindet. Der Marktanteil bei Mobilgeräten und Unterhaltungselektronik liegt faktisch bei 0 %, und selbst in den verbliebenen Kernfestungen bedrängen NVIDIA, AMD und ARM das Unternehmen wie Plünderer einer Burg. Hoffentlich schafft Intel es auch dieses Mal wieder

    • Dass Andy Grove Intel von Speicher zu Mikroprozessoren führte, war eine brillante strategische Entscheidung
      „Geschäftlicher Erfolg trägt den Keim der Selbstzerstörung in sich. Erfolg erzeugt Selbstzufriedenheit, Selbstzufriedenheit erzeugt Misserfolg. Nur die Paranoiden überleben.“
      Das Intel-Management der 2010er Jahre hat sich das nicht ausreichend zu Herzen genommen
    • DEC Rainbow wäre wohl in Ordnung gewesen, wenn man die Leute nicht gezwungen hätte, proprietäre Disketten für 5 Dollar pro Stück zu kaufen
      DEC hätte den LSI-11 als Maschine für Endverbraucher verpacken sollen. Die Software war vollständig vorhanden und zudem von sehr hohem Niveau. Ich hatte einen H-11, und das war eine großartige Maschine
    • NVIDIA kann keine guten CPUs bauen, und selbst die SoCs sind kaum auf dem neuesten Stand. Außer in Bereichen wie der Autoindustrie, wo es vor allem um langfristige Bauteilverfügbarkeit geht, und bei der Nintendo Switch gibt es kaum Akzeptanz im Massenmarkt
      Dass die Switch immer noch einen Tegra-Chipsatz aus der Zeit um 2015 nutzt, liegt wahrscheinlich auch daran, dass selbst ein so großes Unternehmen wie Nintendo NVIDIA nicht genug unter Druck setzen konnte, um ein neues Design zu erzwingen. ARM baut keine Server-CPUs, die man allgemein breit kaufen könnte, und die existierenden Produkte werden von Cloud-Anbietern komplett aufgekauft. Auch außerhalb des Mac gibt es keine brauchbaren ARM-Desktop- oder Laptop-CPUs. Qualcomm hat diesen Markt über Jahre ruiniert
      Solange ARM keine Lösung bringt, die mit Rosetta konkurrieren kann, und Qualcomm sich nicht von der Denkweise löst, nach dem Motto „wenn es gerade so läuft, kann man es veröffentlichen“ — was bei Smartphone-Herstellern vielleicht funktioniert, aber nicht zum PC-/Desktop-Markt passt —, scheint eine ARM-Adoption in diesem Markt schwierig
      Letztlich bleibt AMD die einzige Bedrohung für Intel, aber AMD hat nicht genug Fab-Kapazität, um Intels Burggraben ernsthaft zu gefährden. Der Wettbewerbszustand im allgemeinen Computing ist vielleicht sehr frustrierend, vielleicht aber auch nicht
    • Was ist heute Intels Hoffnung? Gibt es so etwas wie einen Quark-abgeleiteten Desktop-CPU im Stil von Dothan?
  • Ich wünschte, man würde dem 386 nicht länger nachträglich die Deutung als „flaches 32-Bit“ überstülpen. Das war offenkundig nicht das eigentliche Ziel; es ging eher darum, wichtige Funktionen einer Capability-basierten Architektur aufzugreifen, die damals als Zukunft galten
    Das ist der Kontext vor dem Durchsetzen von Ideen wie Unix/C/RISC/ein einziges Supervisor-Modell, die in Bereichen wie Sicherheit 30 Jahre OS-Forschung auf Mainframes und Minicomputern verdrängten
    Was dieser Artikel nicht klar genug herausstellt, ist, dass Segmentregister nun im Wesentlichen zu Selektorindizes in Tabellen wurden, die Basisadresse+Länge-Felder (seiten- oder byteweise) und Ausführungsrechte enthielten. Und diese Selektoren sowie GDT/LDT/IDT/TSS/Call Gates/Task Gates usw. waren alle darauf ausgelegt, ein 4-stufiges Rechtemodell zu unterstützen, etwa Benutzer/Bibliothek/Treiber/Kernel
    Man konnte auch Größenbeschränkungen für Datenstrukturen erzwingen, indem man Zugriffsselektoren übergab, und dafür wurden FS/GS hinzugefügt, sodass jedes Allzweckregister seine eigene Rechtemaske haben konnte
    Wenn man einen Moment darüber nachdenkt: Pointer (Capabilities, also Selektoren) konnten nicht nur eine Basisadresse, sondern auch hardwareerzwungene Grenzen haben, und dank des Rechtemodells konnte man verhindern, dass Funktionen wie strcpy() in Speicher schreiben, der weder der Zielpuffer noch ihr eigener Arbeitsbereich ist. Sprache und OS konnten erzwingen, dass eine aufgerufene Funktion nicht auf den Stack des Aufrufers schreibt oder sogar auf einem völlig separaten Stack läuft. Das war erst der Anfang
    Fast 40 Jahre später versucht die Branche noch immer, sich von dem Fehler zu erholen, OS und Programmiersprachen rund um ein flaches Speichermodell und ein simples Benutzer/Supervisor-Rechtemodell zu entwerfen. Der 386 bot Hardware-Unterstützung, um OS-Funktionen zu schreiben, die selbst heute noch selten sind. Man muss sich nur CHERI ansehen

    • Selbst wenn „Pointer (Capabilities, also Selektoren) nicht nur eine Basisadresse, sondern auch hardwareerzwungene Grenzen haben konnten“, gibt es in der LDT nur 8.000 mögliche Pointer und in der GDT ebenfalls nur 8.000. Das Segmentmodell von x86 eignet sich für die Umsetzung von Capabilities nicht besonders gut
    • Ich habe grsecurity schon lange nicht mehr verfolgt, aber es würde mich nicht überraschen, wenn Segmentregister noch immer verwendet werden. Zum Beispiel bei PaX UDEREF
      https://forums.grsecurity.net/viewtopic.php?f=7&t=3046
      https://pax.grsecurity.net/docs/PaXTeam-H2HC12-PaX-kernel-se...
    • Der segmentbasierte Protected Mode insgesamt wurde schon mit dem 286 eingeführt. Der 386 fügte FS/GS hinzu und erweiterte Segmente auf 32 Bit
  • Ich möchte betonen, wie wichtig der 386SX war. Mein Vater wollte meinen PC, also bat er einen Freund, ihm einen 286-Klon zusammenzubauen, aber der Freund gab ihm stattdessen einen 386SX
    Er sagte: „Fast derselbe Preis wie ein 286, aber was du hier bekommst, ist ganz klar eine 32-Bit-CPU“, und er hatte recht. Darauf konnte man Win 3.11 laufen lassen. Eine 32-Bit-CPU zum 286-Preis, die man sich durchaus leisten konnte — ein geniales Produkt

  • Auch der 286 sollte hier etwas Anerkennung bekommen. Der 286 war ein ziemlich unterschätzter Chip, weil sein Instruktionsdurchsatz pro Takt gegenüber der vorherigen Generation viel besser war, und genau daraus ergab sich ein zentraler Makel des 386
    Beim Ausführen bestehenden 16-Bit-Codes war der Instruktionsdurchsatz pro Takt des 386 im Grunde derselbe wie beim 286, und die frühen Taktraten von 12 MHz waren eher unspektakulär. Bis die Taktraten deutlich stiegen und die Leute begannen, die 32-Bit-Funktionen zu nutzen, war er nicht viel mehr als ein teurer DOS/286-Konkurrent

  • Kurz nach der Einführung des 386 kaufte ich als Teenager meinen ersten Computer. Damals gab es sowohl 286- als auch 386-PCs auf dem Markt, aber der 386 hatte einen deutlichen Preisaufschlag
    Ich kannte den Unterschied damals nicht gut genug und kaufte ein 286-System. Innerhalb weniger Jahre verstand ich den Unterschied und bereute es sehr, nicht mehr Geld zusammengespart und einen 386 gekauft zu haben. Kurz darauf begann ich, Low-Level-Assembler zu schreiben, etwa System-Bootstrap-Code für Spielzeug-OS, konnte aber den 32-Bit-Protected-Mode nicht nutzen. Außerdem erschienen ab einem gewissen Punkt auch Spiele, die einen 386 voraussetzten, und bis ich meinen ersten 486 kaufte, fühlte ich mich ziemlich abgehängt

  • Intel entwickelte die x86-Linie nach dem 386 noch weiter bis zum Pentium Pro und zu amd64; ich frage mich, warum Motorola das mit dem 68k nicht getan hat
    Ich habe Diskussionen gesehen, in denen stillschweigend vorausgesetzt wurde, dass der 68k veraltet war und durch PowerPC ersetzt werden musste, aber das wirkt auf mich spekulativ. Ein technisches Argument dafür habe ich nie gesehen, und der 68k wirkt wie eine Architektur, die sich sauberer weiterentwickeln ließ als x86 nach dem 286

    • Es wurden nicht genug Computer mit 68k verkauft, sodass die Chipnachfrage zu gering war. Deshalb konnte man preislich nicht mit Intel konkurrieren und große F&E-Investitionen nur schwer rechtfertigen. Intel hatte den PC-kompatiblen Markt, und dadurch gab es eine enorme Nachfrage nach den Chips
    • Das Problem war kein technisches, sondern dass Intel Zugang zu einem „Geldberg“ hatte, den Motorola nicht hatte, und dass die Kunden gleichzeitig Abwärtskompatibilität verlangten
      Intel hat mindestens zweimal versucht, auf i860 oder Itanic umzusteigen, und ist gescheitert. Deshalb war die Weiterentwicklung von x86 die siegreiche Option
      https://news.ycombinator.com/item?id=37796469
    • Wenn du fragst, ob es kommerzielle Versuche gab, auf Basis von 68k-Prozessoren Systeme mit IDE, VESA und PCI zu bauen: bis zu einem gewissen Grad ja. Es gab den VMEbus
      Das war der Versuch, einen standardbasierten Bus zu schaffen, der zwischen mehreren Anbietern funktioniert und auch zu 88k-CPUs passt. Ein riesiger Erfolg war es nicht, aber ein gewisser Erfolg schon
  • Die Formulierung „am wichtigsten“ klingt für mich etwas nach nachträglicher Interpretation. Wenn 8086/8088 nicht über den IBM PC eher zufällig allgegenwärtig geworden wären, hätte es vermutlich weder den 80286 noch den 80386 gegeben
    Trotzdem war der 386 eine ingenieurtechnische Leistung, die die Welt verändert hat. In einer gerechteren und faireren Zeitlinie hätte meiner Meinung nach der 68030 die Welt beherrscht, aber das schmälert nicht, was Intel geleistet hat

    • Das mag für den 386 gelten, aber der 286 war beim Erscheinen des IBM PC wahrscheinlich bereits fertig oder stand kurz davor
  • Der 386 war in dieser Familie der erste mit Unterstützung für Demand-Paging-virtuellen Speicher, und das eröffnete dem OS enorm viele Möglichkeiten. Persönlich halte ich das für die wichtigste Funktion des 386
    Mein zweiter PC war ein 386, auf dem SCO UNIX lief. Mein erster PC war ein Heathkit H-8 auf 8080-Basis, auf dem CP/M lief

  • Es überrascht mich, dass Bob Childs einer der 286-Designer war und offenbar inoffiziell etwa sechs Monate lang die Idee einer 32-Bit-Erweiterung des 286 ausgearbeitet hat
    Wie war so etwas überhaupt möglich? Ich habe in 30 Jahren Berufstätigkeit nie einen Arbeitsplatz gehabt, an dem mir nicht alle paar Tage jemand im Nacken saß und sichtbare Ergebnisse verlangte