假如當年微軟繼續開發DOS?
“DOS”只是一段時間內電腦操作系統流行的商品名稱,并不跟特定的技術特性掛鉤。
DOS名稱的來源是由于其提供了便利的磁盤(Disk)訪問功能,這個名稱最早使用在DOS/360上,用于IBM 360大型機,其對應的是用于磁帶的TOS(Tape Operation System),跟使用了什么文件系統無關。DOS/360的后代一致延續至今,現在叫IBM z/VSE,用在IBM z系列大型機上。
IBM 2311硬盤驅動器,使用可拆卸的硬盤包(Disk Pack)
在微軟買來西雅圖電腦(Seattle Computer Products)的86-DOS,并發展出MS-DOS和PC-DOS前后,由于軟驅開始變得廉價(沃茲的大功勞),逐漸取代磁帶在微電腦系統中充當最主要的外存,整個行業涌現出一大批以“DOS”命名的操作系統。
Tandy就有用于TRS-80的TRSDOS,蘋果有用于Apple II的Apple DOS,Commodore有用于Commodore PET的CBM-DOS,Atari也有用戶Atari 400/800的Atari DOS,這些DOS都出現于微軟的DOS之前。
在IBM PC-DOS出現之后,Commodore給Amiga做了AmigaDOS,蘋果給Apple II又開發了ProDOS,Amstrad給CPC 464開發了AMSDOS。
雖然在70年代末到80年代中期這段時間里出現了許多“DOS”,但技術上往往是南轅北轍,即使是同一個廠牌的“DOS”也可能是完全不同的兩種系統,最典型的就是蘋果的Apple DOS和ProDOS。ProDOS是在Apple III的SOS(Sophisticated Operating System - 尖端操作系統)的基礎上開發的,與之前在Apple II電腦上流行的Apple DOS并不兼容。
微軟繼續開發的DOS呢?叫OS/2,和后來的Windows NT
從DOS到Windows NT的出現,并非是跳躍式的,而是漸進的,畢竟羅馬也不是一天建成的不是?
1986微軟曾經開發過一款支持多任務的MS-DOS 4.0,但是并沒有正式發布,這個版本的MS-DOS除了支持多任務切換之外,還支持Windows中所使用的New Executable可執行文件格式。
圖片來自:Multitasking MS-DOS 4.0 Lives:http://www.os2museum.com/wp/multitasking-ms-dos-4-0-lives/
1985年開始,微軟和IBM開始聯合開發一款新的操作系統,叫CP-DOS,ADOS,或CP/DOS,版本號是5.0,在一些文本中這款系統被稱作DOS5。
圖片來自:Before OS/2 Was OS/2:
http://www.os2museum.com/wp/before-os2-was-os2/
這篇文章里提到了IBMBIO.COM(等同于MS-DOS的IO.SYS)后來改名為OS2LDR,IBMDOS.COM(MSDOS.SYS)后來改名為OS2KRNL,是不是很熟悉?
這不就是NTLDR和NSOSKRNL嗎?!
1987年4月,CP/DOS發布的時候就改名叫OS/2了,之所以要這么改名是因為IBM在同一時間發布了PS/2(Personal System/2),PS/2作為IBM新一代的個人電腦標準,引入了很多影響深遠的技術,比如1.44M 3.5寸小軟驅,16550 UART串口,72線內存,以及直到今天仍然在許多新電腦上看到的VGA接口和小圓口鍵盤鼠標。在IBM當年的藍圖中,未來的IBM PC兼容機的世界是屬于運行著OS/2的PS/2的。
圖片來自:OS/2 1.2 and 1.3:
http://www.os2museum.com/wp/os2-history/os2-1-2-and-1-3/
但是微軟卻和IBM的利益并不一致,IBM希望OS/2能夠推動自家硬件的銷售,而微軟則更重視他們在PC兼容機市場里的大熱門Windows,最終微軟開發中的OS/2 3.0以Windows NT的新名字出現在市場上,結束了和IBM的合作。
所以說,微軟繼續開發的DOS,就是OS/2,而微軟繼續開發的OS/2,就是Windows NT。
有說法提到NT內核是重新開發的,所以NT不是OS/2,但事實的情況是NT是微軟為“下一代”OS/2(OS/2 3.0)的開發的新內核,只是后來和IBM就OS/2方向上的分歧,讓微軟沒有繼續使用OS/2作為商品名稱。
1991年2月18號的《InfoWorld》中這篇文章中提到“如果用戶對OS/2接受程度不高,微軟將會使用OS/2 3.0中的NT內核和Windows API構建“高級Windows”。
1991年5月20號的《InfoWorld》提到OS/2 3.0將會同時提供Windows 32,16位OS/2和32位OS/2 API——通過NT內核提供對這些API的支持。
1991年7月15號的新聞……Windows NT出現了,之前提到的OS/2 3.0將在NT內核上提供OS/2 API的承諾被微軟收回,OS/2 3.0成了“高級Windows”,也就是Windows NT。
上面的文章中提到“IBM和蘋果的合作刺激微軟的新動向”是怎么回事呢?回到當期的頭版——原來是蘋果將要使用IBM的PowerPC處理器生產新款Macintosh了。
注:在OS/2推出之后,微軟將DOS 3.3的改進版本以DOS 4.0(最初叫DOS 3.4)發布,又在1991年發布了DOS 5.0,后來Windows 9x和Windows Me一直依賴DOS啟動和提供對16位驅動程序的支持,直到“基于NT技術構建”的Windows XP發布,比爾蓋茨宣布“Today it really is actually the end of the MS-DOS era”,DOS才正式結束其使命。
參考資料:What was the role of MS-DOS in Windows 95?
https://blogs.msdn.microsoft.com/oldnewthing/20071224-00/?p=24063