題 Windows仍然依賴於MS-DOS嗎?


我即將開始操作系統課程,作為Apple用戶,我對Windows操作系統的底層細節不是很熟悉。我想知道,MS DOS仍然使用Windows運行在頂部或現在只使用Windows作為操作系統嗎?我有點困惑,因為我讀到MS-DOS用於啟動的地方,但Windows內置了所有其他操作系統功能,因此用於所有其他操作系統操作......


71
2017-08-04 15:07


起源


結束了 討論 看起來很有趣 - user2284570
不,不是的。依賴於MS-DOS的最後一個消費者操作系統是Windows Me。 Windows XP,Vista,7和更高版本都是基於Windows NT體系結構構建的。 - bwDraco


答案:


當涉及到Microsoft Windows時,有兩個不同的譜系,當人們寫出關於另一個譜系的關於一個譜系的事情時,它並沒有幫助。

  • DOS +視窗 lineage包括DOS + Windows所有版本,最高版本為3.11,DOS + Windows 95,DOS + Windows 98和DOS + Windows Millennium Edition。它在Windows之上有Windows分層。整本書都是關於這一層次的主題而寫的,它是一些爭論的主題,尤其是因為在20世紀90年代早期到中期的很多人都希望世界相信DOS已經消失而Windows是操作系統。

139
2017-08-04 19:59



它只會變得更好。我還在教人們你可以在應用程序之間使用Alt-Tab。 。 。 - surfasb
對於Windows 95+來說,DOS是用作引導加載程序而不是操作系統層。即,除了在引導過程中,Windows 95+不會調用DOS服務。 - Winston Ewert
@Winston Ewert,據我所知Windows程序仍然依賴於Windows 95中的dos INT 21h。例如,INT 21h功能55h用於初始化,INT 21h功能4Ch用於終止。我無法回答98和ME。但是95確實如此。 - artifex
不過你 仍然 不能在explorer.exe下的Windows 7中使用保留的DOS設備名稱! - LawrenceC
人!你知道這個網站是如何運作的。如果你想 問問題 關於DOS模式,msdos.sys選項的含義,以及為什麼不能在Win32中使用多個名稱作為文件名,然後 使用 問問題 本頁面頂部的超鏈接。此外,通過閱讀那些人的問題開始 已經  有。 - JdeBP


另外,Windows 95並不完全是DOS上的GUI。在這裡閱讀更多:

http://blogs.msdn.com/b/oldnewthing/archive/2007/12/24/6849530.aspx


22
2017-08-04 16:27



我記得這一點,整個VxD接口和VMM切換器。這是一種在OS上向前推進的有趣方式,並且仍具有很多向後兼容性。 - Rich Homolka
Windows 95確實附帶了MS-DOS 7,並且可以使用DOS部分製作僅DOS的啟動盤並且有一些感覺就像MS-DOS 6的稍微破壞版本(但也有一些新的附加功能)特徵)。 - Randolf Richardson
這是最正確的答案:Windows自Windows 95以來就沒有依賴DOS。嚴格來說,一旦32位驅動程序接管,Windows 3.11就不需要DOS。但3.11並沒有帶啟動加載器;所以它需要DOS才能達到起點。 - Ian Boyd
該博客是一個非常好的閱讀,謝謝你的鏈接 - crasic


沒有。  所有具有“NT內核”的Windows版本更像是在DOS之上的GUI。使用NT,隨著Windows XP的推出變得特別普遍(Windows Vista和Windows 7也都使用NT內核), 消除了使用DOS作為底層操作系統的需要

32位版本的Windows仍然有DOS提示符,可以通過輸入來運行 command.com 在運行對話框中,它可以運行大多數舊的DOS程序。所有版本的Windows都有一個命令提示符,可用於運行批處理文件和類似DOS的命令(通常是用於與DOS樣式控制台交互的本機Windows應用程序)。 64位Windows無法運行DOS應用程序,因為它不支持16位進程。

您可能最好將命令提示符視為更像是可用於從命令行運行DOS程序和/或啟動Windows程序的專用應用程序。

注意:術語“DOS提示符”通常用於描述引入NT內核之前的“命令提示符”。雖然很多人今天仍然使用術語“DOS提示符”(因為它們使用它來運行許多相同的命令,最初稱為“DOS命令”,通常在DOS環境中可用),術語“命令”提示“在Windows的NT變種中技術上是正確的。


20
2017-08-04 15:14



