catch-img

「Windows温故知新」第8回 Windows 3.0 ~GUI時代の到来~

このシリーズでは、Windowsの歴史を通して、現在の技術を再確認していきます。元々は「アットマークIT」で連載していた「Windows温故知新」という記事でしたが、担当者の異動に伴い第7回で終了となったため、弊社ブログで続きを掲載します。
第1回から第7回の紹介はこちら

今回は、1993年頃に広く使われたWindows 3.0と3.1(総称して3.x)について紹介します。Windows 3.xは、ビジネスの現場でWindowsが広く使われるきっかけになったOSです。

目次

Windows 3.0と3.1

Windows 2.0(1987年)は基本的にインテル8086の機能しか使っていませんでした。連載第7回「GUI時代の始まりを告げた「Windows 2.0」」で紹介したHMA(High Memory Area)など、一部に80286の機能を使っていただけです。

80286を起動した直後は8086と互換性のある「リアルモード」で動作します。この状態で従来のMS-DOSはそのまま動作します。Windows 2.0はMS-DOSはMS-DOSと同じリアルモードで動作していました。

80286で拡張された仮想記憶機能を使うには「プロテクトモード」に移行する必要がありますが、いったんプロテクトモードに移行するとリアルモードに戻る方法はリセットしかありませんでした。これでは、従来のMS-DOSアプリケーションの実行に制約が生じます。詳細は連載第6回「 「メモリは640KiBで十分」は本当だったのか? 」を参照してください。

Windows 3.0(1990年)では、インテルi386(80286の後継で、当初は80386と呼ばれていました)の「仮想86機能」を使うことでこの問題を解決しました。「仮想86機能」は、仮想的に8086プロセッサを模倣する(エミュレートする)機能を同時に複数実行できる仕組みです。

 

 

History-08

Windows 3.0の翌々年(1992年)にはWindows 3.1が発売されました。主な違いは以下のとおりです。

・安定性の向上
・TrueTypeフォントの導入…文字を拡大してもギザギザになりません
・マルチメディア機能の追加…動画再生やサウンド機能などが追加されました

利用者の立場から見ると、いわゆる「マルチメディア対応」が主な変更点でしたが、これは「Windows 3.0 Multimedia Extensions」という拡張機能とほぼ同じ内容でした。そのため、多くの利用者は「安定性が増した」程度の違いとして受け止めていたのではないでしょうか。

 

Windows for Workgroups

Windows 3.x自体にはネットワーク機能が含まれていませんでしたが、実はWindowsの動作基盤であるMS-DOS 3.1(1984年)にはネットワーク拡張機能を組み込めました。Windows 3.xはMS-DOSから起動する仕組みであり、ファイルシステムやデバイスもMS-DOSのものをそのまま利用していました。そのため、利用者はMS-DOSにネットワーク機能を追加することで、Windows 3.1からもネットワークを利用できました

しかし、Windowsに最初からネットワーク機能も組み込んでほしいという要望も多かったため、米国ではWindows 3.1にネットワーク機能を追加した「Windows for Workgroup 3.1」が発売されました(1992年)。ただし日本語版は発売されていません。これは、Windows 3.1の日本語化が1993年にようやく完了したばかりで、翌1994年にはネットワーク機能を標準装備した新しいWindows(開発コード名Chicago)の発売が控えていたためだといわれています。

実際にはChicagoの開発はかなり遅れてしまい、米国での発売は1995年8月、日本での発売は1995年11月となりました。このChicagoがのちのWindows 95です。

 

Windows 3.xはOSなのか?

当時から言われていたのが「Windows 3.xはOSなのか?」という疑問です。Windows 1.0からWindows 3.xまでは以下の手順で起動します。

  1. MS-DOSを起動

  2. MS-DOS上でWINコマンドを実行

  3. Windowsが起動

Windows起動後も一部のデバイス管理機能、たとえばフロッピーディスクへのアクセスなどはMS-DOSの機能をそのまま使っています。そのため「WindowsはMS-DOS上で動作するGUIツールに過ぎない」という意見は昔からあります。

History-082

しかし、WindowsにはMS-DOSに依存しない機能もあります。特にWindows 3.0以降は独自に管理する部分が増えており、「OS」と呼んでも差し支えないように思います。
一般にOSに求められる機能は以下のとおりです。

  • CPU管理(タスクまたはプロセス管理)

  • メモリ管理

  • 入出力管理(CPUとメモリ以外のハードウェア)

  • ファイルシステム管理

  • ユーザーインターフェース(UI)

  • ネットワーク

