Unix has a architecture which looks like concentric rings, Windows has a rectangular architecture. Why is that so? Any specific reason for this kind of difference?
-
8Probably just the preference of the person writing the documentation – Anthon Oct 31 '13 at 05:50
-
1Windows probably used rectangles b/c Unix was already using rings! – slm Oct 31 '13 at 05:54
2 Answers
The notion of multiple hierarchical protection domains, often called protection rings was introduced by the Multics operating system. Whereas original Multics system had eight distinct rings, many modern systems have fewer. Another difference is that in Multics, ring transitions happen in software, whereas many modern CPU architectures include some form of hardware support for ring protection. For instance, the x86 architecture supports four protections rings:
Neither Windows NT, nor Unix, fully utilize the ring protection support of the x86 architecture, mainly in order to maintain compatibility with other hardware architectures. Both Windows and Linux use only two rings, with ring 0 corresponding to kernel mode and ring 3 to user mode. Generally speaking, it is often the case with monolithic kernel architectures, that the kernel, along with device drivers, run in a privileged, so-called supervisor mode, whereas applications run in a unprivileged user mode.

- 30,502
I suspect you are thinking of an architecture diagram which appared on Maurice J. Bach's book The Design of The UNIX Operating System.
You could easily draw a similar diagram for Windows.
I personally think that the diagram is wrong. That is, inside out.
Here is why: it puts the low level stuff like drivers into the interior of the system, and the high level applications on the outside. In fact, the very core of the diagram is hardware.
But in fact, the low level stuff should be regarded as being on the outside, because devices interface with the outside world.
But there are also problems with this.
In fact it is the "middle" code that belongs in the centre. This is why those block diagrams also make a lot of sense.For instance if we look at the direction in which function calls go, we would like the outside of the diagram to be where the tops of function call chains are.
Where is the top? Top is in the main
function of an application program. It's also in the start function of every thread ... and the interrupt dispatcher in the kernel is also at top routine. Either of these can call deeply into the kernel, from opposite directions, loosely speaking.
Layered block diagrams make the most sense. They show the opposite top levels, which are all "outside" in a sense, and make calls into the sandwich in the middle.
Anyway, the point is that all these diagrams can be used for either Unix or Windows and many other systems.

- 8,273