初识操作系统

news/2024/12/14 20:47:24/

目录

1.操作系统是什么

2.为什么要有操作系统

3.操作系统的相关关系

1.驱动程序

2.系统调用接口

3.用户调用接口

4.用户程序

4.用具体的例子理解操作系统


 

 

 

 


1.操作系统是什么

 

5dff43df89834d61b1092a3f78e2da7c.jpeg

 

(1)操作系统是一组管理计算机硬件与软件资源的计算机软件程序 。

(2)它可以控制和管理整个计算机系统的运行,合理地组织和调度计算机的工作和资源的分配,提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。

(3)操作系统可以分为命令接口(比如Linux),程序接口和图形用户界面(比如Windows)等类型。

 

2.为什么要有操作系统

 

我们难道不可以直接使用资源吗?当然不行,这就像你去银行取钱,总不可能直接让你去金库拿钱吧!

(1)操作系统可以管理和控制计算机的硬件和软件资源,如处理器,内存,磁盘,网络等,提高计算机的性能和效率。如果没有操作系统,每个程序都要直接面向硬件进行操作,这样会很复杂和低效,而且可能会破坏硬件。

(2)操作系统可以提供给用户和其他软件方便的接口和环境,如命令行,图形用户界面,触摸等,让用户可以访便地使用计算机完成各种任务。如果没有操作系统,用户就要学习很多专业的知识,如数字电路,计算机组成原理等,才能操作计算机。

(3)操作系统可以提供一些经典的案例和思路,帮助程序员解决一些常见的问题,如多线程编程,网络编程,文件管理等。
总之,操作系统是一种介于硬件和用户之间的特殊的软件,它为计算机提供了更高层次的抽象和服务。

 

3.操作系统的相关关系

说了这么多,那操作系统到底是怎样管理计算机硬件与软件资源的呢?

 

 8ced38f8d90049f9aba91ab6e692bd44.webp

 

我们来一步步分析上面的结构

1.驱动程序

我们可以发现,操作系统并没有直接访问硬件,这是为什么?

(1)兼容性:不同的硬件设备可能有不同的接口和通信协议,如果操作系统要直接控制它们,就要了解每一种设备的细节。这样会增加操作系统的复杂度和维护成本。操作系统通过使用驱动程序,把硬件的细节封装起来,提供统一的接口给用户程序,这样可以提高操作系统和硬件的兼容性

(2)效率:操作系统要管理多个用户程序和多个硬件设备,如果直接控制硬件,就需要频繁地切换上下文和状态。这样会降低操作系统的效率和响应速度。操作系统通过使用中断、缓冲区、虚拟内存等技术,减少对硬件的直接访问,提高对硬件的利用率,这样可以提高操作系统和硬件的效率
 

这个时候就需要驱动程序出马了。

(1)驱动程序是一种可以使计算机和设备通信的特殊程序,相当于硬件的接口。操作系统只有通过这个接口,才能控制硬件设备的工作 。

(2)驱动程序将操作系统的指令和数据转化为硬件可以识别和执行的机器语言,或者将硬件的反馈转化为操作系统可以理解的信息

(3)驱动程序可以把硬件的细节封装起来,提供统一的接口给用户程序。这样可以提高安全性、兼容性和效率 。

 

2.系统调用接口

系统调用接口是操作系统提供给用户程序访问系统资源和服务的一种方式,它是用户态和内核态之间的桥梁。有了系统调用接口,用户程序就可以通过中断指令(如int 0x80)向操作系统发出请求,而无需直接操作硬件或者了解操作系统的内部实现细节。系统调用接口的作用有以下几点 :

(1)保护系统资源,防止用户程序对系统资源的滥用或破坏,提高系统的安全性和稳定性。


(2)提供方便的机制,使用户程序可以与操作系统进行交互,使用操作系统的功能和服务,如文件操作、进程管理、网络通信等。


(3)隐藏操作系统的复杂性,提供统一的抽象层,使用户程序不需要关心不同硬件平台或操作系统的差异,提高程序的可移植性和兼容性

 

3.用户调用接口

然而我们平时使用计算机的时候并没有直接使用系统调用接口,因为使用系统调用接口的学习成本很大,于是就有了用户调用接口。
 

9c7c71caf5c349ecbd90ab3093830c4a.png 

 

(1)用户调用接口是用户和系统之间进行交互和信息交换的媒介,它可以分为命令接口和程序接口两种。

(2)命令接口是普通用户与操作系统的接口,可以通过键盘命令、 图形界面使用操作系统的功能。

