(转载)《Three easy pieces 》虚拟化部分整体介绍

转载自知乎:https://zhuanlan.zhihu.com/p/37917910

一个程序在运行的时候发生了什么呢?

其实只是一些非常简单的事情:运行指令。处理器从内存中取出指令,译码然后执行。这条指令执行完毕后就又去执行新的指令,一直这样继续下去,直到程序执行完毕。

这里,我们所描绘的就是计算机的基本模型-冯诺依曼模型。听起来很简单不是吗?但是在这个课堂上,我们将学习程序在运行的时候,其他的一些不一样的知识,这些知识能够让系统更加的好用。

有一个软件,它负责让你更容易的运行程序(甚至可以让你在同一时间运行多个程序),允许程序可以共享内存,和硬件交互等等功能。这个软件就是操作系统,它负责让系统高效的运行并且遵循简单易用的惯例。

OS能够实现这些功能首先依靠的就是虚拟化技术。OS将物理的资源(比如处理器,内存,硬盘)转换为更加通用,有效和易于使用的虚拟化的形式。因此我们有些时候称os为虚拟机(虚拟机的概念很宽泛,大家如果要深入了解可以阅读下相关的书籍)。

当然为了让用户能够和os通信,OS提供了一些接口(APIs)供调用。一个常见的OS,会有上百个System calls可以供应用调用。我们有的时候也称OS提供了一个standard library 给应用。

OS涉及的一些目标,以这些为标准我们可以抓住OS设计的核心:

1.最基本的目标是建立一些抽象,使系统可以易于使用。

2.OS要能够高效的运行。不能让OS提供的服务调用起来很慢。

3.在不同的应用间提供保护,可以互不影响。

4.OS要是高可靠的。

5.还有些其他的,比如电源的管理,系统的安全等等。并且根据Os不同的用途,实现也会有差异。

吴海波:虚拟化(1):进程概述(The Process)

吴海波:虚拟化(2):程序在限制环境执行

吴海波:虚拟化(3):os调度策略

吴海波:虚拟化(4):地址空间概述

吴海波:虚拟化(5):地址翻译

吴海波:虚拟化(6):分段

吴海波:虚拟化(7)-空闲内存管理

吴海波:虚拟化(8)-分页概述

吴海波:虚拟化(9)-更快的地址翻译(TLB)

吴海波:虚拟化(10)-更小的页表

原文地址:https://www.cnblogs.com/kongweisi/p/15162458.html