MinWin

From Wikipedia, the free encyclopedia

MinWin(ミンウィン)は、マイクロソフトWindowsVistaへアップグレードする際に採用したカーネルオペレーティングシステムの構造を表す非公式な用語。この用語はオペレーティングシステムの約95%を占める共通部分を説明するための言葉として2003年に初めて使われたが、後に非常に限定されたコアな一部分のみを指す言葉になった。Windows 7Windows Server 2008 R2の一部である、必要最小限で自己完結したOSとして知られている。

元々Windowsは大きな1つの、相互に強く依存したコンポーネントの集合をコアとしたオペレーティングシステムとして設計されていた。その後のリリースにおいても、Windowsのコアは無数のコンポーネントの集合として考えられ、コンポーネント間の依存度の高さがグラフィカルユーザインタフェースや印刷機能を持たないバージョンの開発を妨げていた。また数多くの設定がグラフィカルユーザーインターフェイス経由でしか変更できないということが更なる複雑さを招いていた。「Windowsの開発は風の中に辛うじて立っている砂上の楼閣(ろうかく)だ」とWindowsジャーナリストのポール・サーロットは評した[1]

マイクロソフトがWindows Server 2003を開発していた2003年4月に、当時のWindowsコアテクノロジーグループの副社長だったロブ・ショートはインタビューでコマンドライン版を開発していることを明らかにした。「Linuxのコミュニティでは必要なものだけを組み合わせて実行できるようになっており、我々もWindowsのレイヤーを見渡し、各レイヤーにどのような機能があるのかを確認して、どのようにすればこのような形に近づけることができるのかということを模索している。Linuxはこの点において私たちより進んでいるが、私たちも改良を考えている。私たちが開発しているコマンドライン版に全ての機能を実装できるかどうかはまだわからない。数多くのツールがグラフィカルユーザーインターフェイスに依存している[2]。」ディレクション・オン・マイクロソフトのマイケル・チェリーらはWindows Server 2003で各種設定機能とグラフィカルツールの依存関係が減っていることを確認したが[3]、もしサーバーがグラフィカルユーザーインターフェイスを全く必要としない場合であっても、オペレーティングシステム本体をインストールするのに完全なグラフィカルユーザーインターフェイスが必要なままだった。

Windows Server 2003がリリースされるとロブ・ショートはオペレーティングシステムのコアな部分の中にある依存関係を文章化して解消することを目的としたカーネルアーキテクチャチームを作った。カーネル開発チームはこの問題が広範囲に渡るものであり、社内の様々なグループに影響を及ぼす恐れがある難題であるということに当初から気づいていた[4]。カーネルアーキテクチャチームはまた、カーネル内外の全てのコンポーネントに関わるプログラマーの悪い習慣を改める責務があると予想した。WindowsはVista開発中の2005年末時点で5500の独立したファイルにより構成されていた[4]が、この任務を実行するため、オペレーティングシステムの全てのコンポーネントに対し、他のコンポーネントとの相対的な依存度を示す「レイヤー番号」を割り当てた。オペレーティングシステムのコアに近い部分には低いレイヤー番号が、遠い上位の部分には高いレイヤー番号が割り当てられた。この情報を基にしてコアアーキテクチャチームは低レベルと高レベルの間の依存関係を解消する方法を模索し始めた。これを続けていくうちに様々な目的にアレンジできるWindowsのサブセットを作ることが可能になってきた。

マイクロソフトでWindows Audioチームの開発者だったラリー・オスターマンは2008年11月にインターネット掲示板のChannel 9でこの成果を「アーキテクチャレイヤーの境界に従ったコードリファクタリングであり、Longhorn Reset以来続けてきたことの順当な延長である (だからVistaが最初のMinWinベースのオペレーティングシステムだったと言われているのだ)[5]。」と説明した。この投稿に対し、別のWindows開発者であるブランドン・パドックは「これはどちらかというとガイドラインや信条の集合のようなもので、SDL (信頼できるコンピューティングのセキュリティ開発ライフサイクル) がよりセキュアなソフトウェアを目指して開発プロセスを導くように、MinWinはWindowsのコンポーネントがより明確で、正しいレイヤー構造に順応できるように導くものだ[6]。」と投稿して補足した。

リリース

脚注

関連項目

Related Articles

Wikiwand AI