(3)程序接口是应用程序与操作系统的接口,可以通过系统功能调用来请求操作系统的服务,如文件操作、进程管理、网络通信等。

(4)用户调用接口使用户可以通过命令或程序来使用操作系统的功能和服务,而无需了解操作系统的内部实现细节,这样可以提高用户的效率和体验,也可以减少用户程序对系统资源的误用或破坏的风险

 

4.用户程序

还记得我们刚开始学编程,用printf函数打印的“Hello World”吗?printf函数就算是一个用户程序。

所以,用户程序可以用不同的编程语言来编写,不同的编程语言有不同的语法和风格,但最终都要被编译或解释成机器能够识别和执行的指令。用户程序通过用户调用接口或系统调用接口来与操作系统交互,利用操作系统提供的功能和服务来完成各种任务。我们平时使用的各种应用软件,如文本编辑器、浏览器、游戏等,都是由用户或厂商程序编写的,也都需要通过用户调用接口或系统调用接口来与操作系统交互。

比如我平时玩的游戏,也是一个用户程序

 

4.用具体的例子理解操作系统

我们用学校管理学生的例子来理解操作系统是如何管理硬件资源的。

在学校里,校长就是管理者,虽然我们平时都很少或者几乎没有见过校长,但是校长却可以很好的管理学生。这说明管理者和被管理者并没有直接进行沟通,校长是通过联系辅导员来管理学生的。如果说校长是操作系统,辅导员就是驱动程序,学生就是硬件。

辅导员会把学生的信息用各种指标描述,比如成绩,学分,年级等等,描述学生的过程就是把学生数据化的过程,而这些需要用一个东西组织关联起来,这时候我们就可以使用各种数据结构来组织数据了。

b01a55a1349d41ea8630a10fe59d089d.png

 

总结下来,管理分两步,首先描述管理对象的各种属性,然后再用各种数据结构把这些数据组织起来。

 

 

 


http://www.ppmy.cn/news/35520.html

相关文章

Springboot项目如何实现mybatis的流式查询

前言 mybatis的流式查询,有点冷门,实际用的场景比较少,但是在某些特殊场景下,却是十分有效的一个方法。很多人没有听说过,实际上是对mybatis没有太重视,对mybatis想法还停留一个dao接口对应着mapper里的一个…

代码质量提升,代码扫描 review 之 Codacy 工具使用

目录一、什么是Codacy二、GitHub 上使用 Codacy三、Codacy上导入GitHub项目一、什么是Codacy Codacy 是用于代码 review 检测(即代码审查)的工具,目前支持对40多种编程语言检测,如 c、c、c#、java 、python、javascript 等。 Codacy 可用于 GitHub 和 …

IDEA连接Linux服务器进行文件操作

IDEA连接Linux服务器进行文件操作 文章目录IDEA连接Linux服务器进行文件操作连接的作用和意义安装openssh开启openssh服务验证是否开启服务安装网络工具包查看虚拟机IP地址Idea连接Linux虚拟机打开配置页面配置SFTP配置SSH完成后出现的配置文件安装big data tools插件连接的作用…

30岁左右的项目经理必须具备的5种能力

30岁是职业生涯的分水岭,尤其是身负重任的项目经理,要承受越来越高的期待,也要承受越来越重的锅。 一、稳住甲方的能力 很多萌新项目经理,容易陷入对甲方爸爸的无限要求中,放弃原则的“跪舔”就意味着自乱阵脚&#…

Python满屏表白代码

目录 前言 爱心界面 无限弹窗 前言 人生苦短,我用Python!又是新的一周啦,本期博主给大家带来了一个全新的作品:满屏表白代码,无限弹窗版!快快收藏起来送给她吧~ 爱心界面 def Heart(): roottk.Tk…

2023最新ChatGPT整理的40道Java高级面试题

2023 年最火的就是 ChatGPT 了,很多同事使用他完成一些代码上的智能提示,也有人使用它发了财《「用ChatGPT年入百万!」各博主发布生财之道,网友:答辩搬运工》、《“躺着就能赚大钱”?ChatGPT火了,有人早就动起坏脑筋》等。 最近我也使用 ChatGPT 写技术文章了,比如:《…

基于ssm鲜花销售管理系统(程序+数据库+文档)023

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

常用的 IntelliJ IDEA 快捷键

以下是 30 个 IntelliJ IDEA 常用的快捷键: Ctrl Shift A:查找并执行任何操作Ctrl N:查找类Ctrl Shift N:查找文件Ctrl Alt Shift N:查找符号Ctrl E:最近打开的文件Ctrl Shift E:最…