この連載では,Windowsを使用する上でのノウハウ,使用上の考慮点,及び今後導入されると予想される新技術の背景などを紹介していく予定です。第1回目の今回は,Windowsの長所と短所を手短に整理しておくことにします。なお,本連載では,Windows XPを対象OSと想定しています。

Windowsの長所

 Windowsのクライアント市場におけるシェアは,一説では,9割を超えているといわれます。この数字はいろいろな解釈が可能であることは承知していますが,素直に解釈すれば,Windowsは市場に受け入れられるに値する長所(あるいは,魅力)を持っていることは否定できないでしょう。Windowsの長所として,例えば,次のようなことを列挙することができると思います。

  • 入手が容易である
  • 使いやすいGUI環境が用意されている
  • インターネット関連機能とWindows OSが統合されている
  • オブジェクト指向ベースの製品である
  • 最新技術が搭載されている
  • 必要部品の調達が容易である
  • 参考情報が豊富である
  • ユーザーが多数である

 さて皆さんはこのような長所リストを眺めて,どのような感想をお持ちになりますか? 「自分が考えている長所リストとかなり違う」と考える人もいれば,「まさにそのとおり」と同意される方もおられるでしょう。私はいろいろな反応が返されることはきわめて自然なことだと考えます。

 上の長所リストをじっくり眺めると,基本的には,次のように一般化することができると思います。

「Windowsの最大の長所は,使いやすさ,である」

 コンピュータOSの歴史を振り返ってみると,この使いやすさを最初に追求したのは,Xerox社のPalo Alto Research Center(PARCと略記)といわれます。PARCは1972年頃,「将来のオフィス」像を研究するプロジェクトを立ち上げ,その成果はApple社に引き継がれたようです。当時のPARC所属研究員は,技術的な深い知識を持ち合わせていない普通の人々でも使えるコンピュータの必要性を痛感していたと思われます。

 Windowsは基本的にこの考え方に沿って開発されているわけですから,クライアント市場に受け入れられて当然といってよいでしょう。使いやすさやGUIの歴史などに興味のある方は,こちらこちらの情報をご覧下さい。いずれも大学の教材として公開されている情報ですから,最適な入門記事です。

 一部の方は,上記のWindowsの長所の1つに,オブジェクト指向ベースの製品であることが含まれている点に興味を示すと思います。その理由をぜひとも知りた方は,私の過去の連載(例えば,「サンプル・プログラムでのぞくWindows 2000の世界(第1回)」「10行のプログラムで分かるWindows 2000/Windows XPの世界(第17回)」,あるいは,「最終回 インターネット学習教材としてのIE---Windows XPの新機能を体験しよう」など)や拙著「Visual Studio.NET2003 オブジェクト指向ですっきり分かる クラスと名前空間」などをご覧下さい。

 一言述べておけば,WindowsのGUI操作やVisual Studio .NETなどをはじめとするGUIベースの統合開発環境,あるいは,インターネット関連アプリケーションを理解する際,オブジェクト指向の知識を持っていたほうが圧倒的に有利です。

 オブジェクト指向といっても,これは筆者の個人的な意見ですが,時間をかけて隅から隅まで学問的に研究するのではなく,必要最低限の概念(例えば,オブジェクト,クラス,インスタンスなど)を実践的に理解できる知識があれば十分だと思います。JavaやC#に強い影響を与えたC++の生みの親であるBjarne Stroustrup氏も,筆者と同じようなことを述べています。

 それでは次に,Windowsの短所を整理してみましょう。

Windowsの短所

 ご承知のように,市場に出ているどのような製品でも完璧なものはありません。ソフトウエア製品の場合には特に,「人間が開発しているのだからバグがあるのは当然」という意見すら聞かれるほどです。私は,次のようなWindowsの短所リストを用意してみました。

  • 入手が容易すぎ,かつ,インストールも簡単すぎる
  • だれでも使えるGUI環境が用意されている
  • インターネット関連機能とWindows OS統合の意味が分かりにくい
  • オブジェクト指向技術は一般に広く理解されていない
  • 搭載される最新技術は完全なものでないことがある
  • 拡張部品追加後に発生した問題の解決が難しい
  • 参考情報が豊富すぎる
  • ユーザーが多すぎる
  • セキュリティ・パッチ・コードの更新が多すぎる

 この短所リストに目を通した皆さんは,どのような第一印象を持ったでしょうか?基本的には,長所リストと同じです。簡単に言えば,長所がそのまま短所となっているわけです。インターネットへの常時接続が一般化している現在,Windowsユーザー数が多ければ多いほどそれだけ,ウィルスへの感染者数が増えてしまう可能性が大きくなります。

 また「インストールが簡単で,しかも,使いやすい」ということは,コンピュータやソフトウエアに関する基礎知識を持たないユーザーが増えることを意味します。インターネット空間で活動するハッカーにとっては,そのようなユーザーのコンピュータは悪用する格好の対象(つまり,攻撃時の踏み台)となります。このため,「インストールが簡単で,しかも,使いやすい」というWindowsの長所は,極端な表現をすれば,インターネット社会の存続自体を危うくする原因となりかねません。このようなことが現実となっては困りますから,Windowsの開発元であるMicrosoft社は何らかの対策を講じる必要があります。またその責任があります。それではここで,Microsoftは今後どのような対策を取る予定なのかを見てみましょう。

Microsoftの打つ手

 筆者が担当した前回連載の最終回では,Windowsユーザーの現状を取り上げ,次のような文章を用意しました。