Windows 3.xはどうでしょう。ファイルシステムはMS-DOSが提供し、Windowsの起動にもMS-DOSが不可欠です。そのため、Windowsはユーザーインターフェースだけを提供していると考えられても無理はありません。もっとも、実際には以下のようにMS-DOSとWindowsが連携しながら、MS-DOSにはない機能も提供していました。

  • CPU管理(タスクまたはプロセス管理)

Windows 3.xは協調型マルチタスクを提供します。これはMS-DOSにはない機能です。協調型マルチタスクについては連載第5回「TSR、協調型、プリエンプティブ、いろいろあった~マルチタスクの変遷を学ぶ」を参照してください。

 

  • メモリ管理

Windows 3.xにはスタンダードとエンハンスドという2つの動作モードがあり、起動時に指定できました。もっとも、日本語版Windows 3.xで正式にサポートされていたのはエンハンスドモードだけで、スタンダードモードの存在を知っている人は少ないかもしれません。ちなみに、スタンダードモードで起動する場合は win /s のように「/s」オプションを指定します。何も指定しなければエンハンスドモードになります。スタンダードモードは日本語版ではサポート対象外だったものの、実際には動作しました。マイクロソフト認定カリキュラムには「スタンダードモードで起動する」という演習があり、日本語版でも実行できたことを覚えています。

スタンダードモードではセグメント方式の仮想記憶を実装しており、1MiBを超えるメモリを扱えます。もちろん、これはMS-DOSにはないメモリ管理手法です。厳密にいうと、純粋にセグメント方式を使っているのはスタンダードモードのみで、エンハンスドモードではデマンドページング方式が使われています。ただし、互換性を保つためにアプリケーション側ではセグメントの割り当てが必要なため、実質的にはセグメント方式と考えてよいでしょう。なお、仮想記憶の方式については連載第6回「 「メモリは640KiBで十分」は本当だったのか?~メモリ管理技術の変遷を学ぶ 」を参照してください。

 

  • 入出力管理(CPUとメモリ以外のハードウェア)

こちらは大半がMS-DOSに完全に依存しています。MS-DOSから利用できないハードウェアはWindowsからも利用できない場合がほとんどでした。

 

  • ファイルシステム管理

ファイルシステムはMS-DOSと共通のため、MS-DOSで保存したファイルはWindowsで読み書きできますし、その逆も可能です。

ただし、エンハンスモードでは実際のディスクアクセスはMS-DOSを経由せず、Windowsが直接アクセスします。ファイル利用の手順は以下のようになります。

  1. ファイルのオープン(利用開始)…MS-DOSに依存

  2. ファイルの読み書き…Windowsが直接行なう(保存時にファイルサイズが変わる場合はMS-DOSを利用)

  3. ファイルのクローズ(利用終了) …MS-DOSに依存

そのほか、ファイルの作成や削除などにもMS-DOSの機能が使われます。要するに、データ転送はWindowsが担当し、前処理と後処理はMS-DOSが担当していたわけです。

さらに、仮想記憶で使うスワップファイル(一般的な用語では「ページファイル」)は起動時にMS-DOSの機能を借りて物理的な場所を認識しますが、その後はMS-DOSファイルシステムを一切使わないことで高速にアクセスします。スワップファイルは動作中にサイズが変わらないため、このようなことが可能になります。

 

History-083

エンハンスドモードの場合、MS-DOSを経由せず、Windowsが直接管理するデバイスはかなり多く、ハードディスク装置の他、キーボード、マウス、プリンターなどがMS-DOSを利用していません

一方で、フロッピーディスクのアクセスや、ファイルシステムの利用(フォルダーやファイルの作成や削除)はMS-DOSの機能を利用していました。

 

  • ユーザーインターフェース(UI)

UIはWindowsの本質であり、もちろんWindowsの機能です。

 

  • ネットワーク

Windows 3.xのネットワークはMS-DOS上で組み込む必要がありました。つまり、MS-DOSに依存しています。

 

このように、「WindowsはMS-DOS上で動作するツール」という見方は、半分ほどしか当たっていないことがわかります。「Windows 3.xはOSである」と呼んでもよいのではないでしょうか。

 

Windows 3.xの課題

Windows 3.xは世界的に広く受け入れられましたが、多くの課題もありました。主なものは以下のとおりです。 

  • マルチタスク

  • メモリ管理

  • ネットワーク機能

