操作系统的体系结构:
  虽然操作系统是一个接口,但是作为一个大的系统,它必须分化为许多小的模块来提高效率,不过不同的操作系统,一般结构也会有一些差异!
  一般来讲,操作系统可以分为以下几种结构:
  《1》整体结构,我们也称为单体结构,此时的操作系统内核,被做成一个大的内核,OS的全部功能都做进内核中,包括调度、文件系统、网络、设备驱动器、存储管理。比如设备驱动管理、资源分配、进程间通信、进程间切换管理、文件系统、存储管理、网络等。单体内核是指在一大块代码中实际包含了所有操作系统功能,并作为一个单一进程运行,具有地址空间。大部分UNIX(包括Linxu)系统都采用的单体内核,这种结构大,等价是笨拙而且难以理解,但是效率高,这种结构按照服务功能的思想设计。
  《2》分层结构,操作系统按照一定的功能分层,某个层次的模块只能往下调用,我们一个系统调用通过这种方式一层一层往下走,但是这种结构其实效率偏低,而且另外一方面分层其实并不是一件非常清晰的事情,当然这种分层的结构让操作系统的实现和设计变得很简单,按照资源管理的方式设计,拥有这种有序性让它变得可维护和可靠。
  《3》微内核结构,其实现在主要讨论的一般是整体结构和微内核结构,相比于大内核,微内核结构把操作系统分为小的,良好定义的模块,只有其中一个模块--微内核是运行在内核态下的,其他模块作为进程运行在用户态下,这样内核和其他的如驱动程序和服务器是分开的,不会因为某一个驱动或者服务器的bug导致整个系统的崩溃,这是大内核的不好,容易因为错误死掉,而且大而僵,小内核灵活,当然大内核直接调用某个过程服务相应的请求,而微内核得一层层往下走,陷入到内核,这点倒是和分层结构有点类似,但是分层结构本质还是大的内核,所以大的不规范但是可以快速执行,像美国国会和中国政府一样,各有各的优点,而且微内核现在很重要的一个思想是机制和策略分离,这样我们可以把机制做得更简单,把内核做得更小,对于用户来讲,我们可以改动系统的非内核部分,实现我们的策略。
  《4》所谓虚拟机,通过虚拟化软件,使得一个真实的系统表现为几个或一个不同的虚拟操作系统。