早在Windows 7尚未發布Beta版前,大家應該都聽說過有關Windows 7中被稱為“MinWin”的微內核,它是小巧、獨立、簡單的Windows。對於這個玩意兒相信很多人一直感到好奇,但一直以來有關它的細節資料幾乎沒有。
在前不久剛結束的微軟技術大會(TechEd 2009)上,操作系統內核專家Mark Russinovich披露了有關MinWin的技術細節。
下面就讓我們來了解一下有關MinWin的重要信息。
MinWin確實存在於Windows 7(以及Windows Server 2008 R2)中,但它並不是傳統意義上的那種內核。事實上,它是一個具備絕大部分基本功能並且可以被分離運行的微型Windows系統,不僅本身擁有核心程序,還包含了基本的文件系統、網絡連接、驅動和系統服務。
Windows系統經過數十年的發展,體積成幾何級增長,目前已經包含後數千個EXE、DLL文件和API。Russinovich解釋說,它們彼此之間又相互依賴,如果其中一個文件進行改動,你甚至無法估計會影響到多少個其他文件。當想改進Windows的時候,發現只有從深層動手才能解決這些互相聯系的狀況。
MinWin,就像是從Windows中獨立出來的系統,僅占用25MB磁盤空間和40MB的內存。它不需要依賴其他組件就可以獨自啟動並運行,還可以直接訪問網絡。但這並不表示著它會成為一個基於命令行的超輕量級操作系統,只是它自身集成的東西使它具有很高的獨立性。
為了生成這個MinWin,微軟需要對Windows架構的低層部分進行了額外的劃分。由於各文件以及組件之間關聯錯綜復雜,這條分割線會從眾多的DLL文件鏈和底層系統服務中穿過。Russinovich說:“我們需要計算出哪些東西是MinWin需要的,哪些是不需要的。”
最後,Windows開發組決定為MinWin制作了一些不同標識的專屬DLL文件(其中一個主要文件名為:KERNELBASE.DLL)。這樣一來基於原有Windows平台的應用程序將不會受到影響,而MinWin也可以擁有極高的獨立性。
也就是說,生成這個MinWin所需要的組件與其從現有的大堆文件中分離,還不如專門為其編寫來的簡單。