人们经常指出,在 z/OS 中,每个用户都有自己的(虚拟)地址空间;人们说这是一件好事,我想这是与实模式相比。但在大多数现代系统中,我习惯于大多数进程(或者按 z/OS 的说法,应该是作业)都有自己的地址空间。乍一看,这种 Unix 方法似乎更安全。
话虽如此,我已经听到它声称z/OS 作业也各自拥有自己的地址空间,但我没有看到任何官方文档。当然,如果用户一次只能运行一个作业(我没有检查过),那么这肯定不是问题。(附言:传统上 z/OS 必须用于批处理,因此这可能是一个合理的假设。但是,现在是 2021 年,情况可能已经发生了变化,因此了解每个用户的作业限制也是有益的。)
答案1
您的第一段不清楚,因为它似乎是矛盾的。
在 IBM Z 上,您有硬件和操作系统。硬件具有一组功能,允许使用单独的地址空间,并且每个地址空间的虚拟存储都受到保护,以防止其他用户访问数据。有一些注意事项,因为 IBM Z 硬件使用存储保护密钥来进一步确定存储的保护方式。密钥的范围是 0 - 15(F),8 以下的密钥为操作系统保留。z/OS 使用此功能,以便问题状态(用户程序)在 z/OS 上的密钥 8 中运行。硬件还允许对存储进行保护,以便某些存储可被所有地址空间(通常是操作系统内存)读取,而某些存储受到提取保护,这意味着您必须拥有正确的密钥才能读取数据。总而言之,它是一套相当全面的功能。
在 z/OS 上,有些地址空间有自己的虚拟内存,这些虚拟内存是独立的,并且无法(以受控的方式)被其他进程访问。地址空间可以承载 JOB(由 JES 管理)或系统任务(启动任务),……每个地址空间中都可以有多个执行线程。
话虽如此,所有这些复杂性都是基于 z/OS 是一种不同于 Linux 的系统资源共享模型。Linux 锁定其内核并通过系统调用控制访问。这实际上使 z/OS 非常高效,但也是它的致命弱点,因为当事情变糟时,所有进程都会受到影响。
该平台在硬件和操作系统方面设计得相当安全,可以保护数据和访问。也就是说,操作系统(所有操作系统)都是由容易犯错的人编写的,任何一个都可能被黑客入侵。z/OS 可能更难,因此它不像 Linux 或 Windows 那样无处不在。