為什麼以及如何在 Windows 作業系統的後續版本中取代 Autoexec.bat?

為什麼以及如何在 Windows 作業系統的後續版本中取代 Autoexec.bat?

我正在閱讀有關 MS-DOS 體系結構的文章,並遇到了類似的文件自動執行程式設定檔

自動執行程式一個批次 ( .bat) 文件,其中包含用於初始化路徑、環境變數、CWD、提示符號等的命令。設定檔)在作業系統啟動過程中自動執行(如果存在)。

自從,作業系統命令提示符大多數情況下彼此相同(或相似),我認為相同的過程也將在 Windows 作業系統的當前迭代中延續。

這似乎可以理解,因為當我們開始時,我們每次都已經處於特定的 CWD,在等cmd中指定了一組位置。path

但事實證明,視窗XP而後來的 Windows 作業系統版本則沒有這項功能。

所以我在想現在一切是如何初始化的,為什麼要初始化自動執行程式被刪除了?

答案1

Windows NT 是完全不同的作業系統,不依賴 DOS,因此它的所有後代(包括 Windows 2000,不僅是 XP 及更高版本)也不使用 DOS 內容,例如 AUTOEXEC.BAT。也就是說,有一個 AUTOEXEC.NT 用於%SystemRoot%\system32在 DOS 應用程式啟動時設定環境

Windows ME,儘管在 Windows 9x 系列中,也試圖擺脫 DOS。因此它只解析AUTOEXEC.BAT中的環境變量

答案2

CONFIG.SYS使用DEVICE=DEVICEHIGH=行設定各種選項並載入驅動程式。它是在 DOS 啟動時讀取的。

當DOS完成初始化後,它將啟動一個shell。這是由SHELL=CONFIG.SYS 中的行指定的,通常COMMAND.COM但不是必須如此。

COMMAND.COMAUTOEXEC.BAT將在使用開關啟動時運行/P- 這通常在行CONFIG.SYS COMSPEC=(例子)這意味著“永久”(它不是“子shell”)。開關/D可以抑制這種情況。

DOS 和其他 Microsoft 作業系統之間的差異可以追溯到 XP 之前。這可以追溯到 1993 年,當時 Windows 首次在 Windows NT 分支上運行;兩年後,Windows 95 面世。 9x 分支和 NT 分支在本質上都與 MS-DOS 不同 - 就 NT 而言,差異巨大且極其不同。

NT Windows 與 MS-DOS 有以下不同之處,作為差異的粗略概述:

  • 使用 CPU 的保護模式在內核和使用者空間之間建立屏障。
  • 除了 DOS 的原始且有限的 TSR 系統之外,期望多個程式運行並存取相同的磁碟、顯示器等。
  • 具有支援基於事件的程式設計的訊息傳遞系統,這是支援 GUI 滑鼠和視窗介面的輸入方法所必需的。
  • 具有需要用於建立視窗、小部件和修改顯示的 API(GDI 等)。
  • 期望程式進行系統呼叫以與所有設備通信,並且不允許直接存取硬體。
  • 最初,NT 並沒有提供大量可從 COMMAND.COM 取得的命令列工具或等效工具來完成作業系統中的任務。

因此,啟動過程是不同的,而且對於 Windows 的 NT 分支(包括 XP)來說,也是極為不同的。

維基百科有關於以下方面的好文章有關 Windows NT 初始化的詳細信息

9x Windows 更像是 MS-DOS 的多任務擴展,具有奇怪的機制將事物擴展到 32 位元。 9x 的啟動過程與 MS-DOS 有點相似,這是一個很好的描述。 Windows ME 是 Windows 9x 分支中的最後一個,之後 Microsoft 將 XP 作為基於 NT 的 Windows 的消費者版和企業版。

答案3

啟動由服務和啟動資料夾處理以啟動應用程式(請參閱任務管理器啟動標籤)。今天,DOS 的起源還沒有對應的東西。從 NT4 開始,服務甚至無需登入即可啟動。非常不一樣。

相關內容