人とか機械とか

デジタルガジェットやコンピュータについてのブログです。

Minwin勘違い

Minwin放言 とかWindows 8放言 とか
書いてたけど、なんかいろいろ勘違いしていたみたい。

まとめ
・MinWinカーネルは、Windows7で搭載されていた。てっきり次のWindows8で搭載されるのかと思ってた。
・一般的に「windows 7vistaをベースにしたもの」と説明され、あんまり変わんないように思われている。それは、アプリケーション層から見れば間違いはない。APIに互換性があるし。
・バージョンはxp(5.1)、vista(6.0)、7(6.1)と変わったが、それはカーネルの変更量を表すものではない。xpからvistaになるとき、メジャーバージョンを変更しちゃっていろいろ互換性問題がめんどくさかった。だから、アプリ見えにはメジャーバージョンを変えるほど変わっていない、ということを表すため、0.1の増加に留めた。
・以上のように、アプリケーション層からはそんなに変わっていないように「見せている」のだが、実際のカーネル内部はVistaから比較しても大改修されている。べつにカーネルが改修されようがなにしようが、アプリがちゃんと動けば無問題じゃね?
・ただ、カーネルモードで動くもの(ドライバとかサービス)は、なんか動きが変わってきたりするのかなあ。でも「Vista用」で作られてるドライバがとりあえず難なく動いてるから、そんなでもないのかな。
・また「小さくなると言われていたのに結局6GBもあるじゃないか」という意見があるが、それはおそらく「(MinWinの記事で強調されたとても小さい)最小限のカーネルのフットプリント」と「標準インストールしたOS全体のフットプリント」とを履き違えているものと推測する。

なぜWindows 7のカーネルはVistaより軽量化できたのか?
http://ascii.jp/elem/000/000/504/504132/


【新世代】 Windows 7 Part69
http://pc12.2ch.net/test/read.cgi/win/1267593939/


100 名前:名無し~3.EXE[sage] 投稿日: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から。 


101 名前:名無し~3.EXE[sage] 投稿日: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の追加説明から、さらに想像を膨らませただけだと思う。 


104 名前:名無し~3.EXE[sage] 投稿日:2010/03/06(土) 11:35:08 id:TVvztnWh

付け加えると、ここまで大きく変わった7系のカーネルを6.0に近い6.1と命名した理由はただ1つ 
互換性確保のためOS判別の1桁目 osInfo.Version.Major = 6 をアプリケーションに渡すため 
(下位の数字Version.Minorについては伝統的にPlatformID.Win32NT系は開発順に1飛ばしだから次の1) 
あえてMSが 
・バージョニングは(カーネルの)変更量を反映するものではない 
と忠告してるように、内部的にも前世代のVista系カーネルと実際には相当の差があるということ 
http://ascii.jp/elem/000/000/504/504133/img.html 
http://ascii.jp/elem/000/000/504/504132/