Unix 的架构看起来像同心环,Windows 的架构是矩形的。为什么会这样?造成这种差异的具体原因是什么?
答案1
多层次保护域的概念,通常称为保护环是由多路系统操作系统。最初的 Multics 系统有八个不同的环,而许多现代系统的环数更少。另一个区别是,在 Multics 中,环转换发生在软件中,而许多现代 CPU 架构包括某种形式的环保护硬件支持。例如,x86架构支持四个保护环:
无论是Windows NT,还是Unix,都没有充分利用x86架构的环保护支持,主要是为了保持与其他硬件架构的兼容性。两个都视窗和Linux仅使用两个环,其中环 0 对应于内核模式,环 3 对应于用户模式。一般来说,经常出现这样的情况单片内核架构,内核与设备驱动程序一起在特权(所谓的超级用户模式)下运行,而应用程序在非特权用户模式下运行。
答案2
我怀疑您正在考虑 Maurice J. Bach 书中出现的架构图UNIX操作系统的设计。
您可以轻松地为 Windows 绘制类似的图表。
我个人认为这个图是错误的。也就是由内而外。
原因如下:它将驱动程序等低级内容放入系统内部,而将高级应用程序放在外部。事实上,该图的核心是硬件。
但事实上,低层的东西应该被视为在外部,因为设备与外部世界交互。
但这也存在问题。
事实上,它是属于中心的“中间”代码。这就是为什么这些框图也很有意义。例如,如果我们查看函数调用的方向,我们希望图的外部是函数调用链的顶部所在的位置。
顶部在哪里?上面是main
一个应用程序的功能。它也在每个线程的启动函数中......并且内核中的中断调度程序也在顶级例程中。松散地说,其中任何一个都可以从相反的方向深入调用内核。
分层框图最有意义。他们展示了相反的顶层,从某种意义上来说,这些顶层都是“外部”的,并且对中间的三明治进行跟注。
无论如何,重点是所有这些图都可以用于 Unix 或 Windows 以及许多其他系统。