初识操作系统

目录

一.操作系统的概念

二.正确理解“管理”

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

四.系统调用接口

五.用户操作接口


一.操作系统的概念

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

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

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

二.正确理解“管理”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

四.系统调用接口

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

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

五.用户操作接口

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/86556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

李宏毅hw-9:Explainable ML

——欲速则不达,我已经很幸运了,只要珍惜这份幸运就好了,不必患得患失,慢慢来。 ----查漏补缺: 1.关于这个os.listdir的使用 2.从‘num_文件名.jpg’中提取出数值: 3.slic图像分割标记函数的作用&#xf…

光电探测器怎么选

光电探测器,也称为PD(photodetector) 基本原理是,光信号进入光电探测器转换为电压信号,这个电压信号会很弱,微伏或者毫伏级别。 所以PD分为带放大和不带放大 带放大呢,是因为信号太弱&#xf…

Vue系列(二)之 基础语法上篇【插值,指令,过滤器,计算属性监听属性】以及购物车实现

目录 一. 插值 1.1 文本 1.2 原始HTML 1.3 属性 1.4 表达式 二. 指令 2.1 v-if/v-else-if/v-else指令 2.2 v-show指令 2.3 v-for指令 2.4 下拉框/复选框 2.5 动态参数 三. 过滤器 3.1 局部过滤器基本应用 3.2 局部过滤器串行使用 3.3 局部过滤器传参 3.4 全局过…

内存映射的注意事项

1.如果对mmap的返回值(ptr)做操作(ptr),munmap是否能够成功? 可以,但是不建议 2.如果open时O_RDONLY,mmap时prot参数指定PROT READPROT WRITE会怎样? 错误,返回MAP_FAILED open()函数中的权限建议和prot参数的权限保持…

GsonUtils和字符串

文章目录 1、GsonUtils2、String本身,可以加入日志信息3、 Json和Map转换4、Date转为Json字符串5、Json和List<T>转换6、 比较两个JSON字符串的不同7、 字符串填充&#xff1a;生成单据号时填充8、 String.format()的使用9、截断字符串10、splitisNotBlank 和 isNotEmpty…

QT学习之创建项目

1、添加快捷键到桌面 找到所在安装路径Qt5.14.1\Tools\QtCreator\bin添加至桌面 双击后打开 2、创建项目 点击下一步 再点击下一步 下一步 当前暂时选择32位&#xff0c;之后点击完成 3、进入编辑页面并运行 运行快捷键&#xff1a;CtrlR 运行界面点击按钮&#xff1a; 运行…

C# 如何使用windows服务做定时任务

在 C# 中&#xff0c;你可以使用 Windows 服务来创建定时任务。以下是创建定时任务的步骤&#xff1a; 创建一个新的 Windows 服务项目&#xff1a; 打开 Visual Studio。选择 “创建新项目”。在搜索框中搜索 “Windows 服务”。选择 “Windows 服务” 模板&#xff0c;并设置…

单臂路由的详细配置步骤

1、单臂路由概述 单臂路由&#xff08;router-on-a-stick&#xff09;是指在路由器的一个接口上通过配置子接口&#xff08;或“逻辑接口”&#xff0c;并不存在真正物理接口&#xff09;的方式&#xff0c;实现原来相互隔离的不同VLAN&#xff08;虚拟局域网&#xff09;之间…

C++笔记之引用折叠规则

C笔记之引用折叠规则 文章目录 C笔记之引用折叠规则1. 当两个左值引用结合在一起时&#xff0c;它们会折叠成一个左值引用。2. 当一个左值引用和一个右值引用结合在一起时&#xff0c;它们会折叠成一个左值引用。3. 当两个右值引用结合在一起时&#xff0c;它们也会折叠成一个右…

【网络协议】Http-上

Http请求结构&#xff1a; 结构图1&#xff1a; 实验解析请求报文&#xff1a; 1.在Edge浏览器上输入ip地址端口号文件资源&#xff0c;也就是下图中的120.XX.139.29:8888/A/B/c.html 2.我的程序接收到了一个没有有效载荷的http请求(呼应上面的结构图1)&#xff0c;如下 GET …

Python机器学习实战-特征重要性分析方法(1):排列重要性(附源码和实现效果)

实现功能 排列重要性 PermutationImportance&#xff1a;该方法会随机排列每个特征的值&#xff0c;然后监控模型性能下降的程度。如果获得了更大的下降意味着特征更重要 实现代码 from sklearn.datasets import load_breast_cancer from sklearn.ensemble import RandomFore…

C语言之字符函数字符串函数篇(2)

目录 字符串查找 strstr strstr的使用 strstr的模拟实现 分析 考虑点 代码 strt strtok的使用 循环改进 错误信息报告 strerror 错误码的错误信息 strerror的使用 perror 字符操作 字符分类函数 字符转化函数 今天我们接着讲字符串函数&#xff0c;也…

LuatOS-SOC接口文档(air780E)--crypto - 加解密和hash函数

crypto.md5(str) 计算md5值 参数 传入值类型 解释 string 需要计算的字符串 返回值 返回值类型 解释 string 计算得出的md5值的hex字符串 例子 -- 计算字符串"abc"的md5 log.info("md5", crypto.md5("abc"))crypto.hmac_md5(str, k…

balenaEtcher格式化的U盘恢复原来样子

今天用balenaEtcher烧录了U盘&#xff0c;刷机N1盒子openwrt, 刷完机结果发现自己的U盘电脑最后只有167M 想要恢复原来的64G以下是方法&#xff0c;使用win10系统 1、打开命令行cmd&#xff08;winr打开运行&#xff0c;在其中输入cmd就可以打开&#xff09;&#xff1b; 2…

C++QT day11

绘制时钟 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPaintEvent>//绘制事件类 #include <QDebug>//信息调试类 #include <QPainter>//画家类 #include <QTimer>//定时器类 #include <QTime> #include &…

Android---打开相机拍照

简单实现打开系统系统相机拍一张图片并显示在UI上&#xff0c;适用与个人主页头像的切换。 1. 添加权限。AndroidManifest.xml里添加使用相机的权限。 <uses-permission android:name"android.permission.CAMERA"/> 2. 布局。布局内容比较交单&#xff0c;一…

leetcode21合并两个有序链表

题目&#xff1a; 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输…

智慧农业农场小程序源码 智慧农场系统源码

智慧农业农场小程序源码 智慧农场系统源码 一、 智慧农场系统的组成 智慧农场系统一般包括传感器、控制器、数据采集与处理平台、应用软件等组成部分。其中, 传感器主要用于采集土壤温度、湿度、光照强度等环境参数,以及作物生长状态、水肥情况等生产信息。控制器则根据传感器…

一个关于 i++ 和 ++i 的面试题打趴了所有人

前言 都说大城市现在不好找工作&#xff0c;可小城市却也不好招人。 我们公司招了挺久都没招到&#xff0c;主管感到有些心累。 我提了点建议&#xff0c;是不是面试问的太深了&#xff0c;在这种小城市&#xff0c;能干活就行。 他说自己问的面试题都很浅显&#xff0c;如果答…