Windows 3.xのタスク管理は協調型で、プログラムの不具合によってOS全体が停止してしまうことも珍しくありませんでした。ただし、プログラムが正しく動作している限り大きな問題にはなりにくかったため、不満を持つ人はそれほど多くなかったように思います。そもそも安定性という点では、ライバルとされていたApple Macintoshも似たような状況でした。

大きな問題だったのは、メモリ管理とネットワーク機能です。Windows 3.xのメモリ管理は8086由来のセグメント方式に依存しており、一度に利用できるメモリエリアは64KiBに限られていました。これは、大規模なプログラムを作成する上で、かなり大きな制約であり、アプリケーション開発者の不満は大きかったようです。

ちなみにこの制約は「64KiBの壁」と呼ばれていました。当時はKiBという単位が定義されていなかったので「64キロバイトの壁」ですが、細かいことはいいでしょう。

また「Windows 3.xはOSである」とは言うものの、実際にはMS-DOSの影響を強く受けており、多くのデバイスドライバーやMS-DOSの作業エリアなど、一部のプログラムはリアルモードで利用可能な640KiBの範囲に収める必要がありました。この領域は「コンベンショナルメモリ」と呼ばれ、そのサイズ(640KiB)に由来する制約は「640KiBの壁」と呼ばれていました。ネットワークインターフェースカード(NIC)ドライバーやTCP/IP機能を組み込むと、利用可能なコンベンショナルメモリが300KiB程度まで減ってしまうことも珍しくありませんでした。そうなると、肝心のアプリケーションが動作しないこともあります。640KiBの壁は、アプリケーション開発者だけでなく、さまざまなデバイスを使いたい利用者にとっても大きな不満の種でした。たとえば、利用者は以下のドライバーを手動で組み込む必要がありました。

  • メモリ管理ドライバー(HMAなど)
  • グラフィックカード用ドライバー
  • サウンドドライバー
  • CD-ROMドライバー
  • ネットワークドライバー
  • TCP/IPプロトコル
  • マウスドライバー(Windows起動後は不要)
  • キーボードドライバー(日本語キーボード利用に必要)

特にTCP/IPはメモリ消費が大きく、アプリケーションを使うときはネットワーク機能を無効にし、ネットワーク経由でファイル転送をするときだけ構成を変更して再起動するという、非常に煩雑な運用をしている企業もあったようです。

このような課題を一気に解決したのがWindows 95ですが、こちらは次回に取り上げます。

 

NetBEUIとNetWare IPX/SPX

TCP/IPはプロトコルが複雑で、多くのメモリを消費しました。加えて、そもそもTCP/IPは研究者向けのネットワークプロトコルという印象が強く、産業界では信頼性に疑問を持つ人も少なくありませんでした。そのため、Windows 3.xではTCP/IP以外のプロトコルも使われていました。詳しくは連載第1回「Windows登場前夜の企業ネットワーク技術は百花繚乱?~あなたの知らないMicrosoft OSのネットワーク対応を学ぶ」で紹介しています。

いくつかあったネットワークプロトコルの中で最も軽量だったのがNetBEUI(NetBIOS Extended User Interface)です。ただし、大規模ネットワークに拡張することが原理的にできないため、部分的な利用に留まりました。

広く使われたのはNetWare社のIPX/SPXで、こちらは全社規模のネットワークにも対応しました。トレノケートでも1990年代にはNetWareの教育コースに多くのお客様をお迎えしていました。

 

おまけ1: Windows 3.xのマイクロソフト認定カリキュラム

筆者は、Windows 3.0およびWindows 3.1の認定教育コースを手伝ったことがあります(資格認定の関係で主担当講師ではありません)。カリキュラムは英語からの翻訳だったため、日本語版では動作しないスタンダードモードの演習も含まれていました(一応動作はしました)。

演習の中には、MS-DOSの構成ファイルを破壊し、正常に動作しなくなった状態から復旧するものもありました。どこをどのように破壊したかは講師が把握しているので復旧は容易ですが、受講者には問題箇所が知らされないため、かなり苦労したようです。研修としてはパズルのような面白さがあったものの、現場で同じようなトラブルに直面したときは大変だったでしょう。何しろ、「システム管理特権」の概念がなく、システムの構成ファイルを誰でも変更できたのですから。

 

おまけ2: PC-9801シリーズの変化

