跳转到内容

软件工程师手册/操作系统/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。

华夏公益教科书