「筆者は,Windows XPの管理方式を,情報公開量の多いWindows Server 2003方式と同じにしてほしいと希望します。」

 この希望は今でも当然変わっていません。そして驚いたことに,2003年のPDC(Professiona Developer's Conference)用に用意された「Windows XP Service Pack 2: A Developer's View Draft Version for PDC 2003」(以後Draftと略記)というインターネット公開文書を読んでみると,次のような文章が記述されています。

"The goal for SP2 is to build on our Trustworthy Computing efforts that have previously been applied to Windows Server 2003. "

 この文章を素直に読んでみると,次のようなことがわかります。

  • Trustworthy Computing技術は,Windows XPではなく,Windows Server 2003に適応された
  • SP2は,WindowsXPをWindows Server 2003に近づける技術である

 ご覧のように,Windows XPにはTrustworthy Computing技術が適用されていません。つまり,2004年に出荷される予定のSP2の実装内容は,私たちWindowsユーザーに大変重要な意味を持っていることがお分かりになると思います。なお,Draftの詳細はこちら,また,文章内で触れられているTrustworthy Computingに関しては,こちらから公開されている情報をそれぞれ参照して下さい。

本連載で学習する内容

 前の連載では,Blasterなどが悪用したセキュリティ・ホールをふさぐ修正コードの適応背景やその意味を取り上げました。しかし残念なことに,一連のウイルス騒動の経験は,修正コードと適応タイミングの重要性を私たちに教えてくれただけでした。私たちはあの経験を経ても,技術的に成長することはもちろん,インターネットやコンピュータに関する知識を深めるようなこともできませんでした。つまり,あの経験は,疲労だけが残る,後ろ向きの経験だったわけです。

 先のDraftを読んでみると,Shielded ModeやExecution protectなどを初めとする専門用語が所狭しと並び,「これはスローガンではない!」という強調表現まで使われています。しかし,私たちは皮肉にも,あのBlaster騒動の経験から,それらの技術用語を無条件で信頼することは時期尚早である,ということを学び取っています。

 Draftをいくら読んでも,SP2の適応後の既存システムへの具体的な影響がはっきりしていません。Draft内では,ソフトウエア開発者が注意すべき事項が説明されています。開発者が注意すべき事項があるということは,WindowsユーザーもSP2の影響を直接・間接に受けることを意味します。これは非の打ち所のない,きわめて自然な解釈です。このため,開発者だけではなく,WindowsユーザーもSP2公開に備える準備をしておいたほうが得策と考えられます。切羽詰って準備を始めるよりは,今から備えたほうが気分的に楽です。

 皆さんの中には,「自分の現在の知識では,SP2の技術的な影響や意味を理解できないのでは」と不安な方もおられることでしょう。もしそのような不安をお持ちでしたら,次の文章を一読してみてください。

"One of the first things we did when developing Microsoft Windows Server? 2003 was to turn off less-commonly used services. If a service has a security bug,and it's not running by the default,then the exploit potential is dramatically reduced. "

 この文章を用意したのは,Microsoftのセキュリティ専門家であるMichael Howard氏です。英語の不得手な人は辞書を片手に読んでみてください。決して難しいことを言っているのではありません。要は「Microsoft Windows Server 2003開発時には,セキュリティ・バグのあるサービスをデフォルトで動作しないようにしたのです」,と述べているだけです。

 これは「Microsoft Windows Server 2003開発時には当たり前の作業を行いました」と述べていることと同じです。「当たり前のこと」とは,常識や技術的な基本を意味しますから,表現を変えれば,「これまでは基本作業をなおざりにしてきました」,と反省しているといってもよいでしょう。

 すでにお気づきの方もおられると思いますが,このデフォルト変更は,「インストールが簡単で,しかも使いやすい」というWindowsの長所が時の流れの中で短所に変化した,典型的な例です。同じようなデフォルト変更には,後日この連載で取り上げる予定の,インターネット接続ファイアーウオール(ICF)があります。

 この連載では,このような基本を確認しながら,SP2の技術情報やインストール後の影響を自分なりに理解し,評価するための基礎を身に付けます。一部の方は,セキュリティ情報などに精通していったい何になる!,と反発されると思いますが,セキュリティ確保は,Microsoftにとっては乗り越えるべき試練です。

 資金も人材も豊富な同社が,この試練を,技術的,あるいは,マーケッティング的に,乗り越えてゆく過程を観察することは,同じIT業界で活動する私たちにとってたいへん貴重な参考資料となるのではないかと思います。皆さんが開発・販売するソフトウエア製品も将来どのような試練に直面するか予想できないのですから。

 最後にこの連載で紹介するサンプル・プログラムについて触れておきます。こちらの記事のアンケート結果から判断すると,「Visual Basic + Visual Basic for Application」のユーザー数が多数を占めています。このため,言語としてはこれらの言語の仲間に入るVBScriptを使用していきます。C,C++,Java,C#などと異なり,VBScriptで記述されたプログラムは特別な実行環境を必要としないことも理由の1つです。

 皆さんのソフトウエア開発者としての将来に配慮した場合,CやC++の基本をしっかり押さえておいたほうがよい,という意見のあることは重々承知しています。ただ,本連載は,プログラミングの基礎知識を提供するものではありませんから,その方面の知識は適切な市販図書を参照されるようにお願いいたします。私のほうは,サンプル・プログラムを解説する際には,C++などを意識した解説を心がけるようにいたします。

本日のまとめ

  • 2004年に公開される「Windows XP Service Pack 2(SP2)」は,2002年1月15日にBill Gatesが唱えたTrustworthy Computing方針をWindows XPに適応するものである
  • 2004年に公開される「Windows XP Service Pack 2(SP2)」は,現在のWindows XPをWindows Server 2003に近づけるものである

 本日は以上で終了です。次回またお会いいたしましょう。ごきげんよう!