1980年代はNEC PC-9801シリーズの全盛期でした。1987年から1995年までセイコーエプソンはNEC PC-9801シリーズの互換機を販売していましたが、このときのセイコーエプソンの広告には「国民機」という言葉が使われました。

PC-9801シリーズの優位点は主に2つありました。1つは漢字を容易に扱えるハードウェアを搭載していたこと、もう1つは豊富なMS-DOSアプリケーションでした。

しかし、ハードウェアの高速化によってソフトウェアだけで漢字表示が可能になると、最初の優位性は揺らぎ始めました。また、Windows対応アプリケーションについては過去の蓄積がなく、特別な優位性もありませんでした。日本での市場シェアが大きかったため、当初は多くのアプリケーションが登場したものの、徐々にIBM PCアーキテクチャ機の市場シェアが高まっていきます。それでも、1996年頃まではPC-9801シリーズの販売台数は増加傾向にあったのですが、市場シェアの低下を背景にNECも1997年からIBM PCアーキテクチャ機を併売するようになり、2004年には従来の(IBM PCアーキテクチャではない)PC-9801シリーズは終了しました。

IBM PCアーキテクチャ機は世界中で売れていたため、量産効果による値下げが行なわれていました。1992年には大手PCベンダーのCompaq(コンパック)が日本市場向けの製品を発表し、その安さから「コンパックショック」と呼ばれました。実際の価格はよく覚えていないのですが、PC-9801シリーズの半額くらいだったようです。

コンパックショックのイメージが強かったので、日本ではCompaqは「安売りPC」のイメージがついてしまいましたが、実際には高級機中心の先進メーカーでありIBMよりも早くi386マシンを発売したくらいでした。のちにコンパックはDECを買収しましたが(1998年)、そのあとHPに買収されました(2001年)。DECから分かれたトレノケートは、HPとは従兄弟のような関係かもしれません。

 

終わりに

今回はWindows 3.0および3.1について取り上げました。次回はインターネットを身近にしたWindows 95を紹介します。

主な出来事
1984年 MS-DOS 3.1 (ネットワーク機能を利用可能にした最初のMS-DOS)
1987年 Windows 2.0
1990年 Windows 3.0 (日本語版は1991年)
1992年 Windows 3.1 (日本語版は1993年)
1992年 Windows for Workgroups 3.1 (日本語版は提供されず)
1992年 コンパックショック
1993年 日本でのマイクロソフト認定教育サービスの開始
1993年 Windows NT 3.1
1995年 Windows 95 (英語版は8月、日本語版は11月)
1995年 DEC教育部売却(現在のトレノケート)
1997年 NECがIBM PCアーキテクチャ機を出荷
1998年 CompaqがDECを買収
2002年 HPがCompaqを買収
2004年 PC-9801シリーズ出荷終了

 

Microsoft認定トレーニングならトレノケート

トレノケートは、2002年にMicrosoft社のラーニングソリューション分野において、日本で初めてゴールドパートナーに認定されました。現在は Training Services Partner (TSP) として、幅広い分野で多数の最新コースラインアップを提供し続けています。
 
 

横山 哲也(よこやま てつや)

トレノケート株式会社 講師。Microsoft認定トレーナー。
1994年から現在まで、Windows Serverの全てのバージョンで教育コースを担当。2005年からはサーバー仮想化、2014年からMicrosoft Azure関連コースを担当。 現在は、AzureとWindows Serverを中心に教育コースを実施しているほか、新規コースの企画・開発も担当している。 2003年から2018年まで16年連続でMicrosoft MVPを受賞した。

主な著書には、「ストーリーで学ぶWindows Server」、「ひと目でわかるAzure 基本から学ぶサーバー&ネットワーク構築 第4版(日経BP)」、「グループポリシー逆引きリファレンス厳選98(日経BP)」、「徹底攻略 Microsoft Azure Fundamentals教科書 [AZ-900] 対応 第2版」がある。

趣味は写真、好きなサービスは「Active Directoryドメインサービス」、推しているアイドルは「皆本しいね(君のメインヒロイン)」。

【資格・認定】
Microsoft Certified Trainer (MCT)
Microsoft Certified: Azure Solutions Architect Expert
Microsoft Certified: Azure Administrator Associate
Microsoft Certified: Azure Fundamentals
Microsoft Certified Solutions Expert: Cloud Platform and Infrastructure
Microsoft MVP (2003年~2018年)
EXIN Cloud Computing Foundation
AWS 認定クラウドプラクティショナー

※詳細な講師紹介は こちら