单体模块化设计,单体意味着各个模块之间是通过函数调用来实现访问的。
另一种是,能不能把内核设计的尽可能小,是的不同的功能,是外层一个模块的形式存在,而模块与模块之间不是通过函数调用紧耦合的方式呈现,而是通过类似消息传递的机制呢?松耦合的方式来实现,这样使得操作系统更加容易扩展,这个想法就是微内核架构操作系统设计,它的思想死锁,只在操作系统内核里面只放最基本的功能,比如说中断处理,消息传递,这些事放在内核完成的,像文件系统,内存管理、网络协议栈都是放在外围以进程的形式存在,是一种服务型的存在,服务和服务之间是通过内核的消息传递机制来进行通讯,这种松耦合架构,很灵活,但是性能不好。目前还是很少有采用微内核架构设计的,主要是性能还没法得到有效的解决。
另外还有一种虚拟机监控器,这种特点是,跑在传统OS下,虚拟出多个计算机系统,使得在一台物理计算机上可以虚拟出多台计算机系统,给上层的操作系统使用。我们前面介绍说,操作系统之下就是硬件,这里有了VM之后呢,操作系统之下是VMM,VMM之下才是硬件,它们之间有隔离。
那VMM到底是虚拟出来什么东西,其实它虚拟的是一台完整计算机,包含了CPU 内存 各种外设都有,跑在VM之上的OS,感知不到底下跑的是一个虚拟的VMM,它以为跑在一个物理的计算机上面。有了VMM之后呢,一台计算机可以变成多台计算机,
CPU越来越强,在一台计算机里面可以有多个CPU存在,一般应用根本用不完,硬件过剩。
充分发挥计算机资源的效率,这是VMM出现的重要原因。