【Linux】操作系统(Operator System)

news2024/9/23 23:35:17

目录

一、操作系统是什么

1、操作系统概念

2、操作系统的定位

3、设计OS的目的

4、操作系统的重要性 

二、 理解操作系统

三、系统调用

系统调用和库函数的关系


一、操作系统是什么

1、操作系统概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:

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

操作系统组成结构: 

2、操作系统的定位

在整个计算机软硬件架构中,操作系统的定位是一款进行软硬件资源管理的软件。

3、设计OS的目的

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

4、操作系统的重要性 

计算机硬件大部分为冯诺依曼体系结构,在硬件之上有一层软件。我们在对计算机输入数据时,会把数据预加载到内存之中,供 CPU 进行数据读取。

然而计算器中的数据这么多,他怎么知道需要预加载那一部分数据呢?加载过程中内存不够了怎么办?CPU在进行计算操作时如何快速的找到预加载的数据?在CPU执行计算时,是先把当前任务完成再做下一个任务还是多个任务同时执行?

这些等等问题都不是由硬件决定的。而是由一个软件——操作系统决定的。操作系统的重要性不言而喻。

二、 理解操作系统

我们知道操作系统是进行软硬件资源管理的,那么我们就来重点聊一聊操作系统如何进行硬件管理。

我们谈管理就一定有两种角色:管理者与被管理者。

假设有这样一个场景:一个学校里有三个群体,分别是校长、辅导员、学生。

其中校长是进行决策的人,所以校长为管理者。辅导员是执行校长决策的人,即保证决策被执行的人。而学生显然是被管理者,参与执行

虽然校长是管理者,进行决策,但是同学们不妨回想一下我们在学校里见过几回校长呢?几乎没有见过面。所以管理者与被管理者是不需要直接沟通的

那么校长是怎么管理学生的呢?事实上,校长管理学生是通过管理这个学生的数据,比如成绩、违纪情况等等。所以管理的本质是对被管理对象的数据进行管理

校长获取学生的数据是通过辅导员获取的,而学生有很多,信息也很杂乱,有姓名、年级、电话、成绩、紧急联系人等等。为了方便提取,就可以把每个学生都抽象成一个结构体 struct ,并把这些结构体节点都链接起来形成一个单链表:

 一个节点代表一个学生的所有信息。

现在校长做了一个决策:让这些学生中数学成绩最好的那一个代表学校参加数学竞赛,此时,这个决策就转变成了对链表的遍历查找工作。

校长又做了一个决策:开除成绩最差的学生,这个决策被转变为对链表的遍历与删除工作。

实际上,校长做出的任何决策都可以被转化成对链表的增删查改。以上校长所做的工作称为一个管理模型的建模。

经过上面的介绍,我们可以把管理的本质使用六个字进行总结:先描述,再组织。这六个字在之后会贯穿整个Linux学习的过程。

其中描述的过程就是面向对象的过程,组织的过程就是我们所学习的数据结构的用法。这也是我们学习语言与数据结构的意义。


在上面的故事里,校长、辅导员、学生对应到操作系统中,分别为:

  • 校长——操作系统
  • 辅导员——硬件驱动
  • 学生——硬件(软件)

 所以操作系统在进行硬件管理时,会通过各种驱动程序,对各种硬件的属性信息做提取,把这些硬件面向对象式的先描述成设备结构体,构建设备节点,然后将所有被管理的设备以某种数据结构组织起来。从此之后,对设备的管理就转换成了对数据结构的管理。这是一个对管理做建模的过程。

三、系统调用

 操作系统对下通过管理好软硬件资源(手段),对上给用户提供良好、安全、稳定、高效、功能丰富的执行环境(目的)。

前面我们已经基于对下进行管理进行了一部分的讲述说明,现在来讲一讲对上给用户提供服务的相关内容。

操作系统给用户提供了良好的服务,那么操作系统相信用户吗?

这样问可能会有些奇怪,我们来举个例子方便理解:张三去银行存钱,那么在张三进入银行的时候,就已经是银行的客户了,银行的工作人员会给张三倒水、整理相关资料,对张三进行各种应有的服务,但是会把金库的门打开,让张三自己进入金库存放现金吗?这是肯定不会的,银行不信任张三。

那么银行是如何做到在不信任客户、不允许客户查看银行系统的前提下,给客户提供各种存款、借贷服务的呢?

 在银行里有多个小窗口,客户通过窗口把银行卡、身份证等证件交给工作人员,由工作人员给客户办理相关业务。这样既避免了客户查看银行的系统,保证了银行的安全,又给客户提供了服务。


 类比到操作系统当中,操作系统给我们提供非常良好的服务,并不代表操作系统会相信我们,相反,操作系统不相信任何人

