わずか25Mの軽量カーネル、MinWin

このエントリーをはてなブックマークに追加
71名無し~3.EXE
http://pc12.2ch.net/test/read.cgi/win/1267593939/100-101n
100 :名無し~3.EXE:2010/03/06(土) 10:13:34 ID:xP+31a70
MinWinというのは「Windowsの基本構成(Longhorn開発中)」とか
「NTカーネルと最小限の周辺コンポーネント(その後)」とかの、
範囲を示す言葉でしょ。Minimized Windowsぐらいの意味じゃないかと。
http://en.wikipedia.org/wiki/MinWin
http://www.windows-now.com/blogs/robert/mark-russinovich-explains-minwin-once-and-for-all.aspx
は大体筋が通ってると思うし、まとめてみます↓

2003年ごろ、MS社内では開発中のLonghornのコードの95%ぐらいを指してMinWinと呼んでいた。

2005年ごろ、次期Windows Server(2008)の共通基盤となるServer Coreの開発に着手。
原型として既存のWindowsから必要最小限を取り出したところ、
システムの下層が上層を呼び出すといった依存性問題が数多くあると判明した。
これはシステム設計としては禁じ手だ。だがServer Core着手の段階で解決するには
相当手間がかかりそうだったので、サーバとは関係ないものを省くだけになった。
MS社内では、このServer Coreや下記の最小限構成をMinWinと呼ぶようになった。

(開始時期は不明)そのままでは後続製品での改善が難しくなるので、
改めて依存性問題をWindows全体の問題としてとらえて解決することになった。
まずVistaからカーネルと最小限の周辺コンポーネントだけを取り出し、
Vista全体と比較するとかなり小さいがOSとして機能する、 ブート可能でテストしやすいものを用意した。
そして依存性問題をすべて洗い出して、ひとつひとつ解決していった。

具体的にはAPIの配置転換を行った。例えばWindows Nowの記事によると、
KernelBase.dllにはそれまでのKernel32.dllの機能をリファクタリング
したものが数多く入れられて、APIの互換性を保つためにKernel32には
下層のKernelBaseに呼び出しを渡す“連絡係”(Virtual DLLのこと?)が残された。

この作業は、他のWindowsの開発とは独立並行して進められて、
2008年に完了し、作業範囲はOSのさらに上層に移っていった。
この成果が取り入れられるのはWindows 7から。
72名無し~3.EXE:2010/03/13(土) 19:46:51 ID:8P3J/gMj
101 :名無し~3.EXE:2010/03/06(土) 10:21:49 ID:xP+31a70
2007年の秋、Windows 7についてのMSの開発者の講演の中で初めて
対外的にMinWinという言葉が使われた。そこでは作業内容の説明と、
MinWinの上で簡易的なウェブサーバーを動作させるデモが行われた。
「元になったVistaと比べるとかなり小さくてGUIもないが、
OSとしてちゃんと機能している」「これならOSの改修がしやすい」と示すだけのデモだったが、

これが「小さくて新しいMinWinカーネル」のように報道されてしまった。
これでは「Vistaとはまったく別の、新規に開発中のカーネルのコードネーム」
みたいだし、MinWin関係でMSが「カーネルが小さい」と言ったこともないし、
はしょりすぎ。

その後「Windows 7にMinWinカーネルは入らない」
「7はコンポーネントベースで必要な機能を追加するような販売形態になるかも」
という報道もあったけど、そういうのも

「7のカーネルは、VistaやWS2008のカーネルをさらに進化させたものです。」
「MinWinというのはカーネル(だけを指す言葉)ではありません。」
「Windows Severには多種多様な製品があり、機能も様々です。
共通基盤を作るところから始まったのがMinWinです。」

というようなMSの追加説明から、さらに想像を膨らませただけだと思う。