【Linux初阶】操作系统概念与定位 | 操作系统管理硬件方法、系统调用和库函数概念

news/2024/5/5 0:24:47/文章来源:https://blog.csdn.net/Captain_ldx/article/details/127931904

 🌟hello,各位读者大大们你们好呀🌟

🍭🍭系列专栏:【Linux初阶】

✒️✒️本篇内容:操作系统的基础概念、设计OS的目的,操作系统的定位,操作系统管理硬件方法,系统调用和库函数概念

🚢🚢作者简介:计算机海洋的新进船长一枚,请多多指教( •̀֊•́ ) ̖́-

📡📡同期Linux工具文章:【Linux初阶】认识冯诺依曼结构​​​​​​​

目录

一、操作系统概念

二、设计OS的目的

三、操作系统定位

四、计算机管理硬件的方法

五、系统调用和库函数概念


一、操作系统概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。实际上,操作系统是一个对软硬件资源管理的软件

笼统的理解,操作系统包括:

  • 内核(进程管理,内存管理,文件管理,驱动管理)
  • 其他程序(例如函数库,shell程序等等) 

二、设计OS的目的

  • 与硬件交互,管理所有的软硬件资源 【向下】
  • 为用户程序(应用程序)提供一个良好的执行环境 【向上】

三、操作系统定位

在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件

如何理解 "管理"?我们通过下面的例子来理解一下

在我们的生活中,一个正常的组织体系(学校等)包括:管理者 、被管理者(执行者)

我们可以把校长比作管理者,辅导员和学生比作被管理者,在学校我们与校长见面的机会少之又少,那么校长又是怎么完成学生管理工作的呢?答案是,他可以让辅导员将学生的信息和诉求整理成表格之后再上交,通过分析表格的信息来推进学生管理工作。实际上,校长在这个过程中并没有和学生交流,他只是通过学生对应的信息来对学校资源进行调度。

因此,我们可以的出结论:管理者和被管理者并不需要直接交互,依旧能对被管理者进行管理,管理的本质实际上是管理数据。

回到计算机中,这里的校长实际上就是操作系统,他通过接收用户(学生)的诉求,根据软硬件的情况(利用学校有限资源),调度软硬件资源实现目标(完成学生的培养工作)

下图为计算机组成示例


四、计算机管理硬件的方法

我们在上面说过,管理的本质实际上是管理数据,所有的“管理”,本质的内在逻辑是:先描述、在组织

  1. 描述起来,用struct结构体或类,将数据分类汇总起来
  2. 组织起来,用链表或其他高效的数据结构,将数据与数据联系起来

【注意】操作系统可通过驱动程序对硬件做管理(校长通过辅导员对学生进行管理) ,每个硬件必然有对应的操作接口


五、系统调用和库函数概念

在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用接口

在系统接口上方,有各种各样的软件层(用户操作接口),其中最重要的就是shell lib(库)

  • shell帮助用户对基础指令进行输入输出。
  • 系统调用在使用上,功能比较基础,对用户的要求相对也比较高。因此有心的开发者可以对部分系统调用进行适度封装,从而形成了库。
  • 库的存在,有利于更上层用户或者开发者进行二次开发(我们熟知的库有C语言库、C++库等)

在用户操作接口之上,是普通用户或开发者的使用平台。通常我们所说的学习编程实际上就是学习用户层的知识。

【注意】我们个人的任何操作,不能越过操作系统对其他软硬件进行直接控制我们在编程过程中的指令操作、编程操作(例如打印hello world),都是将数据交给操作系统,再由操作系统完成对硬件的调用。这样做的目的是为了保护计算机、减少用户或开发者的使用开发成本。举一个简单的例子,就像是我们去银行取钱,我们需要去银行柜台或者取款机办理业务,而不能越过它们直接去钱库中取钱。


 🌹🌹操作系统概念与定位大概就讲到这里啦,博主后续会继续更新更多Linux操作系统的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪 

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

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

相关文章

荣誉!InterSystems被独立研究机构Forrester评为“事务分析型数据平台领导者”

2022 年 12 月 1 日,中国,北京——致力于帮助客户解决最关键的可扩展性、互操作性和速度问题的创新数据技术提供商 InterSystems 今天宣布,在Forrester日前公布的《The Forrester Wave™:事务分析型数据平台(2022年第4季度)》报告…

硬件学习路线调研

学习路线 《Verilog传奇》、《Verilog HDL高级数字设计》或者是《用于逻辑综合的VHDL》。不看书也能写出个三段式状态机就可以进入下一阶段了。 此外,你手上必须准备Verilog或者VHDL的官方文档,《verilog_IEEE官方标准手册-2005_IEEE_P1364》、《IEEE …

科研绘图配色方案

科研绘图配色方案 在撰写论文的时候,美观,大气,上档次的图表能够很好地给自己的论文加分。但是在绘制图表的时候往往会面临色彩搭配的问题,选择合适的色彩搭配能够有效地展示自己的方法,但是色彩搭配选择不当的话往往…

2021-02-01

oracle设置定期修改密码 --通过如下sql查询用户密码有效期配置 SELECT username,PROFILE FROM dba_users; --上述sql查询结果一般为default --使用如下sql可以查询到default的默认值 select * from dba_profiles where profile DEFAULT and resource_name PASSWORD_LI…

Express 7 指南 - 开发中间件

Express Express 中文网 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录Express7 指南 - 开发中间件7.1 概述7.2 例子7.2.1 中间件函数 myLogger7.2.2 中间件函数 requestTime7.2.3 中间件函数 validateCookies7.3 可配置的中间件7 指南 - 开发…

