回 帖 发 新 帖 刷新版面

主题:【原创】操作系统(一)

    这几天一直在看《操作系统基础教程》(第五版) operation systems: A Systematic View Fifth Edition   老美William S. Davis写的,陈向群,译。

    首先要说一下,我是菜鸟。看这本书的目的:了解操作系统的底层机制,为windows编程打下基础,所以此贴多数观点、概念引用本书原句,算是我的读书笔记吧。希望大家多提意见。

    书还不错,和国内一般教程不太一样,主要是注重关键字的解释,语言准确、简洁。很好,容易理解。

    好了,废话不说,开始学习。(以下红色字代表所需要理解的关键字,蓝色字代表一般关键字)
────────────────────────────────────────────────
    操作系统对于我们来说很重要(废话),在没有操作系统的裸机上,我们将无法通过键盘键入字符;不能从屏幕看到反馈信息;甚至不能启动一个应用程序。所以我们在没有操作系统的情况下无法与计算机直接通信。

    操作系统:是一些存在于应用程序与硬件之间的系统程序的集合,是计算机硬件与软件之间的接口。所以一般软件都要在操作系统的控制下运行,一定要通过操作系统来使用硬件资源,同时需要遵守操作系统的所制定的规则。

    操作系统所提供的功能:处理器与外部设备之间的交换信息,接收并执行用户指令(装入程序、复制文件、创建目录等)。这些工作看起来很容易,但实现起来就不是那么容易。而且这些功能对所有应用程序都是通用,所以没有必要在每个程序中重复实现这些功能的代码。由于所有应用软件都是通过操作系统来使用硬件,也就使操作系统成了各种共享例程理想的储藏处。
                            ┌─────┐
                            │  用  户  │
                            └─────┘
                               ↓    ↑  
                           ┌──────┐
                           │  应用程序  │
                           └──────┘
                               ↓    ↑
                           ┌──────┐
                           │  操作系统  │
                           └──────┘
                               ↓    ↑
                            ┌─────┐
                            │  硬  件  │
                            └─────┘
    而从硬件层面来说,不同厂商所制造的计算机在外部设备和其他设备进行通信时,使用的规则是不同的。这就使得在一台机器上编写的程序在另一计算机上就无法运行。但如果两台不同计算机支持同一种操作系统,就可能运行相同的应用程序。对于应用程序来说,统一了控制硬件的操作系统无疑成为一个稳定的平台。
────────────────────────────────────────────────
    现代操作系统的组成
                             ┌─────┐
                             │ 用户接口 │
                             │  shell   │
                             └──┬──┘
                                   │
       ┌────────┬────┴────┬────────┐
┌──┴──┐    ┌──┴──┐      ┌──┴──┐    ┌──┴──┐
│  设  备  │    │  文  件  │      │  内  存  │    │  处理器  │
│  管  理  │    │  管  理  │      │  管  理  │    │  管  理  │
└─────┘    └─────┘      └─────┘    └─────┘
    用户接口:又称shell,外壳程序,是用户及应用程序与操作系统进行通信,并且要求系统提供服务的工具。microsoft windows和linux X-windows都是图形界面很好的例子。

    文件管理,又称文件系统,由实现创建,删除,修改和按名存取文件的一系列程序组成。设备管理负责控制系统与外部设备(如键盘、显示器、打印机和辅助存储设备)之间的信息交换。

    内存管理负责管理计算机的主存资源(内存?),按照需要为应用程序分配数据交换空间,确保各个程序之间互不干扰。处理器管理负责有效地管理处理器的时间。
    
    操作系统的这些功能不是独立的,他们可以协同工作。例如读入一个文件,首先向shell发出命令来打开文件,然后文件系统接收文件名,并且找到文件在磁盘上的位置,设备管理使用这一位置,物理上读取文件,同时内存管理保证存储器中有足够的空间容纳该文件,而处理器管理负责支配处理器来完成I/O操作。
────────────────────────────────────────────────
    今天就写到这儿,有时间将继续写,文章很粗糙,请斑竹,高手指教。
    下一贴的内容是系统资源-硬件。

回复列表 (共15个回复)

沙发

支持原创!

板凳

谢谢斑竹支持。

3 楼

写的不错



4 楼

向你学习,向你致敬!!

5 楼

好象都是黑色的啊

6 楼

可能这里不支持html代码吧。

7 楼

文章写得不错,继续努力。不过第一个示意图,用户可不可以直接操作操作系统,通过操作系统去操作其它两个组件。

    

8 楼

这里把操作系统的shell也当成了应用程序
我们平时都在shell上去使用操作系统。很少有不通过shell的用户,很少很少。

9 楼

什么时间发下一贴呀,我等着看呀,
  还有就是要谢谢楼主了~~~~~~~~~~

10 楼

写的不错~~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册