用户是不被允许进入到操作系统内部去对数据进行任意访问与修改的。那么操作系统又是怎么在这样的前提下给用户提供服务的呢?

操作系统把一些特定功能以接口的方式供给用户使用,我们把这批接口称为操作系统的系统调用

我们知道 Linux 是使用C语言编写的,所以 Linux 的系统调用其实就是操作系统设计的C函数。通过这种方式,既能保证操作系统本身的封装性,又能保证给用户提供相应的功能。

而系统提供的这些接口使用起来成本会比较高,可能要求使用者具备对应的相关知识。

为了降低使用成本,方便更多的人使用,就有一些人基于系统调用接口进行了二次软件开发。这些二次软件开发中,有一部分是图形化界面,还有一部分是 shell与工具集。

 整个计算机体系的软硬件结构是层状的,我们无法绕过特定层,而是必须从上到下贯穿、从下到上获取。以我们以前学习过的指令为例:

比如创建文件指令 touch ,我们只写入了一条 touch 指令,看似简单,但是这条指令要通过系统调用接口,由操作系统向磁盘发起文件创建的相关指令,然后驱动程序就会拿着这些指令交给对应的硬件来执行,把文件信息写入磁盘后,再把完成信息依次向上返回。所以单单是一条简单的指令,也是要贯穿操作系统的体系结构的。

系统调用和库函数的关系

系统调用是操作系统提供的接口,库函数是对系统调用的封装。但不是所有的库函数都会封装系统调用,比如一些单纯进行计算、加密的库函数不需要访问外设,也就无需调用系统调用。

经过特定系统调用的组合,可以给用户提供功能更加丰富的库函数,通过调用库函数可以大大的提高开发效率。


与操作系统(OS)相关内容就讲到这里,希望同学们多多支持,如果有不对的地方欢迎大佬指正,谢谢!

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

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

相关文章

【网络设备排障怎么破?这五个命令申请出战!】

1.网络排错常用诊断工具介绍 主流网络设备产品提供了一套完整的命令集,可以用于监控网络互联环境的工作状况和解决基本的网络故障。主要包括以下命令: Ping命令 Traceroute命令 Show命令 Clear命令 Debug命令 1.1 Ping命令 1.原理: “ping”…

vue+element-ui项目搭建记录

一. 安装vue(省略) 二. 新建vue项目并启动 1. 命令行执行新建项目命令: vue init webpack TestElemntUI3 //TestElemntUI3为项目名称执行结果发现有问题: 2. 需要安装一个全局加载项,执行命令: npm i…

ARM+DSP!全志T113-i+玄铁HiFi4开发板硬件说明书(1)

前 言 本文档主要介绍开发板硬件接口资源以及设计注意事项等内容,测试板卡为全志T113-i+玄铁HiFi4开发板。由于篇幅问题,本篇文章共分为上下两集,点击账户可查看更多内容详情,开发问题欢迎留言,感谢关注。 T113-i处理器的IO电平标准一般为1.8V和3.3V,上拉电源一般不超过…

DSTL与PA咨询公司助力英国国防部发展“量子+军事”领域

DSTL的量子实验室(图片来源:网络)如何充分利用国防和安全领域的资源并确保人员安全?快速准确的决策至关重要。人类虽然是决策过程的重要参与者,但是快节奏的决策过程对人类来说变得越来越复杂。国防科学技术实验室&…

18种可以提高接口性能的方案

之前工作中,遇到一个504超时问题。原因是因为接口耗时过长,超过nginx配置的10秒。然后 真枪实弹搞了一次接口性能优化,最后接口从11.3s降为170ms。本文将跟小伙伴们分享接口优化的一些通用方案。 1. 批量思想:批量操作数据库 优化…

分布式系统架构解决方案—Dubbo

文章目录什么是分布式系统?系统架构Dubbo简介RPC的概念dubbo节点角色dubbo节点调用关系Dubbo 安装管理端Dubbo-监控统计中心什么是分布式系统? “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”分布式系统&…

第一次创业,注册什么类型的公司更好?

前言 几乎每一个打工者都有一颗当老板的心,大喊一声:"大丈夫生居天地间,岂能郁郁久居人下",于是一拍桌子就辞职创业,现实往往都是潦草收场,看下面一段统计数据: 中国小微企业平均存活周期4.13年&…

2023牛客寒假算法基础集训营4(10/13)

清楚姐姐学信息论数学&#xff0c;只需要求x的y次方和y的x次方那个大选哪个&#xff0c;除了2和3时是3多&#xff0c;其他情况都是数越小能代表的数越多AC代码&#xff1a;#include <bits/stdc.h> using namespace std; using LL long long; int main() {ios::sync_with…

7年老码农,平凡的2022

