Windows 9x是以Windows 95核心作為藍本的微軟作業系統的通稱。這包括了Windows 95Windows 98的所有版本,以及2000年發布的Windows Me[1]

Windows 9x
Windows 95,Windows 9x系列的首個版本
開發者微軟
作業系統家族Microsoft Windows
運作狀態2006年7月11日停止支援,其生產線與Windows NT融合
原始碼模式封閉原始碼
首次發布1995年8月24日,​29年前​(1995-08-24
支援平台IA-32
核心類別單核心
使用者空間Win32Win16MS-DOS
許可證微軟終端使用者許可協定

Windows 9x所使用的內部發行版本號為「4.x」,而之前基於MS-DOS的Windows版本則使用等於或小於3.9的版本號。Windows NT使用類似但獨立的、介於3.5與4.0的版本號。[2]

Windows 9x聞名於它在桌面的使用;在1998年,Windows占有了作業系統市場份額的82%。[3]

基於Windows 9x產品線的作業系統的大多數功能集與相容性隨著Windows XP的發布,被合併到Windows NT中。

為了能與Windows 3.xMS-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保護模式的另一個多工管理器下,如DESQView英語DESQView

發布於1990年的Windows 3.0讓Windows獲得了巨大的商業成功,提供了完整的 16 位色圖示與圖形的 EGA 與 VGA 支援。

微軟開發了Windows 3.1,對Windows 3.0做了些小改進,由於引入虛擬記憶體機制,Windows也讓使用者(相對於Windows/386)享有更好的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的替換者(Windows 95,代號為Chicago)開發一個可統一兩者的作業系統。這個計劃的代號為Cairo。事後看來,Cairo是一個遠比微軟預期中更為艱難的專案。因此直到Windows XP時期產品線才統一成功。

Windows 95

編輯

Windows 3.1之後,微軟開始研發一款以使用者為導向的、代號為Chicago的作業系統。Chicago的主要設計目標為支援像是OS/2Windows NT那樣的32位元搶占式多工處理,儘管16位元核心將會因向下相容而被保留。首次推出於Windows NT中的Win32 API被選定為標準32位元的程式介面,並通過一種被稱為「thunking」的技術對Win16相容。設計全新的GUI雖然沒有在計劃之中,但很多Cairo的使用者介面元素都被借鑑並用在後來的發布之中(特別是隨插即用-Plug and Play)。

微軟並沒有把所有的Windows程式碼更換到32位元;部份程式碼因相容、效能、開發時間等問題而保留一些16位元程式碼(儘管沒直接使用真實模式)。再說,它必須滿足早期開發Windows的設計決策,以便向下相容,即使這些設計決策不再適用於更現代的計算環境。這些因素最終開始影響作業系統的穩定與效率。

當Chicago發布於1995年8月24日時,微軟銷售部採用「Windows 95」作為Chicago的產品名字。

微軟接著發布五個不同版本的Windows 95

  • Windows 95 - 原始版本
  • Windows 95 A - Windows 95 OSR1匯集到安裝程式中。
  • Windows 95 B -(OSR2)包含了幾個重大的改進、Internet Explorer(IE)3.0和完全的FAT32檔案系統支援。
  • Windows 95 B USB -(OSR2.1)包含了基本的USB支援。
  • Windows 95 C -(OSR2.5)包含了上述所有功能,再加上IE 4.0。這是最後一個Windows 95版本。

OSR2,OSR2.1及OSR2.5沒有對外發布;相反的,它們僅被售賣給那些會預裝系統在電腦中的OEM廠商。一些公司銷售預裝OSR2新的硬碟機

第一個Microsoft Plus!英語Microsoft Plus!附加包是為了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(Windows 檔案總管)中。

1999年,微軟發布了Windows 98的第二版,一個過渡性的發布。其值得注意的新特性有Internet Connection Sharing和較完善的WDM音訊及數據機支援。Internet Connection Sharing是一種網路位址轉換器,允許多個機器在同一個LAN上共享唯一的網際網路連接。Windows 98的第二版改進了原版的一些問題,支援了更多的硬體驅動。由於很多存於原版中的小問題得到了修復,Windows 98的第二版成為眾人眼中最穩定的Windows 9x發布——以致眾多評論員常說Windows 98的測試版本比Windows Me的最終版本穩定。[4]

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」(錯誤版本),並把它列為「Worst Tech Products of All Time」(史上最差的科技產品)的第四名。[5]

由於使用者無法像之前的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上執行。[6]

設計

編輯

核心

編輯

Windows 9x是一種混合16/32位元的作業系統。

與大多數作業系統一樣,Windows 9x由核心使用者空間組成。

儘管Windows 9x擁有主記憶體保護機制,但它並沒有保護主記憶體的首個百萬位元組以防止來自使用者空間應用程式的侵害。這個主記憶體區含有讓作業系統正常運作的關鍵碼。寫入這些主記憶體區將可能造成系統崩潰或當機。錯誤的應用程式可能意外寫入此主記憶體區並使作業系統停止執行。這是系統不穩定的原因之一。[7]

使用者模式

編輯

Windows 9x的使用者模式由三個子系統組成:Win16子系統、Win32子系統及MS-DOS。

Windows 9x/Me為GDI資源保留兩塊64KB的主記憶體。長時間執行多個應用程式,又或執行多個擁有大量GDI元素的應用程式將可能耗盡這些主記憶體。若空閒資源少於10%,Windows將變得不穩定並可能崩潰。

核心模式

編輯

核心模式由虛擬機器管理器(VMM)、Installable File System(IFSHLP)及組態管理器所組成。在Windows 98及之後的版本中,又加入了WDM驅動管理器(NTKERN)。身為32位元作業系統,Windows 9x中的每一個處理程序都有4GB的虛擬記憶體空間:前2GB給核心而後2GB給應用程式。

登錄檔

編輯

像Windows NT一樣,Windows 9x把使用者和組態特定的設定儲存在一個大型的、被稱為Windows登錄檔的資訊資料庫。硬體特定的設定也存於登錄檔中,且很多裝置驅動器都使用登錄檔來載入組態資料。此前的Windows版本使用如AUTOEXEC.BATCONFIG.SYS英語CONFIG.SYSWIN.INI英語WIN.INISYSTEM.INI的檔案及其它帶有.INI字尾的檔案來維持組態設定。當Windows日趨複雜並納入更多的特性時,.INI檔案們對當時的FAT檔案系統無疑顯得笨重至極。對.INI檔案的相容維持直到Windows XP的出現。

儘管微軟不鼓勵使用.INI檔案以代替登錄檔的使用,但仍有大量的應用程式(尤其是基於16位元Windows的程式)使用.INI檔案。Windows 9x支援.INI檔案僅僅是為了相容這些程式及相關工具(譬如安裝程式)。AUTOEXEC.BAT及CONFIG.SYS檔案也繼續存在以相容真實模式系統組件並允許使用者更換預設系統設定,譬如PATH環境變數。

登錄檔由User.dat及System.dat檔案組成。在Windows Me中,又加入了Classes.dat。

虛擬機器管理器

編輯

虛擬機器管理器(VMM)是個在Windows 9x核心中的32位元保護模式核心。它的主要任務是建立、執行、監管及終止虛擬機器。VMM提供可管理主記憶體、處理程序、中斷及錯誤保護機制的服務。VMM作用於虛擬裝置(可載入的核心模組,主要由32位元環-0或核心模式碼組成,但也包了括其它類型的程式碼,譬如16位元真實模式初始化段)以允許這些虛擬裝置攔截中斷或故障來控制一個應用程式對硬體及軟體的訪問。VMM及虛擬裝置都執行在一個單一的、0權限級(也稱做環-0)的32位元平面主記憶體模型位址空間。VMM提供多執行緒搶占式多工處理機制。為了同時執行多個應用程式,它把CPU時間分配給在這些應用程式及虛擬機器中的執行緒們。

VMM也負責為系統處理程序及還需執行在MS-DOS模式中的Windows程式建立MS-DOS環境。它是Win386(在Windows 3.x中)的替代品。檔案vmm32.vxd是一個壓縮檔案,含有大部份VxD的核心程式碼,包括了VMM.vxd及ifsmgr.vxd(利於檔案系統的訪問,無需呼叫DOS核心真實模式的系統碼)。

軟體支援

編輯

檔案系統

編輯

Windows 9x本身不支援NTFSHPFS,但第三方軟體解決了問題,允許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檔案系統(包括FAT12/16/32),儘管Windows NT也支援FAT,且Windows 9x也可通過第三方的可安裝檔案系統驅動器來實現對NTFS卷的讀寫。FAT系統的安全機制不彰,每個擁有FAT驅動器存取權限的使用者都可訪問其內的所有檔案。不像NTFS,FAT檔案系統沒有訪問控制列表和檔案系統加密機制。[8]

一些與Windows 9x同時期的作業系統(不管是多使用者的或是擁有多個不同存取權限的使用者戶口)的重要系統檔案(譬如核心映像)在大多數使用者戶口底下都是不可更動的。相反的,Windows 95及其後的作業系統為多個使用者提供簡檔選項,它們沒有存取權限的概念,使它們大致相當於單使用者的、單戶口的作業系統,意味著所有處理程序都可修改所有未打開的檔案及引導磁區,或對硬碟進行修改。這使病毒及其它被秘密安裝的軟體更緊密地與作業系統結合在一起,使使用者難以對它們進行偵查及復原。在Windows 9x中的使用者簡檔支援僅是為了方便而已。除非修改一些登錄檔項,在登入時可按下「取消」以訪問系統,即使所有的簡檔都擁有口令保護。Windows 95的預設登入對話方塊允許在不登入的情況下新增使用者的簡檔。

使用者或應用程式可通過刪除或覆寫重要的系統檔案來使作業系統無法運作。使用者或應用程式也可自由更改設定檔以致作業系統無法啟動或正常運作。

安裝軟體常常覆蓋或刪除系統檔案,但沒有正確檢查被覆蓋或刪除的檔案是否為更新的版本或正在使用著。這就是DLL地獄的由來。

Windows Me引入系統檔案保護機制及系統還原來解決此問題。

而被Windows 9x從DOS繼承的FATFAT32檔案系統則沒有檔案保護機制,也沒有類似NTFS檔案權限機制。

硬體支援

編輯

驅動程式

編輯

Windows 9x的裝置驅動程式可以是虛擬裝置驅動程式或WDM驅動程式(始於Windows 98)。VxD通常都有檔案名字字尾.vxd或.386,而WDM相容驅動程式則使用副檔名.sys。32位元VxD訊息伺服器(msgsrv32)乃一程式,能在啟動時載入虛擬裝置驅動程式(VxD)並爾後處理與驅動程式的通訊。訊息伺服器也可執行一些背景功能,包括載入Windows shell(譬如Explorer.exe或Program.exe)。

其它類型的驅動程式有.DRV驅動程式。這些驅動程式在使用者模式中被載入,通常被使用來控制裝置,譬如多媒體裝置。為了訪問這些裝置,動態連結媒體櫃(如MMAYARWM.DLL)是必需的。

寫給Windows 9x/Windows Me的驅動程式被載入到與核心同樣的位址空間,說明驅動程式可能有意或無意地覆寫作業系統的關鍵主記憶體區。這將導致系統崩潰,當機及硬碟損壞。故障的作業系統驅動程式乃作業系統不穩定的其一原因。單核心混合核心之流,如LinuxWindows NT者也易受失常的驅動程式擾亂核心運作。

驅動及應用程式開發者常常因缺乏為「新」系統編程的經驗而造成了許多被使用者誤認為系統錯誤的錯誤,即使錯誤的發生並不緣由於Windows或DOS本身之故。為此,微軟自Windows 95以後,不斷地重新設計Windows驅動程式架構。

CPU及匯流排技術

編輯

Windows 9x不支援超執行緒系統記憶體保護對稱多處理多核處理器

Windows 9x不支援SATA AHCI(Windows 2000及Windows XP預設也不支援SATA AHCI,需要安裝驅動程式,較為麻煩),或USB隨身碟(Windows Me除外,Windows 98需要安裝USB隨身碟的驅動程式),但出現為數眾多針對Windows 98/Me驅動程式的SATA-I控制器。對Windows 98/Me的硬體驅動程式支援自2005年逐漸減少,特別是主機板晶片組和顯示卡的驅動程式。

早期的Windows 95不支援USBAGP。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副本並切換到保護模式。一旦在保護模式下,虛擬裝置驅動程式(VxD)將傳送所有MS-DOS的狀態資訊到32位元檔案系統管理器,並關閉MS-DOS。這些VxD允許Windows 9x直接與硬體資源互動,就像提供了底層功能,譬如32位元硬碟訪問及主記憶體管理。接下來的檔案系統操作將會轉送到32位元檔案系統管理器。

Windows Me中,WIN.COM不再在啟動過程中被執行了,而直接從IO.SYS執行VMM32.VXD。MS-DOS(作為16位元舊式裝置驅動層)的第二角色是用來在Windows中執行DOS程式的向下相容工具。許多MS-DOS程式及裝置驅動器都以底層的方式與DOS互動,例如:修補低階別BIOS中斷,譬如INT 13H(底層硬碟I/O中斷)。當一程式發出一INT 21H呼叫以訪問MS-DOS,這呼叫將先轉到32位元檔案系統管理器。管理器將試圖偵查這一類的修補。若查到此程式嘗試掛接到DOS,管理器將跳轉到16位元程式碼以讓此掛接得以進行。一個被稱做IFSMGR.SYS的16位元驅動程式將事前被CONFIG.SYS載入以在其它驅動及應用程式之前被掛接到MS-DOS;爾後從16位元程式碼跳轉到32位元程式碼,當此DOS程式執行完畢,以讓32位元檔案系統管理器繼續工作。據一Windows開發者Raymond Chen,「此MS-DOS乃一精心圈套。任何16位元驅動及應用程式將修補或掛接到一個它們以為是真正MS-DOS的東東,但實乃一圈套爾。當32位元檔案系統管理器偵查到有人上鉤,它必讓此圈套呱呱大叫。(MS-DOS was just an extremely elaborate decoy. Any 16-bit drivers and programs would patch or hook what they thought was the real MS-DOS, but which was in reality just a decoy. If the 32-bit file system manager detected that somebody bought the decoy, it told the decoy to quack.)」[9]

MS-DOS虛擬機器制

編輯

在Windows 9x中,MS-DOS應用程式執行在「虛擬DOS機」(Virtual DOS Machine)中。

MS-DOS模式

編輯

Windows 95及Windows 98也提供對DOS應用程式的回歸支援以能夠啟動進入原始「DOS模式」(MS-DOS可以在不啟動Windows引導,且不使用保護模式)。通過Windows 9x的主記憶體管理器及其它的「後DOS」改進,整體系統的效能及功能得到改善。這異於在基於Windows NT作業系統中所使的仿真手段。一些非常老舊的應用程式或硬體都需要「DOS模式」。

使用命令列模式,在不進入GUI時,能夠修復特定的系統錯誤。例如,如果一病毒活躍於GUI模式中並鎖住自身的檔案,那麼它通常可在DOS模式中通過刪除病毒檔案被安全去除。

同樣的,損壞的登錄檔檔案、系統檔案或啟動檔案都可用命令列來恢復。在命令提示字元中鍵入'WIN' <enter>可從DOS模式中啟動Windows 95及Windows 98。但Windows 2000中的恢復控制台(Recovery Console)也扮演著類似的角色。

由於DOS沒有多工處理機制,基於DOS的Windows版本(如9x)缺少檔案系統安全機制,譬如檔案權限。再者,若使用者使用16位元DOS驅動程式,Windows可能變得不穩定。在Windows 9x系列中就頻繁發生硬碟錯誤。

使用者介面

編輯

使用者可通過命令列介面(CLI)或圖形化使用者介面(GUI)來控制一個基於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系統互動。

參見

編輯

參考資料

編輯
  1. ^ Windows Millennium Edition. [2010-05-10]. (原始內容存檔於2010-06-19). 
  2. ^ Windows OS Version Numbers. [2010-05-10]. (原始內容存檔於2022-04-23). 
  3. ^ Chronology of Microsoft Windows Operating Systems. [2010-05-10]. (原始內容存檔於2009-09-09). 
  4. ^ Windows 98: Stable and fast, as well as "new and improved". [2010-05-10]. (原始內容存檔於2010-01-11). 
  5. ^ Dan Tynan. The 25 Worst Tech Products of All Time. PC World. 26 May 2006 [2010-05-11]. (原始內容存檔於2007-10-11). 
  6. ^ No support for Windows 98 in Mozilla Firefox. [2010-05-10]. (原始內容存檔於2010-03-29). 
  7. ^ Windows XP Chat Transcript. [2010-05-10]. (原始內容存檔於2010-08-02). 
  8. ^ FAT32 or NTFS: Making the choice - Theeldergeek.com. [2010-05-10]. (原始內容存檔於2010-05-16). 
  9. ^ Raymond Chen. What was the role of MS-DOS in Windows 95?. [2010-05-10]. (原始內容存檔於2010-05-24).