数据结构与算法 -二叉树

二叉树相关算法 1. 二叉树基本知识 (1)二叉树结构 public class Node {V value;Node left;Node right; }left和right只能往下指,没有节点就为空。 (2)创建二叉树 对于一个完全二叉树,父节点为i, 左子节点…

Unity3d bounds包围盒 和collider碰撞器区别

Bounds 外包围盒 Bounds 叫作外包围盒、边界框、外扩矩形.是struct 结构体。而我们获得Bounds的主要途径有三种&#xff1a;Render,Collider,Mesh。 Render.bounds 世界坐标 Collider.bounds 世界坐标 Mesh.bounds 本地坐标 var m GetComponent<MeshFilter>().bound…

【数据结构】图的实现

文章目录图1.图的基本概念2.图的存储结构3.邻接矩阵3.1邻接矩阵的优缺点3.2邻接矩阵的实现4.邻接表4.1邻接表的实现5.图的遍历5.1广度优先遍历5.2深度优先遍历5.3如何遍历不连通的图&#xff1f;图 1.图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构&#xff1…

BERT-of-Theseus

最近了解到一种称为"BERT-of-Theseus"的BERT模型压缩方法&#xff0c;源自论文《BERT-of-Theseus: Compressing BERT by Progressive Module Replacing》。这是一种以"可替换性"为出发点所构建的模型压缩方案&#xff0c;相比常规的剪枝、蒸馏等手段&#…

streptavidin-PEG-6-FAM 链霉亲和素-聚乙二醇-6-羧甲基荧光素

产品名称&#xff1a;链霉亲和素-聚乙二醇-6-羧甲基荧光素 英文名称&#xff1a;streptavidin-PEG-6-FAM 纯度&#xff1a;95% 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 外观:固体或粘性液体&#xff0c;取决于分子量 PEG分子量可选&#xff1a;350、550、75…

自助建站工具

每用一次自助建站工具&#xff0c;就有一个程序员失业。 作为企业老板的你&#xff0c;要为公司的获客&#xff0c;企业推广发愁&#xff0c;但是预算有限&#xff0c;招人也很困难&#xff0c;不仅要面试程序员&#xff0c;后续还要检验这个程序员的功力&#xff0c;实在是太…

谷歌浏览器

引言&#xff1a;众所周知&#xff0c;一个好的浏览器可以提高我们的工作效率&#xff0c;那么今天教大家如何安装超 nice 的浏览器 —— 谷歌浏览器 文章目录一、安装谷歌浏览器二、修改谷歌浏览器搜索引擎三、修改谷歌浏览器默认下载位置一、安装谷歌浏览器 打开&#x1f5b…

GJB 5000B二级-II实施基础

本实践域为新增实践域   思想:以GJB5000A的共用过程域中不乏实践为基础进行提炼并提升,结合各个行业的优秀实践和行业特点,坚持问题导向,使标准更具有指导性和可操作性;充分借鉴GJB9001C中:“4组织环境”、“7支持”的相关内容,形成实施基础实践域。本实践域强调突出重…

0111 栈与队列Day1

剑指offer09.用两个栈实现队列 用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead 操作返回 -1 ) 示例 1&#x…

Java ArrayLIst与顺序表

什么是集合类&#xff1f; Java当中的集合类&#xff0c;其实就是封装号的数据结构 原始的数据结构——>Java当中封装成的集合对应的那个原始的数据结构——>用Java封装的集合对应的。 集合类所在的包&#xff1a;java.util这个包底下 顺序表的底层是一个数组&#xff0…

结构力学常用公式表,早晚用得到!

来源&#xff1a;360个人图书馆 常用截面几何与力学特征表​​​​​​​ 注&#xff1a; I 称为截面对主轴&#xff08;形心轴&#xff09;的截面惯性矩 (mm4)。基本计算公式如下&#xff1a; W称为截面抵抗矩 (mm)&#xff0c;它表示截面抵抗弯曲变形能力的大小&#xff0c…

皕杰报表之隐藏处理

第一步&#xff0c;新建报表&#xff0c;然后新建参数 参数type设置成中文描述为统计类型、数据类型为字符串。 参数year设置成中文描述为年、数据类型为日期、时间日期格式为yyyy。 参数month设置成中文描述为月、数据类型为日期、时间日期格式为MM。 参数day设置成中文描…

python安全工具开发笔记(三)——python 多线程

一、Python线程和进程 进程 进程是程序的一次执行。每个进程都有自己的地址空间、内存、数据栈及其它记录其运行轨迹的辅助数据。 线程 所有的线程运行在同一个进程当中&#xff0c;共享相同的运行环境。线程有开始顺序执行和结束三个部分。 帮助理解&#xff1a; 1、计算…

VM系列振弦采集模块传感器激励方法

VM系列振弦采集模块传感器激励方法 通过修改寄存器 EX_METH.[3:0]来完成激励方法的选择&#xff0c; EX_METH[4]用于设置是否忽略传感器的接入检测而强制发送激励信号。 高压脉冲激励法 高压脉冲激励法 HPM&#xff08; High Voltage Pulse Excitation Method&#xff09;。 向…

桌面画图工具:Pointofix(fertig)

Pointofix桌面画图工具 Pointofix - der virtuelle Textmarker fr Ihren Bildschirm - Freeware 一、软件下载 官方网址https://www.pointofix.de/ 二、进入下载页面&#xff0c;需要下载安装文件和语言包两个文件 三、网站还提供了一个语言设置小程序&#xff0c;但我没用 …