Windows 9x

Windows 9x是以Windows 95核心作為藍本的微軟作業系統的通稱。這包括了Windows 95、Windows 98的所有版本，以及2000年釋出的Windows Me。Windows 9x所使用的內部發行版本號為“4.x”，而之前基於MS-DOS的Windows版本則使用等於或小於3.9的版本號。Windows NT使用類似但獨立的、介於3.5與4.0的版本號。Windows 9x聞名於它在桌面的使用；在1998年，Windows佔有了作業系統市場份額的82%。基於Windows 9x產品線的作業系統的大多數功能集與相容性隨著Windows XP的釋出，被合併到Windows NT中。為了能與Windows 3.x、MS-DOS相容，Windows 9x的核心裡混雜著16位元和32位元的程式碼。歷史.95之前的Windows.微軟第一個獨立的Windows版本1.0釋出於1985年11月20號，頗受歡迎。它最初定名為“Interface Manager”，但Rowland Hanson，微軟的銷售經理，說服公司，認為名稱“Windows”更為引人。Windows 1.0並非完整的作業系統，而是被擴充套件的MS-DOS“操作環境”，並擁有後者固有的缺陷與問題。Windows 2.0現身於1987年12月9日。它使用真真實模式的記憶體模型，受限於為1兆位元組的最大記憶體。於此模式下，它可執行在使用286保護模式的另一個多工管理器下，如。釋出於1990年的Windows 3.0讓Windows獲得了巨大的商業成功，提供了完整的 16 位色圖示與圖形的 EGA 與 VGA 支援。微軟開發了Windows 3.1，對Windows 3.0做了些小改進，由於引入虛擬記憶體機制，Windows也讓使用者享有更好的MS-DOS程式多工處理，也引入了多媒體支援。它也剔除了真實模式支援，只可在80286或更高的處理器上執行。爾後，微軟又釋出Windows 3.11，對1992年的Windows 3.1進行了修飾並加入Windows 3.1釋出之後的所有補丁與更新。同時，微軟繼續研發Windows NT。其主要的系統架構師為Dave Cutler，曾在Digital Equipment Corporation擔任VMS的架構師。微軟於1988年8月聘請他以開發OS/2的後繼作業系統，但他卻建立了一個全新的作業系統。微軟在會上宣佈了將會為Windows NT及Windows 3.1的替換者開發一個可統一兩者的作業系統。這個計劃的代號為Cairo。事後看來，Cairo是一個遠比微軟預期中更為艱難的專案。因此直到Windows XP時期產品線才統一成功。Windows 95.Windows 3.1之後，微軟開始研發一款以使用者為導向的、代號為Chicago的作業系統。Chicago的主要設計目標為支援像是OS/2和Windows NT那樣的32位搶佔式多工處理，儘管16位核心將會因向後相容而被保留。首次推出於Windows NT中的Win32 API被選定為標準32位的程式介面，並透過一種被稱為“thunking”的技術對Win16相容。設計全新的GUI雖然沒有在計劃之中，但很多Cairo的使用者介面元素都被借鑑並用在後來的釋出之中。微軟並沒有把所有的Windows程式碼更換到32位；部分程式碼因相容、效能、開發時間等問題而保留一些16位程式碼。再說，它必須滿足早期開發Windows的設計決策，以便向後相容，即使這些設計決策不再適用於更現代的計算環境。這些因素最終開始影響作業系統的穩定與效率。當Chicago釋出於1995年8月24日時，微軟銷售部採用“Windows 95”作為Chicago的產品名字。微軟接著釋出五個不同版本的Windows 95：OSR2，OSR2.1及OSR2.5沒有對外發布；相反的，它們僅被售賣給那些會預裝系統在電腦中的OEM廠商。一些公司銷售預裝OSR2新的硬碟驅動器。第一個附加包是為了Windows 95而出售的。Windows 98.1998年6月25日，微軟釋出了Windows 98。它包含了新的硬體驅動，並提供較完善的FAT32檔案系統支援，允許硬碟分割槽大於在Windows 95可接受的2GB上限。Windows 98對USB的支援也遠優於僅提供基本USB功能的Windows 95的OEM版本。它還受爭議地集成了Internet Explorer瀏覽器到Windows GUI及Windows Explorer中。1999年，微軟釋出了Windows 98的第二版，一個過渡性的釋出。其值得注意的新特性有Internet Connection Sharing和較完善的WDM音訊及調變解調器支援。Internet Connection Sharing是一種網路地址轉換器，允許多個機器在同一個LAN上共享唯一的網際網路連線。Windows 98的第二版改進了原版的一些問題，支援了更多的硬體驅動。由於很多存於原版中的小問題得到了修復，Windows 98的第二版成為眾人眼中最穩定的Windows 9x釋出——以致眾多評論員常說Windows 98的測試版本比Windows Me的最終版本穩定。Windows Me.於2000年9月，微軟推出了Windows Me，被稱為擁有增強的多媒體及網際網路功能的Windows 98升級版。引入了系統還原機制，使使用者能在系統故障的情況下還原系統到之前“已知良好”的狀態。Windows Movie Maker也在這時推出。Windows Me被認為是一個在Windows 98與Windows XP之間臨時過渡性的、為期一年的短期專案。Windows Update網站為舊版Windows提供了很多相關新特性的更新下載。因此，Windows Me不被認為是一個在Windows 95或98產品線上的獨立作業系統。因為頻繁的宕機和崩潰，Windows Me的穩定性與可靠性常被人詬病。一篇《PC World》所載的文章為Windows Me取名為“Mistake Edition”的第四名。由於使用者無法像之前的Windows 9x版本那樣容易啟動進入MS-DOS模式，造成大量使用者快速學會破解Windows Me安裝程式以制定出所需服務。衰落.Windows 2000的釋出標誌著介於Windows 9x系列與Windows NT系列的使用者體驗轉換。NT受困於缺少USB及即插即用的支援，且披著陳舊過時、難以操作的介面。而Windows 2000則有著比Windows 9x更炫酷的介面，和較完善的即插即用及USB支援。Windows XP的釋出顯示了微軟方向的轉變，把個人版及企業版作業系統調和得更為統一。最後，微軟結束了對Windows 9x的支援，並先後對終端使用者及OEM廠商停止售賣相關軟體。服務終結.微軟在2006年7月11日終止了對Windows 9x系列的支援。DirectX系列在8.0a版停止對Windows 95的更新、9.0c版停止對Windows 98與Me的更新；Visual Studio 系列最後可將 Windows 98 作為目標平臺的版本是 Visual Studio 2008。如今，即使是開源專案的Mozilla瀏覽器，在不加工修改的情況下，也無法在Windows 9x上執行。設計.核心.Windows 9x是一種混合16/32位的作業系統。與大多數作業系統一樣，Windows 9x由核心及使用者空間組成。儘管Windows 9x擁有記憶體保護機制，但它並沒有保護記憶體的首個兆位元組以防止來自使用者空間應用程式的侵害。這個記憶體區含有讓作業系統正常運作的關鍵碼。寫入這些記憶體區將可能造成系統崩潰或宕機。錯誤的應用程式可能意外寫入此記憶體區並使作業系統停止執行。這是系統不穩定的原因之一。使用者模式.Windows 9x的使用者模式由三個子系統組成：Win16子系統、Win32子系統及MS-DOS。Windows 9x/Me為GDI及堆資源保留兩塊64KB的記憶體。長時間執行多個應用程式，又或執行多個擁有大量GDI元素的應用程式將可能耗盡這些記憶體。若空閒資源少於10%，Windows將變得不穩定並可能崩潰。核心模式.核心模式由虛擬機器管理器。身為32位作業系統，Windows 9x中的每一個程序都有4GB的虛擬記憶體空間：前2GB給核心而後2GB給應用程式。登錄檔.像Windows NT一樣，Windows 9x把使用者和配置特定的設定儲存在一個大型的、被稱為Windows登錄檔的資訊資料庫。硬體特定的設定也存於登錄檔中，且很多裝置驅動器都使用登錄檔來載入配置資料。此前的Windows版本使用如AUTOEXEC.BAT、、、SYSTEM.INI的檔案及其它帶有.INI字尾的檔案來維持配置設定。當Windows日趨複雜並納入更多的特性時，.INI檔案們對當時的FAT檔案系統無疑顯得笨重至極。對.INI檔案的相容維持直到Windows XP的出現。儘管微軟不鼓勵使用.INI檔案以代替登錄檔的使用，但仍有大量的應用程式。AUTOEXEC.BAT及CONFIG.SYS檔案也繼續存在以相容真實模式系統元件並允許使用者更換預設系統設定，譬如PATH環境變數。登錄檔由User.dat及System.dat檔案組成。在Windows Me中，又加入了Classes.dat。虛擬機器管理器.虛擬機器管理器的32位平面記憶體模型地址空間。VMM提供多執行緒搶佔式多工處理機制。為了同時執行多個應用程式，它把CPU時間分配給在這些應用程式及虛擬機器中的執行緒們。VMM也負責為系統程序及還需執行在MS-DOS模式中的Windows程式建立MS-DOS環境。它是Win386。軟體支援.檔案系統.Windows 9x本身不支援NTFS或HPFS，但第三方軟體解決了問題，允許Windows 9x對NTFS捲進行只讀訪問。Windows 95的早期版本不支援FAT32。同Windows for Workgroups 3.11一樣，Windows 9x支援32位檔案訪問。不同於Windows 3.x，Windows 9x支援VFAT檔案系統，允許檔名字可達最多255個字母以取代8.3檔案命名法。事件日誌及追蹤.Windows 9x不支援Windows NT家族所擁有的事件日誌及追蹤或出錯報表機制，儘管使用像Norton CrashGuard的軟體可在Windows 9x上實現相似的功能。安全機制.Windows 9x乃單使用者系統。所以，它的安全機制不如Windows NT有效。其原因之一是Windows 9x只正式支援FAT檔案系統，儘管Windows NT也支援FAT，且Windows 9x也可透過第三方的可安裝檔案系統驅動器來實現對NTFS卷的讀寫。FAT系統的安全機制不彰，每個擁有FAT驅動器訪問許可權的使用者都可訪問其內的所有檔案。不像NTFS，FAT檔案系統沒有訪問控制列表和檔案系統加密機制。一些與Windows 9x同時期的作業系統在大多數使用者戶口底下都是不可更動的。相反的，Windows 95及其後的作業系統為多個使用者提供簡檔選項，它們沒有訪問許可權的概念，使它們大致相當於單使用者的、單戶口的作業系統，意味著所有程序都可修改所有未開啟的檔案及引導扇區，或對硬碟進行修改。這使病毒及其它被秘密安裝的軟體更緊密地與作業系統結合在一起，使使用者難以對它們進行偵查及撤消。在Windows 9x中的使用者簡檔支援僅是為了方便而已。除非修改一些登錄檔項，在登入時可按下“取消”以訪問系統，即使所有的簡檔都擁有口令保護。Windows 95的預設登入對話方塊允許在不登入的情況下建立新使用者的簡檔。使用者或應用程式可透過刪除或覆寫重要的系統檔案來使作業系統無法運作。使用者或應用程式也可自由更改配置檔案以致作業系統無法啟動或正常運作。安裝軟體常常覆蓋或刪除系統檔案，但沒有正確檢查被覆蓋或刪除的檔案是否為更新的版本或正在使用著。這就是DLL地獄的由來。Windows Me引入系統檔案保護機制及系統還原來解決此問題。而被Windows 9x從DOS繼承的FAT及FAT32檔案系統則沒有檔案保護機制，也沒有類似NTFS的檔案許可權機制。硬體支援.驅動程式.Windows 9x的裝置驅動程式可以是虛擬裝置驅動程式或WDM驅動程式。其它型別的驅動程式有.DRV驅動程式。這些驅動程式在使用者模式中被載入，通常被使用來控制裝置，譬如多媒體裝置。為了訪問這些裝置，動態連結庫是必需的。寫給Windows 9x/Windows Me的驅動程式被載入到與核心同樣的地址空間，說明驅動程式可能有意或無意地覆寫作業系統的關鍵記憶體區。這將導致系統崩潰，宕機及硬碟損壞。故障的作業系統驅動程式乃作業系統不穩定的其一原因。單核心或混合核心之流，如Linux及Windows NT者也易受失常的驅動程式擾亂核心運作。驅動及應用程式開發者常常因缺乏為“新”系統程式設計的經驗而造成了許多被使用者誤認為系統錯誤的錯誤，即使錯誤的發生並不緣由於Windows或DOS本身之故。為此，微軟自Windows 95以後，不斷地重新設計Windows驅動程式架構。CPU及匯流排技術.Windows 9x不支援超執行緒、資料執行保護、對稱多處理或多核處理器。Windows 9x不支援SATA AHCI，但出現為數眾多針對Windows 98/Me驅動程式的SATA-I控制器。對Windows 98/Me的硬體驅動程式支援自2005年逐漸減少，特別是主機板晶片組和顯示卡的驅動程式。早期的Windows 95不支援USB和AGP。Windows 95 OSR2可安裝USB補丁和AGP補丁以支援USB和AGP。Windows 98是第一款支援ACPI的Windows。MS-DOS.Windows 95遠遠比Windows 3.1x及其前的作品更加削弱MS-DOS在Windows中的影響。微軟稱，MS-DOS在Windows 95中有兩個角色：一，為引導載入器；二，為16位舊式裝置驅動層。當Windows 95啟動時，MS-DOS載入、處理CONFIG.SYS、啟動COMMAND.COM、執行AUTOEXEC.BAT，最後執行WIN.COM。WIN.COM程式利用MS-DOS來載入虛擬機器管理器、讀取SYSTEM.INI、載入虛擬裝置驅動程式、關閉任何執行的EMM386副本並切換到保護模式。一旦在保護模式下，虛擬裝置驅動程式將傳送所有MS-DOS的狀態資訊到32位檔案系統管理器，並關閉MS-DOS。這些VxD允許Windows 9x直接與硬體資源互動，就像提供了底層功能，譬如32位硬碟訪問及記憶體管理。接下來的檔案系統操作將會轉送到32位檔案系統管理器。在Windows Me中，WIN.COM不再在啟動過程中被執行了，而直接從IO.SYS執行VMM32.VXD。MS-DOS”MS-DOS虛擬機制.在Windows 9x中，MS-DOS應用程式執行在“虛擬DOS機”中。MS-DOS模式.Windows 95及Windows 98也提供對DOS應用程式的迴歸支援以能夠啟動進入原始“DOS模式”。透過Windows 9x的記憶體管理器及其它的“後DOS”改進，整體系統的效能及功能得到改善。這異於在基於Windows NT作業系統中所使的模擬手段。一些非常老舊的應用程式或硬體都需要“DOS模式”。使用命令列模式，在不進入GUI時，能夠修復特定的系統錯誤。例如，如果一病毒活躍於GUI模式中並鎖住自身的檔案，那麼它通常可在DOS模式中透過刪除病毒檔案被安全去除。同樣的，損壞的登錄檔檔案、系統檔案或啟動檔案都可用命令列來恢復。在命令提示符中鍵入--可從DOS模式中啟動Windows 95及Windows 98。但Windows 2000中的恢復控制檯也扮演著類似的角色。由於DOS沒有多工處理機制，基於DOS的Windows版本缺少檔案系統安全機制，譬如檔案許可權。再者，若使用者使用16位DOS驅動程式，Windows可能變得不穩定。在Windows 9x系列中就頻繁發生硬碟錯誤。使用者介面.使用者可透過命令列介面來控制一個基於Windows 9x的系統。對於桌面系統，預設模式通常為GUI，而MS-DOS Windows則使用CLI。Windows 9x的GUI執行在一個基於DOS的層。不同於載入到核心空間的Windows NT GDI，身為Win32及Win16子系統的Windows 9x GDI被載入到使用者空間。Alpha通道或透明特效，譬如選單的漸變效果，都不被Windows 9x GDI支援。Windows Explorer乃桌上型電腦的預設使用者介面，儘管出現了各式各樣的Windows shell更換軟體。其它種類的GUI有LiteStep, bbLean及程式管理器。GUI讓使用者更方便地控制個別應用程式的位置與外觀，及更好地與Windows系統互動。