Legacy(古老的,16位)DOS應用程序在NTVDM中運行,NTVDM在命令提示子系統中進行模擬。 NTVDM在64位Windows系統中不可用,因此您需要第三方仿真器來運行16位DOS應用程序,例如DOSBox或VirtualBox。 - afrazier
NTVDM在64位Windows中不可用的原因是因為它只是一個薄的包裝器,在運行代碼之前將CPU切換到16位模式。在64位模式下,CPU只能暫時切換到32位模式以運行32位代碼;沒有冷重啟,它無法運行16位代碼。 - Hello71
請注意:已從此帖子中刪除了評論。對於那些參與者:請保持文明,並記住應該延長討論時間 聊 只要有可能 - 對帖子的過多評論對其他訪問者來說變得非常嘈雜。 - DMA57361
由於人們繼續激烈爭論這篇文章,我們暫時將其鎖定。評論已被刪除。 - nhinkle♦
@ Hello71錯了。例如,在Linux中它可以。並且您可以在64位Linux中運行16位DOS和Win 3.1應用程序。 - Anixx


更像是蘭道夫的一個笨蛋,但他並不是唯一一個令人困惑的人 命令行界面 和 DOS 反复。

注意,很多[DOS]和[MS-DOS] 標籤 遭受同樣的錯誤:MS-DOS最初只有一個文本模式,一個名為的命令行界面 command.com+我們很多人的諾頓指揮官,以及帶有框架的本土文本模式窗口,用ansi.sys繪製,但不僅可以通過鍵盤控制,而且可以通過鼠標控制,但也可以使用箭頭鍵和熱鍵更容易控制。

然後建立了Windows 在DOS之上 (2.0,3.0,3.1,3.11),其中DOS-Box的圖標重新出現在windows中,作為windows內命令界面的名稱。

但是在Windows-NT和Windows-95或-98中MS-DOS被放棄了,但是命令解釋器, cmd.exe (cmd32.exe)仍然存在,具有相同或幾乎相同的語法和關鍵字。但這是一個在Windows內部運行的程序,與其他文本樣式的命令解釋器一樣,如BASIC,irb(Ruby),scala-repl,psql(Postgresql),sqlplus(oracle),bc,R,rhino等,等等,在幾個平台上運行。

調用這種MS-DOS風格是有誤導性的,因為DOS或MS-DOS不是最先提出它的那些。它更老了。

即使在Windows上,也不限於運行DOS命令 - 這是一種常見的做法 批處理文件 在啟動Windows程序之前,寫入是指定一些參數。例如,為Java程序設置CLASSPATH,JAVA_HOME,-Xmx之類的java參數等。

很多人認為命令行界面是一個 寡婦 過去 - 誰不知道用幾次擊鍵處理數千個文件的能力。他們也不知道wsh和monad。但是對於專業人士來說,Windows上的命令解釋器幾乎和Unix或Linux上一樣有用。它並不是眾所周知的,但它對許多管理員來說都是必不可少的。

甚至還有一個gnu-toolchain的端口,有一個sh.exe和sed,awk,bc,tail,rev,cat以及所有這些作為原生的win32應用程序。

也許你可以在cmd.exe下運行舊的DOS程序,但你不能在DOS模式下運行Windows程序,所以不要一直告訴人們,那個cmd.exe  DOS - 事實並非如此。事實並非如此 類似於DOS。你是什​​麼意思,是一個 interactive command-line program, 一個 command-line interface

  • DOS提示
  • DOS批處理文件
  • 類似DOS的命令
  • DOS風格的控制台
  • DOS應用程序

幾乎總是誤導 術語。這對於業餘愛好者來說可能是合適的,但是如果你希望你的觀眾能夠理解,你在談論什麼,你應該問自己:它是否僅限於特殊操作系統,對於DOS? CLI風格最好命名為'DOS風格'嗎?這在歷史上是否正確?你的觀眾是否完全了解DOS?這有助於理解嗎?那些程序真的在DOS上運行嗎?

你需要正確的表達方式,作為外科醫生的刀,以解釋複雜的事情。錯誤的表達會在觀眾的大腦中引發錯誤的印象。草率的表達比什麼都沒有。避免他們。使用 CLI 如果命令行界面很長,你可以輸入。

糾正SU,SE和其他方面的誤導性標籤。


5
2017-08-07 01:44



說得好。周圍有很多不好的術語。 - Milind R
在Win95和Win98中沒有cmd.exe。 - Anixx


在Windows NT系列(NT,2000,XP,2003,Vista,2008,7)中,它獨立於DOS。為了向後兼容,只有DOS模擬器。

然而,仍然存在一些限制,這是在NT早期與DOS兼容的結果。例如,您無法創建名為“CON”或“PRN”的文件或目錄,因為這些是保留名稱以表示DOS中的設備。


2
2017-08-08 19:19





實際上,現在Windows不再使用DOS了。通過Windows XP,Vista或Seven模擬提示DOS(或cmd)。 Windows從自己的資源啟動。


1
2017-08-04 15:12



-1:錯了。不是 to DOS (or cmd)。有一個命令解釋器,cmd.exe,但那不是DOS。 DOS也有一個命令解釋器,command.com,它在語法,關鍵字和用法上非常相似,但命令接口只是DOS的一部分;它不是DOS。 - user unknown
是的 console PE頭中的類型是Win32 / Win64子系統的一部分。它根本不是16位。 - user2284570