軟體工程師手冊/作業系統/VMS
格式將在稍後新增。
VMS 是數字裝置公司 (DEC) 在 1978 年推出的作業系統,執行在他們的 VAX 小型機上。VAX 是成功 PDP-11 的升級版。它的處理器 (VAX-11/780) 支援五個不同的操作級別:1. PDP-11 模擬模式。在此模式下,處理器將在本地環境中執行 PDP-11 程式碼。2. 使用者模式。這是應用程式執行的模式。它們不能影響更高的級別、其他程序空間等。3. 管理模式。這是命令列介面 (CLI) 也稱為 shell 執行的級別。4. 執行模式。此模式提供對檔案和記錄管理系統的增強和更低級別的訪問。5. 核心模式。在此模式下,執行的程式碼可以完全訪問系統。
透過使處理器保護正在執行的程序的級別,真正的程序間安全性和緩衝區溢位利用成為不可能。
VAX-11/750 提供了相同功能的縮減版本。VAX-11/730 提供了更低的版本,最後 VAX 11-720 是最低階的。
在這一系列成功之後,DEC 釋出了 VAX-8600 系列(後來升級為包含 8650)。
DEC 第一個支援 VMS 的系統,沒有 PDP-11 模擬模式,是 8700/8800 系列,最終還有完整的 MicroVAXen 系列、VAX 工作站 (“VAXstations”) 等。
VMS 依賴於多個級別的訪問,以自動防止世界其他地方尚未遇到的漏洞。
VMS 使用帶有虛擬頁表的記憶體對映(現在在 Windows 2000 和 Windows XP 中使用),頁表條目 (“PTE”) 指示虛擬到物理頁的對映,狀態(已分頁出、已分頁入、有效、準備讀取或寫入等)以及當一個程序用完它被允許佔用的記憶體量(它的“工作集”)時,它會將它的記憶體放入磁碟上的交換檔案,這個過程稱為“交換”。
裝置驅動程式在 PDP-11 模擬時代很簡單,在 90 年代變成了兩層。具有多個物理層的驅動程式被分成“埠/類”驅動程式。類驅動程式是更高層的驅動程式,它實現了跨不同埠的公共功能。埠類驅動程式專門解決特定型別的埠。TTY 驅動程式就是這種情況,它被重新編碼為 CLASS(序列終端)驅動程式和 PORT 驅動程式(序列埠、telnet 埠、控制檯埠、透過 DEC 的 LAT 協議的埠等)。
雖然 VMS CLI (DCL,“數字命令語言”) 並非每個程序都支援多工處理,但由 David Kashtan 和 Kenneth Adelman 開發的一款軟體產品稱為“Eunice”,為 VMS 提供了一個替代 CLI (“shell”),它提供了 Unix 功能。管道、重定向、分叉等都在標準 shell 中可用。該產品被 Wollongong 集團收購。
VMS 是第一個主要的作業系統,在資源仍然可用時,實際上限制了其使用者和程序。這防止了由於缺乏資源而導致的意外拒絕服務,但也引發了許多關於資源最佳利用效率的討論。
VMS 於 1991 年移植到 Alpha 架構,DEC 進入了 64 位時代。他們很快從微軟那裡獲得了大量資金,因為他們發現 Windows/NT 中有一個 VMS4.0 核心等效項,這是最近離開 DEC 的工程師 Dave Cutler 的功勞。DEC 在 1998 年被康柏收購。2002 年,康柏與惠普合併。
到 2008 年,銀行、醫院和其他高度關鍵任務應用程式使用者每天都依賴於 OpenVMS。