革命的なCPU、Intel 80386
(xtof.info)- Intel 803386は、x86初の32ビットCPUであることを超えて、4GiBのフラットメモリと既存のx86互換性を同時に提供し、PC向けの現代的なオペレーティングシステムの基盤となった
- Intelは当初、iAPX 432やP7のような別アーキテクチャにより重きを置いていたが、PC市場の成長と x86ソフトウェア互換性 のため、386の完成を最優先に切り替えた
- 386でIntelはIBMやAMDによるセカンドソース生産を認めず、単独供給者 となった。Compaq Deskpro 386は、IBM中心のPC標準の流れを揺るがした
- 性能は同時代のRISCチップを圧倒するものではなかったが、すべての386モデルに搭載された MMU とVirtual 8086モードが、UNIX、OS/2、Windows、NT、Linuxへの移行の核心となった
- 386ベースのPCが大量生産されることでMMUが一般ユーザー向けPCにまで広がり、Windowsの大衆化とLinuxの誕生も386の普及と強く結びついた
Intelが望んでいなかった32ビットx86
- Intel 80386はx86系初の 32ビットCPU だったが、初期のIntelの中核計画ではなかった
- 1970年代末、Intelにとって最も重要なプロジェクトは、1980年代の主力設計として意図された iAPX 432 だった
- iAPX 432は、ADAのような高水準言語に合わせ、オブジェクト指向プログラミングとストレージ割り当てをハードウェアで提供しようとする野心的なCPUだった
- 設計の成熟に時間がかかると見られたため、Intelは1976年に暫定設計として8086を始めた
- 8086系はIBM PCの契約を獲得し、iAPX 432は1981年に遅れて登場したものの、性能は期待外れだった
- 同じ周波数のはるかに安価な80286より、ベンチマークでは約1/4の速度にとどまった
- 1982年の時点でも、IntelはPCプラットフォームとソフトウェアのバイナリ互換性の重要性を十分に認めておらず、80286もまた暫定的なCPUに近かった
- Intelのエンジニアたちは432系の失敗を認識した後、P7 という32ビットRISCアーキテクチャを新たに準備し始めた
80386の設計方針の確定
- 286設計者の一人である Bob Childs は、非公式に286の32ビット拡張アイデアをまとめた
- 約6か月後、IntelはP7が準備できる前にx86系のもう一つの反復が必要だと判断し、386の開発を承認した
- 初期チームは小規模で、予算も限られていた
- x86顧客の要求を調査した結果、8086のセグメントメモリ方式は広く不満を買っており、80286もそれを解消できなかったという不満が残っていた
- UNIXがより安価なワークステーションで重要になるにつれ、386チームはUNIXに適したCPUを目標に据えた
- 最も重要な要求は フラットメモリ アドレッシングだった
- 既存のx86互換性を保つため、386もセグメント構造を維持した
- 各セグメントが4GiBまで可能になったことで、セグメントの存在感は事実上小さくなった
- ページングと仮想メモリの提供もこの時期に決定された
- 既存の命令セットとレジスタを32ビットに拡張し、バイナリ互換性を維持した
- 別個の「モードヘッダー」の後にまったく異なる命令セットを置く方式は採用しなかった
- その代わり、x86の弱点だった 少ないレジスタ数 は増やせなかった
- 一時はP7向けの新バスの使用も検討されたが、286バスとあまりに異なり、マザーボードと支援チップの再設計が必要だったため断念された
- 既存バスを32ビットに拡張する、より控えめな方式が選ばれた
- 1984年ごろにPC市場が成長すると、Intelはx86系の重要性を理解し、80386の完成が最優先課題となった
- P7プロジェクトは1988年に i960 へとつながり、386の販売を侵食しないよう組み込み市場へと目標が変更された
Intelの386単独供給戦略
- 80386は 1985年10月 に発表された
- 当時は、Intelのようなチップ設計会社がCPUを他社にも生産できるようライセンスし、セカンドソースを用意することが一般的だった
- 顧客は主供給者に歩留まり問題が起きても、CPU不足を避けられた
- IntelとAMDは8085の時代から長い協力関係を維持し、互いに製品をクロスライセンスしていた
- IBMも1983年から808xと80286を自社生産するライセンスを持っていた
- 80386では、この慣行が変わった
- Intelは、PCで最も価値のある部品であるCPUを直接コントロールするには 単独供給者 になることが重要だと見た
- IBMは将来の386よりも、286に大規模投資することに関心があった
- IntelとIBMの合意は、286についてIBMを満足させる方向で再交渉されたが、IBMは386を生産できなかった
- AMDも386生産に大きな関心を持っておらず、AMDとのセカンドソース合意は386へ拡張されなかった
- 同じころのNEC対Intel事件では、マイクロコードには著作権があり、Intelの特定ライセンスなしにコピーできないという判決が出た
- NECが8086マイクロコードをリバースできたとしても、386は複雑さのため、ほぼ不可能な対象として扱われた
- この流れの後、IntelはMicrosoftとともにPC市場の未来を支配する位置に立った
Compaq Deskpro 386とクローンPCの勝利
- IBM PCは市場へ迅速に投入するため既製部品を使い、その結果、他社も同じ部品を買って互換機を作ることができた
- 最も成功し、野心的だったクローンメーカーは Compaq だった
- 当時Compaqは、売上1億ドルに最速で到達した企業だった
- Compaqは、Intelが80386を発売してからほぼ1年後の 1986年9月 にDeskpro 386を発表した
- Deskpro 386は初の386コンピュータだった
- IBMが286ベースのPC/ATでPC市場の支配力を取り戻そうとする流れに従わなかった最初のPCでもあった
- Bill Gatesは、IBMが386を信頼しておらず、MicrosoftがCompaqに386マシンを作るよう促したと語っている
- この出来事は、IBMだけが標準を決めるのではなく、CompaqやIntelのような企業も新しいことができると示した転換点となった
- Compaq Deskpro 386は当初非常に高価だったが、販売は堅調で、IBMがもはや先頭にいないことを示した
- IBMはほぼ1年後になってようやく、最初の386コンピュータである PS/2 model 80 を投入した
- PS/2ラインは、当時としては非常に先進的な独自バスを導入して支配を取り戻そうとした
- しかしIBMは、もはや自社方式を強制できる立場になく、PS/2ラインはその任務を達成できなかった
386の競争環境と性能
- 1985年、Intel x86系の主な競合はMotorola 680x0 系だった
- 多くの人は68000が8086よりはるかに優れたチップだと見ており、80286はクリーンなアーキテクチャへ進化する機会を逃したと考えていた
- 68020はMotorola CPUの自然な32ビット進化だった
- 80386によってIntelは初めて本格的な競争相手を得た
- 統合MMUと4GiBのフラットアドレス空間により、収益性の高いワークステーション市場も狙えるようになった
- ワークステーション市場では、多くの企業が RISC 設計を採用していた
- RISCには、より高速かつより安価に作れるという魅力があった
- 386は複雑なx86命令セットと80286のアドレッシングモードを処理するため、厚いマイクロコードに依存するCISC設計だった
- ベンチマークで386は平均的な性能を示した
- Intel 80386 16MHzは4 MIPS、25MHzは6 MIPSだった
- Motorola 68030 25MHzも6 MIPSだった
- Mips R2000 16MHzは16 MIPS、Motorola 88000 16MHzは17 MIPS、Intel i960CA 33MHzは66 MIPSだった
- 性能は画期的ではなかったが、競争に必要な機能は備えていた
386SXと32ビットソフトウェアの普及
- Intelは386に完全に注力した後、1988年に386SX を導入した
- 386SXは内部的には元の386と同一で、元の386は386DXへと改称された
- 外部データバスは16ビットだった
- 安価なプラスチックパッケージで提供された
- 安価な16ビットマザーボードに挿せた
- 386SXの主な目標は、同価格帯の286を置き換えることだった
- 286には依然としてセカンドソース供給者がいた
- 1990年代初頭には386のインストールベースが十分に大きくなり、より多くのソフトウェア企業が32ビット機能と現代的機能を活用できるようになった
- ローエンドを含むすべての386モデルに 統合MMU が入っていた点が決定的だった
MMUが変えたメモリ管理
- MMU はMemory Management Unitの略で、仮想アドレスを物理アドレスへ自動変換するハードウェアである
- 初期のプログラムは、マシンの全アドレス空間を見ることができた
- アドレス空間が小さいうちは管理可能だったが、複数のプログラムが同時に実行され、オペレーティングシステムがROMにとどまれなくなるにつれて、隔離の問題が大きくなった
- 初期の解決策の一つは セグメンテーション だった
- セグメントレジスタが基準アドレスの役割を果たす
- プログラムがアドレスにアクセスすると、16ビット値がセグメントレジスタに加えられ、物理アドレスが作られる
- セグメントサイズの制限を超えるとfaultが発生し、プログラム間の隔離が可能になる
- 8086はメモリアクセスにセグメント方式を使う
- 80286は、より複雑なメモリ管理をサポートする機能豊富なセグメントMMUを備え、最大16MiBのメモリにアクセスできた
- OS/2 1.xはこのMMUを活用し、より現代的な体験を提供した
- PCプログラマにとって、セグメントメモリは制限が多く扱いにくかった
- より現代的なMMU設計は ページング を中心とする
- MMUは仮想アドレス空間を固定サイズのページに分割する
- ページにアクセスすると、ページディスクリプタを読み、物理アドレス変換情報を得る
- ページディスクリプタは通常メモリ上にあるため、性能のために最近アクセスしたディスクリプタを保持するTLBキャッシュが使われる
- 多くの現代OS、とりわけUNIXポートはページングとの相性が良かった
- 68000ベースのワークステーションは、MC68451の代わりに独自のページング外部MMUを使うこともあった
- Motorolaは68020向けの外部MMUである68851を導入した
80386 MMUの構造と差別化点
- 386は現代OSに適している必要がありながら、8086、80286、既存のx86ソフトウェアとも互換でなければならなかった
- そのため386 MMUは、ほぼ別々の二つの装置のように構成された
- 一つは セグメントモード 用の装置
- もう一つは ページングモード 用の装置
- 二つの装置は連鎖的に動作する
- 論理アドレスがまずセグメント装置を通り、線形アドレスとして計算される
- ページングがオフなら、この線形アドレスがそのまま物理アドレスになる
- ページングがオンなら、TLBまたはメモリからページディスクリプタを取得し、実際の物理アドレスを生成する
- セグメント装置は無効化できないが、アドレス0から始まる4GiBセグメントで全メモリ空間を表現し、フラットメモリのように使える
- ページング装置はセグメントを 4KiBページ に分割する
- 80386は、四つの権限レベルである rings を導入した
- 権限のあるメモリを、権限のない読み書きから保護するために使われる
- 現代の保護OSが基盤とする基本要素の一つだった
- MMUは Virtual 8086 モードにも関与する
- 8086プログラムが、最大1MiBのメモリを持つ8086全体を制御しているかのように実行される
- 複数のV86仮想マシンが同時に動作できる
- 保護リソースへのアクセスのような動作は割り込みを発生させ、権限を持つソフトウェアが処理する
- 386 MMUはCPUに統合された、整理された一部として設計された
- 理想的な条件では、メモリアクセス性能に影響を与えない
- MC68851は常に最低1サイクルの遅延を追加する
- 68000系では、MMUが常に存在するわけではなかった
- 68020は外部MMUが必要だった
- 68030と68040のローエンドEC版には統合MMUがなかった
- 80386は、ローエンドの386SXまで全モデルにMMUが含まれていた
- MMUと高度な動作モードを活用するプログラムは、どの386でも実行できた
386が切り開いたオペレーティングシステムの移行
- 386の本当の影響力は、生の性能よりもPCで 現代的なオペレーティングシステム を可能にしたことにあった
-
Xenix
- Xenix は、MicrosoftとSCOの協力から始まった、マイクロコンピュータ向けの初期UNIXポートの一つだった
- 1980年に8086ポートが発表されたが、真のMMUがなく、メモリ保護とユーザー空間・カーネル空間の分離は不可能だった
- 286版は保護モードを活用し、ワークステーションのUNIXにより近づいた
- 1987年の386ポートはページングを使って差を縮め、x86上で動作する最初の現代的な32ビットOSとなった
-
OS/2
- OS/2 は当初MicrosoftとIBMの共同開発で、その後MicrosoftはWindowsに集中するため離脱した
- 1987年にリリースされたが、初期バージョンは286をターゲットにしていた
- IBM PS/2ラインの多くが286を搭載していたためである
- 保護モードをうまく活用し、当時は高度なOSと見なされた
- OS/2が32ビットOSになったのは 1992年のバージョン2.0 からだった
- それまではセグメントメモリ方式とVirtual 8086モードの不在により、DOSアプリケーション対応が良くなく、Windows/386にも後れを取っていた
- OS/2 2.0は、パーソナルコンピュータで広く使われた最初の32ビットOSだった
-
Windows
- Windowsは 1987年のWindows/386 から80386専用の運用環境を提供した
- Windows/386は依然として16ビットOSで、32ビットのフラットメモリ空間を公開しなかった
- その代わり386の機能を使い、DOSセッションをVirtual 8086モードで仮想化した
- 複数のDOSセッションが互いを意識せず並列実行できた
- DOSソフトウェアに依存していた多くの企業にとって重要だった
- MMUのおかげで、EMSをエミュレートする保護モードドライバを通じて拡張メモリも提供された
- Windows 3.0とWindows 3.1でこの流れは改善され、Windows 3.1は大きな成功を収めた
- 1993年のWindows for Workgroups 3.11 は386未満のCPUサポートを打ち切り、ファイルアクセスと多くのドライバが32ビットになった
- Windows 95は386 MMUを本格的に活用した
- フラットメモリ空間を公開した
- ページングと仮想メモリを使用した
- 一部のコードは依然として16ビットだったが、DOSはほぼブートローダに近い役割へ縮小された
-
Windows NT
- 最初のWindows NTは 1993年7月 にリリースされた
- Windows 95がWindows 3.11から発展し、一部の16ビットレガシーコードを維持したのに対し、NTは最初から「純粋な」32ビットWindowsを目指して新たに開発された
- NTの主要な特徴の一つはハードウェア独立性だったが、最も重要なポートは80386向けだった
- ページング、supervisor mode、メモリ保護を本格的に使用した
- NTはWindows 95とほぼ同じAPIを共有し、多くのWin32アプリケーションを実行できた
- NT4は1990年代半ば、Workstation UNIX市場に影響を与え始めた
- Windows 11はNTカーネルの直接の子孫である
-
Linux
- 386と最も密接に結びついたオペレーティングシステムは Linux である
- Linus Torvaldsは1991年1月ごろ、新しい386 PCを購入した
- Linusは68008チップで育ったコンピュータ純粋主義者としてPCを嫌っていたが、386の登場によりPCが魅力的に見え始めたと語っている
- 386は68020がしていたことを実行できた
- 1990年には大量生産と安価なクローンの導入で、はるかに安くなっていた
- この386 PCは、オペレーティングシステムの内部を教えるための小さなUNIXクローンであるMinixを動かすのに適していた
- LinusはMinixのターミナルエミュレータに満足できず、自分で書き始めた
- 大学のコンピュータに接続するためには、優れたターミナルが重要だった
- 386ハードウェアを学ぶため、ベアメタル方式で書いた
- キーボード入力と画面出力の機能を作った
- 二つの独立スレッドを中心に設計しながら、小さなtask switcherを書いた
- プログラムをダウンロードするには保存先となるディスクドライバが必要で、機能が一つずつ追加され、Linuxとして知られることになるオペレーティングシステムが形作られた
- 1991年半ば、LinusはPOSIX仕様のコピーを求め、1991年8月25日 にcomp.os.minixニュースグループで新しいオペレーティングシステムに取り組んでいると告知した
- 当時の表現は “just a hobby, won’t be big and professional like gnu” だった
80386の長期的影響
- 80386はx86系で最も重要なCPUと評価される
- 技術的に80386は良いチップだったが、性能面では画期的ではなく、同時代のRISCチップに後れを取っていた
- 核心は、現代的で高速な MMU と複数の動作モードだった
- 4GiBのフラットメモリにアクセスできた
- 既存のx86ソフトウェアとの互換性を維持した
- Windowsが段階的に現代化できた
- 386のメモリ処理能力は十分に優れていたため、後続CPUはより強力になったものの、ほぼ20年にわたりこの領域で大きな追加を行わなかった
- Linuxメインラインは 2013年 になってようやくi386サポートを打ち切った
- 商業的にも386の重要性は大きかった
- Intelは当初32ビットx86の需要を信じていなかったが、x86こそ未来だと悟った
- この変化は、市場にx86が継続するというシグナルを与えた
- 主要クローンメーカーによる386採用は、IBMを押しのけ、信頼できるオープンな代替があることを示した
- Intelは最も強力なx86 CPUの唯一の供給者となり、CPU市場支配へ向かう重要な一歩を踏み出した
- 386ベースのマシンが大量生産され、価格は急速に下がり、MMUへのアクセスが大衆化した
- Windowsは数百万人に現代的コンピューティングを紹介した
- NTカーネルは、安価な「ベージュ色」のPCでも堅牢なOSが動作できることを示した
- Linuxは、386なしには存在しなかったと言えるほど386と強く結びついている
1件のコメント
Hacker News のコメント
80386 の最終設計は、Motorola 68000 とそれに続く m68020 から大きな恩恵を受けたと思う
Motorola が妥協のない本物の 32 ビット CPU を出していなければ、Intel は 80286 の後にもまた別のつなぎの製品を出していた可能性がある。80286 自体も、8086/8088 の正統な後継として意図されたものではなかった
実際の 80386 にも妥協は多かった。16 バイトの命令プリフェッチキュー以外にキャッシュはまったくなく、m68020 には 256 バイトの命令キャッシュがあった。アトミック命令もなく、
LOCKはその用途ではあまり役に立たなかったため、最近の多くの OS は 80486 をサポートしても 80386 はサポートしない。8086 互換性のためにリアルモードや VM86 が必要だったせいで、ソフトウェアが 80386 の新機能を活用するまでにはかなり時間がかかったそれでも重要なチップであり、その後 Intel でおなじみになるパターンの初期兆候も見せていた。x86 と競合しない、あるいは x86 を犠牲にして別市場を作ろうとした試み(iAPX 432、20 年後の Itanic)、80286 に付いた機能のように急いで継ぎ足した後、永遠にレガシーサポートとして抱え続けなければならなかった機能、他社が誰もが求める機能を持っているときに遅れて追いつく姿(当時のフラットな 32 ビット対応、20 年後の 64 ビット対応)といったものだ
当時の Intel は大きな危機にあり、会社全体がこのチップを見事に仕上げられるかにかかっていた
Data General、Honeywell、CDC、AST、Tandy、Olivetti、Xerox、DEC Rainbow、AT&T Hobbit、Wang 2200、Unisys のように、簡単に道を外れていたかもしれない。ここには強い 生存者バイアスがある。SDS、SDC、Fairchild のようなかつての巨人の多くは、今ではほとんど忘れられている
Intel の歴史はもともとメモリメーカーに近いものだった。今も似たような苦しい位置にいるとも言える。モバイルと家電市場のシェアは事実上 0% で、残った中核拠点でも NVIDIA、AMD、ARM が城を略奪するかのように押し寄せている。今回も切り抜けてほしい
「事業の成功は自己破壊の種を内包している。成功は安逸を生み、安逸は失敗を生む。パラノイアだけが生き残る」
2010 年代の Intel 経営陣は、この言葉に十分注意を払わなかった
DEC は LSI-11 をコンシューマー向けマシンとしてパッケージすべきだった。ソフトウェアも揃っていて、品質も非常に高かった。H-11 を持っていたが、素晴らしいマシンだった
Switch がいまだに 2015 年ごろの Tegra チップセットを使っているのも、Nintendo ほど大きな会社でさえ NVIDIA に圧力をかけて新設計を引き出せなかったからである可能性が高い。ARM は一般に広く買えるサーバー CPU を作っておらず、存在する製品もクラウド事業者がすべて持っていく。Mac 以外では、使い物になる ARM デスクトップ/ノート PC 向け CPU もない。Qualcomm がその市場を何年も台無しにしてきたからだ
ARM が Rosetta と競えるような解決策を出し、Qualcomm が「なんとか動けば出荷する」という、スマートフォンメーカーには通じるかもしれないが PC/デスクトップ市場には合わない考え方から抜け出さない限り、その市場で ARM が採用されるのは難しそうだ
結局 Intel に残る唯一の脅威は AMD だが、AMD には Intel の堀を十分に脅かすだけのファブ生産能力がない。汎用コンピューティングの競争状況は、非常にもどかしいものかもしれないし、そうでないかもしれない
386に「フラットな32ビット」という後世的な解釈をかぶせるのは、そろそろやめてほしい。それは明確な目標ではなく、当時は未来と見なされていた重要なケイパビリティベース・アーキテクチャ機能を取り込む方向に近かった
Unix/C/RISC/単一スーパーバイザーモデルのような考え方が、セキュリティのような領域でそれ以前30年間のメインフレームやミニコンピュータのOS研究を押しのける前の文脈だ
この記事がきちんと明確にしていないのは、セグメントレジスタが今や基本的に、ベースアドレス+長さ(ページ単位またはバイト単位)のフィールドと実行権限制御を持つテーブルのセレクタインデックスになったという点だ。そしてこうしたセレクタやGDT/LDT/IDT/TSS/コールゲート/タスクゲートなどは、すべて4段階の権限階層、たとえばユーザー/ライブラリ/ドライバ/カーネルを支援するよう設計されていた
アクセスセレクタを受け渡ししながら、データ構造のサイズ制限のようなものを強制することもでき、そのためにFS/GSを追加して、汎用レジスタごとに独自の権限マスクを持てるようにした
少し考え直してみると、ポインタ(ケイパビリティ、つまりセレクタ)はベースアドレスだけでなく、ハードウェアが強制する境界を持つことができ、権限モデルのおかげで
strcpy()のような関数が対象バッファや自分の作業領域以外のメモリに書き込めないようにできた。言語とOSは、呼び出された関数が呼び出し元のスタックに書き込めないようにしたり、さらには完全に別のスタックで実行されるよう強制したりすることもできた。これは始まりにすぎないほぼ40年が過ぎた今でも、業界はフラットメモリモデルと単純なユーザー/スーパーバイザー権限モデルを中心にOSやプログラミング言語を設計した過ちから立ち直ろうとしている。386は、今日でも珍しいOS機能を書くためのハードウェア支援を提供していた。たとえばCHERIを見ればよい
https://forums.grsecurity.net/viewtopic.php?f=7&t=3046
https://pax.grsecurity.net/docs/PaXTeam-H2HC12-PaX-kernel-se...
386SXがどれほど重要だったかを強調したい。父が私のPCを欲しがって、友人に286クローンを組んでくれと頼んだところ、その友人は代わりに386SXを渡してくれた
「286とほとんど同じ価格だけど、今手に入るのは間違いなく32ビットCPUだ」と言っていて、その通りだった。それでWin 3.11を動かせた。286の価格で買える32ビットCPUとしてかなり手が届きやすかったのだから、天才的な製品だった
ここでは286もある程度評価されてよい。286は前世代に比べてクロックあたりの命令処理量がずっと高く、かなり過小評価されたチップだった。そしてこの点は386への主な不満にもつながる
既存の16ビットコードを動かすとき、386のクロックあたりの命令処理量は基本的に286と同じで、初期クロックも12MHzだったためかなり地味だった。クロックが本格的に上がり、人々が32ビット機能を使い始めるまでは、高価なDOS/286競合以上の意味はあまりなかった
386が発売されて間もないころ、十代だった私は初めてのコンピュータを買った。当時の市場には286と386のPCがどちらもあったが、386には大きな価格プレミアムがあった
そのときは違いがよく分からず286システムを買い、数年もしないうちに違いを知ってから、もっとお金を貯めて386を買わなかったことを大いに後悔した。その後しばらくして、おもちゃOSのシステムブートストラップのような低レベルアセンブリを書き始めたが、32ビットプロテクトモードは使えなかった。さらにある時点から386専用ゲームも出始め、最初の486を買うまではかなり取り残された気分だった
Intelはx86系を386以降、Pentium Proやamd64まで発展させたが、Motorolaはなぜ68kを同じようにしなかったのか気になる
68kは時代遅れになり、PowerPCに置き換えられるべきだった、という前提のように扱う議論を見たことはあるが、推測に見える。技術的な論拠は見たことがなく、68kは286以降のx86よりも前に進めやすい、よりすっきりしたアーキテクチャに見える
Intelも少なくとも2回、i860やItanicへ移行しようとしたが失敗した。だからx86を改善する方が勝ち筋になった
https://news.ycombinator.com/item?id=37796469
複数ベンダー間で動作し、88k CPUにも合う標準ベースのバスを作ろうとする試みだった。大成功ではなかったが、ある程度は成功した
「最も重要だった」という表現には、少し後世的な解釈が入っているように聞こえる。8086/8088がIBM PCを通じて偶然普及していなければ、80286どころか80386もおそらく存在しなかっただろう
それでも386は世界を変えた工学的成果だった。より正しく公正なタイムラインでは68030が世界を制覇していたと思うが、Intelが成し遂げたことを貶めることはできない
386はその系統でデマンドページング方式の仮想メモリを初めてサポートし、そのおかげでOSができることが大きく広がった。個人的には、これが386の提供した最も重要な機能だと思う
私の2台目のPCはSCO UNIXを動かしていた386だった。最初のPCはCP/Mを動かしていた8080ベースのHeathkit H-8だった
Bob Childs が 286 の設計者の一人で、非公式に 286 の 32ビット拡張のアイデアを約6か月間構想していたというくだりに驚いた
いったいどうすればそんなことが可能なんだろう? 30年働いてきて、数日おきに何か目に見える成果物を出せとせっつく人がいない職場なんて、一度も経験したことがない