本系列是读《操作系统导论》的读书总结。 本书作者是:Remzi H. Arpaci-Dusseau)和Andrea C. Arpaci-Dusseau,译者:王海鹏 本书链接 原作者主页 吐槽:本书的翻译水平实在是不敢恭维,但书绝对是好书,建议读的时候可以对照英文原版。 此外,本系列还参考了巨作《现代操作系统》
[toc]
chapter1 关于本书的话
第一章的内容比较少,作者只是用简单的语言介绍了3个大主题,这三个主题是本书的总体框架。 三大主题分别为:
- 虚拟化
- 并发
- 持久性
chapter2 操作系统介绍
- 理解程序运行会发生什么? 冯诺依曼体系下的计算模型,程序运行其实是做了:取址执行 所谓取址执行,实际就是处理器从内存种获取一条指令,对其解码,然后执行。
- 为什么要有操作系统? 简单说就是为了让程序易于运行,让程序可以共享内存,与设备交互。 我的理解是:OS是对硬件的抽象,使程序员或电脑使用者,不需要管底层的硬件如何实现。 就好比使用高级语言,就不需要理解机器语言。
- 操作系统的关键问题是什么?
关键问题就是如何将资源虚拟化(virtualization)。
- 什么是虚拟化?
虚拟化就是将物理资源转为通用、强大和易于使用的虚拟形式。
听起来有点不好理解,举个例子,学物理的时候,都会用到质点模型,这是一种抽象,虚拟化也是一种抽象。
有时候可以理解操作系统就是虚拟机。
2.1 虚拟化CPU
文中举了两个C语言的例子。 简单总结就是: 假设只要一个CPU,运行一个程序时,这个CPU运行这个程序。 当同时运行4个程序时,操作系统造成一种假象,让人以为4个CPU,使程序同时在运行,这就是虚拟化CPU. 这是不是就有意思了?
2.2 虚拟化内存
不要把内存想象的很复杂,内存就是一个字节数组,可以把他想成一个图书馆。 如果要在图书馆取书,你得有地址吧!取书就是读取内存,找到书就是写入(write)或更新(update)。 虚拟化内存通俗说,就是在同一个书的地址处,对于每个人得到的书时不同的,这就好像每个人都有自己的私人图书馆一样。 神奇吧!这就是虚拟化内存。 其实专业说:每个进程都访问自己的地址空间(address space),操作系统以地址空间为输入,通过每种映射(函数)关系,把地址空间转化为物理内存上。
2.3 并发
- 什么是虚拟化?
虚拟化就是将物理资源转为通用、强大和易于使用的虚拟形式。
听起来有点不好理解,举个例子,学物理的时候,都会用到质点模型,这是一种抽象,虚拟化也是一种抽象。
有时候可以理解操作系统就是虚拟机。
2.4 持久性(persistence)
要知道系统内存的数据很容易丢失,如果断电或系统崩溃,那数据就全没了。 故硬件使用I/O,将数据存放在硬盘驱动器(hard drive)中。 而管理磁盘的就是文件系统(file system)
2.5 设计目标
操作系统取得CPU、内存或磁盘等物理资源,并对它们进行虚拟化,处理一切并发的问题,且能持久地存储文件,从而使CPU、内存或磁盘安全。
历史
- 早期的操作系统,只是一些库
- 后来,给库提供了“保护”
- 进入多道程序时代-(操作系统不是一次运行一项作业,而是在大量作业中来回切换,提高CPU利用率)
- 摩登时代-PC兴起
- 补充:UNIX在操作系统举足轻重,它是由贝尔实验室开发的。
- 后来又名芬兰黑客Linus Torvalds,根据UNIX开发了自己的操作系统Linux。