主题:【原创】操作系统(一)
这几天一直在看《操作系统基础教程》(第五版) operation systems: A Systematic View Fifth Edition 老美William S. Davis写的,陈向群,译。
首先要说一下,我是菜鸟。看这本书的目的:了解操作系统的底层机制,为windows编程打下基础,所以此贴多数观点、概念引用本书原句,算是我的读书笔记吧。希望大家多提意见。
书还不错,和国内一般教程不太一样,主要是注重关键字的解释,语言准确、简洁。很好,容易理解。
好了,废话不说,开始学习。(以下红色字代表所需要理解的关键字,蓝色字代表一般关键字)
────────────────────────────────────────────────
操作系统对于我们来说很重要(废话),在没有操作系统的裸机上,我们将无法通过键盘键入字符;不能从屏幕看到反馈信息;甚至不能启动一个应用程序。所以我们在没有操作系统的情况下无法与计算机直接通信。
操作系统:是一些存在于应用程序与硬件之间的系统程序的集合,是计算机硬件与软件之间的接口。所以一般软件都要在操作系统的控制下运行,一定要通过操作系统来使用硬件资源,同时需要遵守操作系统的所制定的规则。
操作系统所提供的功能:处理器与外部设备之间的交换信息,接收并执行用户指令(装入程序、复制文件、创建目录等)。这些工作看起来很容易,但实现起来就不是那么容易。而且这些功能对所有应用程序都是通用,所以没有必要在每个程序中重复实现这些功能的代码。由于所有应用软件都是通过操作系统来使用硬件,也就使操作系统成了各种共享例程理想的储藏处。
┌─────┐
│ 用 户 │
└─────┘
↓ ↑
┌──────┐
│ 应用程序 │
└──────┘
↓ ↑
┌──────┐
│ 操作系统 │
└──────┘
↓ ↑
┌─────┐
│ 硬 件 │
└─────┘
而从硬件层面来说,不同厂商所制造的计算机在外部设备和其他设备进行通信时,使用的规则是不同的。这就使得在一台机器上编写的程序在另一计算机上就无法运行。但如果两台不同计算机支持同一种操作系统,就可能运行相同的应用程序。对于应用程序来说,统一了控制硬件的操作系统无疑成为一个稳定的平台。
────────────────────────────────────────────────
现代操作系统的组成
┌─────┐
│ 用户接口 │
│ shell │
└──┬──┘
│
┌────────┬────┴────┬────────┐
┌──┴──┐ ┌──┴──┐ ┌──┴──┐ ┌──┴──┐
│ 设 备 │ │ 文 件 │ │ 内 存 │ │ 处理器 │
│ 管 理 │ │ 管 理 │ │ 管 理 │ │ 管 理 │
└─────┘ └─────┘ └─────┘ └─────┘
用户接口:又称shell,外壳程序,是用户及应用程序与操作系统进行通信,并且要求系统提供服务的工具。microsoft windows和linux X-windows都是图形界面很好的例子。
文件管理,又称文件系统,由实现创建,删除,修改和按名存取文件的一系列程序组成。设备管理负责控制系统与外部设备(如键盘、显示器、打印机和辅助存储设备)之间的信息交换。
内存管理负责管理计算机的主存资源(内存?),按照需要为应用程序分配数据交换空间,确保各个程序之间互不干扰。处理器管理负责有效地管理处理器的时间。
操作系统的这些功能不是独立的,他们可以协同工作。例如读入一个文件,首先向shell发出命令来打开文件,然后文件系统接收文件名,并且找到文件在磁盘上的位置,设备管理使用这一位置,物理上读取文件,同时内存管理保证存储器中有足够的空间容纳该文件,而处理器管理负责支配处理器来完成I/O操作。
────────────────────────────────────────────────
今天就写到这儿,有时间将继续写,文章很粗糙,请斑竹,高手指教。
下一贴的内容是系统资源-硬件。
首先要说一下,我是菜鸟。看这本书的目的:了解操作系统的底层机制,为windows编程打下基础,所以此贴多数观点、概念引用本书原句,算是我的读书笔记吧。希望大家多提意见。
书还不错,和国内一般教程不太一样,主要是注重关键字的解释,语言准确、简洁。很好,容易理解。
好了,废话不说,开始学习。(以下红色字代表所需要理解的关键字,蓝色字代表一般关键字)
────────────────────────────────────────────────
操作系统对于我们来说很重要(废话),在没有操作系统的裸机上,我们将无法通过键盘键入字符;不能从屏幕看到反馈信息;甚至不能启动一个应用程序。所以我们在没有操作系统的情况下无法与计算机直接通信。
操作系统:是一些存在于应用程序与硬件之间的系统程序的集合,是计算机硬件与软件之间的接口。所以一般软件都要在操作系统的控制下运行,一定要通过操作系统来使用硬件资源,同时需要遵守操作系统的所制定的规则。
操作系统所提供的功能:处理器与外部设备之间的交换信息,接收并执行用户指令(装入程序、复制文件、创建目录等)。这些工作看起来很容易,但实现起来就不是那么容易。而且这些功能对所有应用程序都是通用,所以没有必要在每个程序中重复实现这些功能的代码。由于所有应用软件都是通过操作系统来使用硬件,也就使操作系统成了各种共享例程理想的储藏处。
┌─────┐
│ 用 户 │
└─────┘
↓ ↑
┌──────┐
│ 应用程序 │
└──────┘
↓ ↑
┌──────┐
│ 操作系统 │
└──────┘
↓ ↑
┌─────┐
│ 硬 件 │
└─────┘
而从硬件层面来说,不同厂商所制造的计算机在外部设备和其他设备进行通信时,使用的规则是不同的。这就使得在一台机器上编写的程序在另一计算机上就无法运行。但如果两台不同计算机支持同一种操作系统,就可能运行相同的应用程序。对于应用程序来说,统一了控制硬件的操作系统无疑成为一个稳定的平台。
────────────────────────────────────────────────
现代操作系统的组成
┌─────┐
│ 用户接口 │
│ shell │
└──┬──┘
│
┌────────┬────┴────┬────────┐
┌──┴──┐ ┌──┴──┐ ┌──┴──┐ ┌──┴──┐
│ 设 备 │ │ 文 件 │ │ 内 存 │ │ 处理器 │
│ 管 理 │ │ 管 理 │ │ 管 理 │ │ 管 理 │
└─────┘ └─────┘ └─────┘ └─────┘
用户接口:又称shell,外壳程序,是用户及应用程序与操作系统进行通信,并且要求系统提供服务的工具。microsoft windows和linux X-windows都是图形界面很好的例子。
文件管理,又称文件系统,由实现创建,删除,修改和按名存取文件的一系列程序组成。设备管理负责控制系统与外部设备(如键盘、显示器、打印机和辅助存储设备)之间的信息交换。
内存管理负责管理计算机的主存资源(内存?),按照需要为应用程序分配数据交换空间,确保各个程序之间互不干扰。处理器管理负责有效地管理处理器的时间。
操作系统的这些功能不是独立的,他们可以协同工作。例如读入一个文件,首先向shell发出命令来打开文件,然后文件系统接收文件名,并且找到文件在磁盘上的位置,设备管理使用这一位置,物理上读取文件,同时内存管理保证存储器中有足够的空间容纳该文件,而处理器管理负责支配处理器来完成I/O操作。
────────────────────────────────────────────────
今天就写到这儿,有时间将继续写,文章很粗糙,请斑竹,高手指教。
下一贴的内容是系统资源-硬件。