前言 嗨&#xff0c;大家好&#xff0c;我是希留。一个被迫致力于成为一名全栈开发的菜鸟。 2022年对于大多数人而言是难忘的一年&#xff0c;受疫情影响、经历行业寒冬。裁员、失业等情况总是笼罩着本就焦虑不安的生活。 而我的2022&#xff0c;用一个关键词就可以概括&…

超大功率远程应急广播系统(大功率扬声器的应用)

系统概述 1、接收控制系统框图 超大功率远程应急广播系统是针对应急广播研发的一套通信系统&#xff0c;其接收控制系统框图如图&#xff08;1&#xff09;所示&#xff1a; 2、发射系统框图 发射系统框图如图&#xff08;2&#xff09;所示。 3、接收控制系统功能 接收控制…

【Spring源码】自动注入·名称:autowireByName()详解

进入方法autowireByName()首先调用了unsatisfiedNonSimpleProperties()方法进行属性过滤unsatisfiedNonSimpleProperties()其中PropertyDescriptor是JavaBean通过存储器导出一个的一个属性&#xff0c;用于获取bw的所有属性描述对象&#xff0c;遍历获取到的属性描述对象&#…

快鲸智慧楼宇:为楼宇智慧化、物联化、可视化、数字化运营赋能

根据国际数据公司(IDC)发布的《全球半年度智慧城市支出指南》显示&#xff0c;2023年全球智慧城市支出预计将达到1894.6亿美元&#xff0c;其中中国市场规模将达到389.2亿美元。这意味着2023年&#xff0c;建设智慧城市是世界各地许多城市的发展战略之一。智慧楼宇作为智慧城市…

二叉树(三)

我们之前对树和二叉树有了基本的了解&#xff0c;然后我们进一步对二叉树的性质进行分类。小伙伴们如果有疑问或者感兴趣的可以看一下我之前写的两篇博客。二叉树&#xff08;一&#xff09;&#xff1a;二叉树&#xff08;一&#xff09;_染柒_GRQ的博客-CSDN博客二叉树&#…

一文读懂卫星导航测量天线

1957年10月4日&#xff0c;前苏联发射了第一颗人造地球卫星&#xff0c;第二年&#xff0c;美国便启动了第一代卫星导航系统——子午仪卫星导航系统的研制。经过几十年的发展&#xff0c;全球各类航天器发射活动日益增多&#xff0c;全球卫星导航卫星系统&#xff08;GNSS&…

【go语言udp分析】

go语言udp分析serverclientudp相等于tcp来说是不可靠的协议&#xff0c;当然优点就是速度快&#xff0c;相对于包的首部来说比较小。然后接下来看一下对应的实现server package mainimport ("fmt""net" )// UDP服务端配置 func main() {//1:启动监听liste…

2023年中高级前端养成指南-需要关注和学习的13大类80余个前端技术栈与前端趋势-看这篇就够了系列

今天是兔年开工的第一个星期一&#xff0c;我们又要投入到忙碌的工作了。 以下是imqdcn研究整理的2023年中高级前端养成指南&#xff0c;收藏起来&#xff0c;从开工第一天起&#xff0c;立下全新的计划和目标&#xff0c;愿你在兔年大展宏兔&#xff0c;扬眉兔气。 文章目录一…

【SpringCloud】Sentinel的基础概念及使用

一、雪崩问题1.问题描述微服务中&#xff0c;服务间调用关系错综复杂&#xff0c;一个微服务往往依赖于多个其它微服务。如果服务提供者I发生了故障&#xff0c;当前的应用的部分业务因为依赖于服务I&#xff0c;因此也会被阻塞。此时&#xff0c;其它不依赖于服务I的业务似乎不…

SAP 实施新的金融工具 IFRS17规则解析

在实施新的金融工具 IFRS 规则的过程中&#xff0c;保险公司现在看到了保险负债的新标准。经过多年的长期讨论&#xff0c;IASB 于 2016 年 11 月承诺在 2021 年 1 月 1 日生效&#xff0c;并明确表示不会考虑进一步推迟法规的通过日期。由于有必要将 2020 年作为比较期&#x…

[思考进阶]05 人与人之间的差距,在于“自律”

除了要提升自己的技术能力&#xff0c;思维的学习和成长也非常非常重要&#xff0c;特推出此[思考进阶]系列&#xff0c;进行刻意练习&#xff0c;从而提升自己的认知。 我认识两个成功的长者。 其中有一个人&#xff0c;每天记录当天的重要事项&#xff0c;比如今天和谁签了什…

英语学习 1

1 词汇积累 1、evolution 进化、发展 2、work efficiency 工作效率 3、material 物质的、非精神上的 4、mental 精神的 5、concern 担忧 6、physical contact 身体接触 7、imply 暗示 8、interpersonal relationships 人际关系 9、indifference 漠不关心 10、depression 抑郁 …