现在的位置: 首页 > 综合 > 正文

Linux下C基础编程—-系统模型

2018年01月19日 ⁄ 综合 ⁄ 共 644字 ⁄ 字号 评论关闭

我们已经知道Linux系统是一个多任务多用户的操作系统。在这个系统中,有多个用户同时运行多个程序,当然也可能访问多个设备。下面我们用模型来表示一下这个情况。如下


这里有许多的设备(比如显示器、打印机等),他们可以随意的连接到不同的程序。也坑能被不同的用户不同时间访问。看起来这有点乱,。确实是这样的。操作系统是不允许这样随意的访问和连接,所以他采用了一种机制(以后说明,先记住好了。嘿嘿)。

那么Linux操作系统在我们日常中扮演什么角色呢?或者说他的职责是什么呢?先来说说这2个概念:系统空间和用户空间。

其实,操作系统也是程序,和普通程序一样,也运行在内存中、同时他又是一个特殊的程序,他能把普通程序个其他其他程序或者设备连接起来。所有的程序必须在内存空间中才能运行。所以我们定义:用来容纳操作系统的空间叫做系统空间(注意:现在这个定义还不完善,先这么理解着,以后慢慢说)。容纳应用程序的空间我们就叫他用户空间。有个这2个概念,我们再来看现在进击的操作系统模型

但是现在又出现一个新的问题,就是操作系统怎么来解决用户对设备的访问呢?请看下面的图:

这里就好明白了。原来我们的LInux操作系统是这样处理问题的:程序要想访问设备,先得通过内核。所以只有内核才能直接管理设备。举例子来说。我们的程序要想从键盘得到数据,必须想内核发送请求。如果要在显示器上显示结果。也是要通过内核的。所以,程序中所有对设备的操作都是利用内核来完成的。

上面的就是我第一次介绍的关于系统模型的介绍,请大家指正不足和错误。

抱歉!评论已关闭.