初识操作系统

目录

一.操作系统的概念

二.正确理解"管理"

三.操作系统对硬件进行管理

四.系统调用接口

五.用户操作接口


一.操作系统的概念

操作系统是一款进行软硬件资源管理的软件

现在我们知道了操作系统的概念了,那么为什么要有操作系统呢?

操作系统将软硬件资源管理好,给用户提供良好(稳定,安全,易用,高效)的使用环境

二.正确理解"管理"

如何理解"管理"这个词呢?一个学校的管理者是校长,他管理着众多的学生,但身为被管理者的学生,平时基本都见不到校长,可能和我们打交道最多的就是辅导员,校长只负责在某些事物上拍板决策,下达命令。

由此可见,一个管理者只负责决策,并不直接和被管理的对象打交道,管理者只需知道被管理对象的相关数据,然后分析信息,做出决策即可。

我们得到一个重要结论,管理的本质不是管对象本身,而是管理对象的数据

如何管理数据呢?例如校长手上有所有学生的相关信息,姓名,性别,年龄,班级等等,我们发现所有的学生都有各自对应的信息,把每个人的信息放在一起,不就可以描述一个学生了吗?

为了方便管理所有学生信息,于是将它们按表格形式,一人对应一行,罗列出来。

所以管理数据要先描述,再组织

而C语言中的结构体,C++中的类,就是为了描述一个对象的所有属性,数据结构中的顺序表,链表等,就是为了将这些离散的数据组织在一起。

所以操作系统对软硬件进行管理,实质上就是通过结构体将所有软件或硬件的相关属性描述出来,然后通过链表,队列等数据结构将所有数据组织起来

总结起来就两句话**:管理的本质管理数据,要想管理数据就要先描述,再组织**

三.操作系统对硬件进行管理

操作系统和底层硬件之间还有一层驱动,什么是驱动呢?驱动通俗来说就是替操作系统跑腿的。

操作系统想要收集硬件的信息,于是它就安排对应的驱动程序去和硬件打交道,把信息收集回来。

操作系统想要对硬件进行操作,也是安排驱动去跑腿办事。

所以说,当你将一个u盘插进USB接口,能说u盘就是计算机的一部分吗?不能,只有u盘驱动程序访问到了u盘的信息,u盘这个硬件被操作系统纳入了管理,才能说u盘成为计算机的一部分。

四.系统调用接口

作为用户,我们对硬件进行操作,实际上是去访问操作系统,因为操作系统管理着所有硬件,有对应硬件的相关信息。那我们怎么访问操作系统呢?我们是要系统调用接口去访问的。系统调用接口相当于操作系统开的一个个小窗口,这样做的目的是防止用户"为所欲为"。

操作系统实际上是不信任用户的,如果让用户随意地直接访问操作系统里的数据,可能遭到破坏,所以才开了一个个的系统调用接口来限制用户的可操作空间,以达到保护操作系统的目的。系统调用接口也就是一个个函数,要想访问我操作系统,必须通过系统调用,按照规定传相应的参数,如果不按规矩来就将你拒之门外。

五.用户操作接口

让用户直接去使用系统调用接口难度还是不小,为此又设计了一层外壳程序,Windows系统的外壳程序就是我们熟悉的GUI图形化界面,例如双击鼠标左键,就可以打开一个程序。LInux系统中的外壳程序是Shell(命令行解释器),例如我输入一个ls指令,Shell就能对它进行解释,调用相应的系统调用接口。

故狭义上的操作系统指的是操作系统和系统调用接口,我们称之为操作系统内核

而广义上的操作系统就是操作系统内核加上Shell外壳

还有我们经常会使用C语言的printf函数,向显示器上打印字符,显示器也是硬件呀,我们向硬件写入内容,肯定是要访问操作系统的,要使用系统调用接口的。但printf函数是C语言标准库里的函数呀,哪来的什么系统调用呀。实际上,printf函数内部封装了对应的系统调用。

将系统调用接口,封装成各种各样好用的函数,打包形成库(lib),这样一来开发人员直接调用库函数就好了,从而提高开发效率。

相关推荐
花姐夫Jun2 分钟前
在 CentOS 8 系统上安装 Jenkins 的全过程
linux·centos·jenkins
地球资源数据云11 分钟前
全国30米分辨率逐年植被覆盖度(FVC)数据集
大数据·运维·服务器·数据库·均值算法
是店小二呀19 分钟前
【Linux】Linux开发利器:make与Makefile自动化构建详解
linux·运维·自动化
BUG 4041 小时前
LINUX--shell
linux·运维·服务器
菜鸟小白:长岛icetea1 小时前
Linux零基础速成篇一(理论+实操)
linux·运维·服务器
深海的鲸同学 luvi1 小时前
【HarmonyOS NEXT】hdc环境变量配置
linux·windows·harmonyos
dowhileprogramming2 小时前
Python 中的迭代器
linux·数据库·python
过过过呀Glik2 小时前
在 Ubuntu 服务器上添加和删除用户
linux·服务器·ubuntu
Tesseract_95274 小时前
ioctl回顾
linux
Java小白中的菜鸟4 小时前
centos7的磁盘扩容
linux·运维·服务器