站在不同角度对操作系统的认识

目录

 

站在冯诺依曼角度,理解操作系统定位

站在管理角度,理解操作系统[先描述再组织]

站在应用者的角度,理解操作系统

 站在操作系统角度,理解系统调用接口

站在操作系统角度,理解操作系统外壳程序定位与作用(Linux shell)

 对比系统调用,理解库函数


站在冯诺依曼角度,理解操作系统定位

  冯诺伊曼(存储程序原理) 管理和控制计算机硬件与软件资源的计算机程序

 冯诺依曼体系结构包括以下几点:

(1)计算机由5部分组成,包括输入设备,输出设备,存储器(内存),CPU(运算器和控制器)。

(2)采用存储程序形式,即程序代码部分和数据部分在同一个内存中,数据和代码是没有区别的。

(3)以控制器为中心,I/O设备与存储器的数据交换都要经过运算器。

  (4)  数据以二进制的形式存储。

 

站在管理角度,理解操作系统[先描述再组织]

描述:管理软件的软件

组织:如何管理软件? 

操作系统是最基本的系统软件,它控制着计算机所有的资源并提供应用程序开发的接口

举个例子就像学校管理学生一样,通过收集学生的信息先描述起来,再组织起来管理。

 

站在应用者的角度,理解操作系统

从程序员角度看,操作系统是将程序员从复杂的硬件控制中解脱出来,并为软件开发者提供了一个虚拟机,从而能更方便的进行程序设计

从一般用户角度看,操作系统为他们提供了一个良好的交互界面,使得他们不必了解有关硬件和系统软件的细节,就能方便地使用计算机

 

 站在操作系统角度,理解系统调用接口

系统功能调用是操作系统提供给程序设计人员的一种服务。程序设计人员在编写程序时,可以利用系统调用来请求操作系统的服务。

 

站在操作系统角度,理解操作系统外壳程序定位与作用(Linux shell)

. 所谓“外壳”就是给可执行的文件加上一个外壳。用户执行的实际上是这个外壳的程序,而这个外壳程序负责把用户原来的程序在内存中解开压缩,并把控制权交还给解开后的真正的程序,由于一切工作都是在内存中运行,用户根本不知道也不需要知道其运行过程,并且对执行速度没有什么影响

在操作系统之上提供的一套命令解释程序叫做外壳程序(shell)

外壳程序是操作员与操作系统交互的界面,操作系统再负责完成与机器硬件的交互。

所以操作系统可成为机器硬件的外壳,shell命令解析程序可称为操作系统的外壳。

 对比系统调用,理解库函数

库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分。
函数库调用是语言或应用程序的一部分,系统调用操作系统的一部分。
用户应用程序访问并使用内核所提供的各种服务的途径即是系统调用。在内核和用户应用程序相交界的地方,内核提供了一组系统调用接口,通过这组接口,应用程序可以访问系统硬件和各种操作系统资源。

1.系统调用是为了方便应用使用操作系统的接口,而库函数是为了方便人们编写应用程序而引出的,比如你自己编写一个函数其实也可以说就是一个库函数。

2.系统调用可以理解为内核提供给我们在用户态用的接口函数,可以认为是某种内核的库函数。

库函数与系统调用在功能上相互补充:

 如进程间通信资源的管理,进程控制等功能与平台特性和内核息息相关,必须由系统调用来实现。

文件 I/O操作等各平台都具有的共通功能一般采用库函数,也便于跨平台移植。

某些情况下,库函数与系统调用也有交集: 

如库函数中的I/O操作的内部实现依然需要调用系统的I/O方能实现。

主要区别:

所有 C 函数库是相同的,而各个操作系统的系统调用是不同的。

函数库调用是调用函数库中的一个程序,而系统调用是调用系统内核的服务。

函数库调用是与用户程序相联系,而系统调用是操作系统的一个进入点

函数库调用是在用户地址空间执行,而系统调用是在内核地址空间执行

函数库调用的运行时间属于「用户」时间,而系统调用的运行时间属于「系统」时间

函数库调用属于过程调用,开销较小,而系统调用需要切换到内核上下文环境然后切换回来,开销较大

 

你可能感兴趣的:(操作系统)