Wrap up

第10章のストレージ管理、第11章のキャッシュマネージャ、第12章のファイルシステム、第13章のネットワークという各章に関しては、(内部的なインプリメントのどこかに近似点はあるのかもしれないが)解説の記述からは似た部分は殆ど見当たらなかった。もっとも、これはWindowsの生い立ちを考えれば当然とも言える。もっとも、意外に近いところもある。例えばVAX/VMSでのファイルの指定は、

$disk:[directory]filename

といった形を取る。DirectoryはいわゆるTree構造である。対するWindowsはMS-DOSを引きずっているから、

Drive:\Directory\filename

といった形になる。これは、MS-DOSの開発にあたり、ファイルシステムにUnixのTree構造を取り入れた(このあたりがCP/Mのファイル管理を引きづったCP/M-86との大きな違いだ)と言われているが、実際はVMS(というか、VMSの元になったRSXあたり)から持ってきた部分も大きかった「らしい」。ファイル名の絶対パスの先頭にディスクドライブ名が出てくるのはいかにもである。ただVMSは別にA:~Z:の26ドライブなんて制限は無いが、これはMS-DOSのインプリメントを考えれば不思議ではない。またMS-NetworkというかOS/2のLAN ManagerではUNC(Universal Naming Convention)が利用できる。所謂、

\\Host\Share-Name(\SubDirectory)\Filename

という方式であるが、これはVMSでRMS(とDNS:Digital Network Architecture)が提供していた、

HostName::[Share-Name(.SubDirectory)]Firename

に非常に良く似ている。Windows NTとかいう以前に、こうしたエッセンスをMS-DOSやWindowsが取り入れてきたからこそ、Windows NTでもそれがそのまま継承されたのであろう。

もっとも似ているのはここで終わり。Windows系はVMSと比較して遥かに多様多種のストレージを扱わねばならないし、Device Driverの構造も違うし、提供されるAPIも異なるから、実装は全く異なると考えたほうが良い。

キャッシュマネージャはこちらでも触れたとおり、はっきりと「違うインプリメントを行っている」と断言しているから、もはや似ているはずも無い。ファイルシステムも同様で、WindowsではNTFSがメインとなるファイルシステムで、必要に応じてFAT / FAT32 / HPFS / etcをサポートしてきたわけだが、このNTFSとVAX/VMSで採用されたFiles-11というフォーマットの間には(本書を読んだ限りでは)何の相関も見つからなかった。NTFSそのものもどんどん進化しており、現在のNTFS V3.1(Windows XP以降で採用されているバージョン)と一番最初のNTFS V1.0の間にどの程度共通性があるかも正直怪しい程だ。このあたりは、VMS以外の動向を見ながら進化してきたと考えられる。

ネットワークについては、VMSが独自のDECnetをベースにしており、後からTCP/IPを追加するという形になったのに対し、Windows NTでは当初からTCP/IPを含む複数プロトコルをサポートしており、このあたりの柔軟性は遥かに上回っていた。もっともこれはMicrosoft/IBMのLAN Manager以外にNovellのNetwareを初めとする様々なLANが既に存在しており、これらを利用できるようにしないと特にビジネスの現場で使ってもらえない、という判断は当然あったのだろうが。その後、ネットワーク管理にはDomainという概念と、更にその上位にあたるActive Directoryが追加されたし、またインターネットについてはIEをOSの内部に取り込む形で積極的に対応を図っており、このあたりも全然別物に進化してしまった感がある。このあたりも、VMSとの共通項を見出すのは非常に難しい。

といった訳で、45回ほど掛けてインサイドWindowsを「VAX/VMSとの相関」という観点から読み解いて来た。もっとも読者の殆どはVAX/VMSやその後継であるOpenVMSの事はご存知ないと思うので、これがどの程度読者のお役に立てたかは微妙であろう。ただ、インサイドWindowsがサラッと流している部分にも色々な話が隠されてる、という事は示せたのではないかと思う。そんなわけでこのシリーズは今回で終了。次回から全く違う話をしたいと思う。