Skip to content

Architecture of computing system

本章所要探讨的是architecture of computing system,而不是寻常所说的computer architecture,一般computer architecture所指的是诸如Von Neumann architectureHarvard architecture等描述computer硬件的架构。本节所要描述的内容是从一个更加高的角度来看待computing system ,包括最底层的hardware,operating system,application software。

正如Computer hardware中所描述的:

The progression from levels of "hardness" to "softness" in computer systems parallels a progression of layers of abstraction in computing.

A combination of hardware and software forms a usable computing system.

现代 computing system 的整体架构的发展是受到计算机科学领域的layers of abstraction思想(分层思想)的影响的,一个computing system 可以认为由两层构成:

  • software
  • hardware

Instruction set是software和hardware之间的接口。

现代computing system 的运行是离不开operating system的,operating system所属的是software这一层,下面对operating system来进行更加精细的分层。

Architecture of operating system

Operating system中给出了一个典型的operating system的architecture如下:

Operating systems
Operating system placement.svg

上图中User表示的是用户,不属于OS中,后面的讨论会将其忽视。

Advanced Programming in the UNIX® Environment, Third Edition的1.2 UNIX Architecture节中给出了Architecture of the UNIX operating system,如下:

img

上述两个架构图都大体展示OS的architecture,两者都各有利弊,图一包含了hardware,但是忽视了各层之间的interface。图二则正好相反。所以将两者结合起来则正好,后面会按照图二中的表示方式,将interface也看做是一层。充当interface的layer作为它的上下两层之间的interface。

upper layer layer role
software application
system calls&library routines interface
kernel
Instruction set interface
hardware hardware

上述表格,在后面会进行不断地丰富和扩充,在下面章节中会包含对它的扩充和对应的图形展示:

  • Kernel\Kernel.md#Monolithic kernel章节

  • Kernel\Architecture.md#Kernel space and user space章节

  • Operating-system\index.md#Concrete OS structure章节

通过architecture来分析OS的作用

通过上述的OS的architecture,我们能够更加深刻地了解OS的作用了,下面是摘抄自Understanding.The.Linux.kernel.3rd.Edition的Chapter 1.4. Basic Operating System Concepts中关于OS的作用的描述:

The operating system must fulfill two main objectives:

1) Interact with the hardware components, servicing all low-level programmable elements included in the hardware platform.

2) Provide an execution environment to the applications that run on the computer system (the so-called user programs).

这两个objective(其实就是OS的作用、使命)相当于两条线,后面我们将沿着这两条线深入对linux OS的学习。

我们可以进一步简化:OS管理着hardware和process,它作为两者之间的桥梁。

总结

上面我使用了**层次化的结构**来描述computing system的架构,至此,已经建立了operating system的整体architecture(model)。