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

news2024/11/27 12:35:36

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

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

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

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

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

目录

一、操作系统概念

二、设计OS的目的

三、操作系统定位

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

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


一、操作系统概念

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

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

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

二、设计OS的目的

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

三、操作系统定位

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

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

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

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

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

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

下图为计算机组成示例


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

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

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

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


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

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

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

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

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

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


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

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

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

相关文章

【正厚软件干货】我推荐你的入门编程语言选python

By——正厚技术极客陈多多 当友友看到这篇文章的时候,心里一定有一个学习编程的想法,但是又不知道挑选哪个作为入门语言!我写这篇文章就是为了帮有困难的你做出选择!(作者本人有选择困难症,当时也纠结了好久…

图神经网络关系抽取论文阅读笔记(五)

1 依赖驱动的注意力图卷积网络关系抽取方法(Dependency-driven Relation Extractionwith Attentive Graph Convolutional Networks) 论文:Dependency-driven Relation Extraction with Attentive Graph Convolutional Networks.ACL 2021 1.1 …

Win11系统禁止关机键关机的方法教学

Win11系统禁止关机键关机的方法教学。在操作电脑的时候,有用户经常出现自己误触关键按键导致电脑关机的情况。对于这个情况,我们可以去开启电脑禁止关机按键关机的设置。这样就可以不用担心误触导致关机的问题了。一起看看设置的方法吧。 操作方法&#…

OFFER狂魔成长指南

OFFER OFFER狂魔成长指南 前言 本文章是总结了我春招的经历,博主背景为211某流计算机专业,考研失败转春招。因为计划会再考一年因此主要面试的偏国企专业(现在放弃了,因为公司里面校招生就我一个本科,其他都是21198…

基于VDI2230规范的螺栓评估(上)

作者:王庆艳,安世中德工程师,仿真秀科普作者 一、写在前面 【螺栓评估准则】:VDI2230(高强度螺栓连接系统计算)规范是德国工程师协会负责编写整理,包括Part1及Part2两部分,是目前针…

(5)点云数据处理学习——其它官网例子2

1、主要参考 (1)官方稳定地址 Point cloud — Open3D 0.16.0 documentation 2、相关功能 2.1凸包(Convex hull) (1)函数 compute_vertex_normals create_from_triangle_mesh (2)…

Three.js教程之在网页快速实现 3D效果(教程含源码)

介绍 本文概述了与使用 Three.js 在常规 Web 浏览器中直接在 Web 上制作 3D 图形相关的术语和概念。对于 3D,就像任何主题一样,如果您深入了解所有细节,事情会很快变得复杂。我将尝试做相反的事情,并简单概述您在学习如何在常规 Web 浏览器中制作 3D 时会遇到的所有概念。 …

手把手教你用站长工具综查询网站域名在各个平台的权重情况 站长工具综查询

网站权重是根据流量值来判断网站的权重值。权重值是属于第三方评估就有参考的意义。 了解网站的权重可以助于SEO专员找到工作的方向。使用站长工具综合查询可以看到网站在各个平台的权重情况。 用站长工具综合查询网站在各个平台的权重情况的操作步骤吧! 第一步、打…

德云一哥岳云鹏,准备录制河南和东方卫视节目,央视春晚还参加吗

时间如白驹过隙,转眼马上又要过年了,央视春晚也备受关注,不知道今年春晚究竟有哪些明星登台演出。说起央视春晚舞台,就不得不说起相声和小品,这两个节目是春晚的台柱子,也一直深受大家的喜爱。 尤其是最近几…

Linux基础概念,目录文件操作命令,压缩命令:

Linux基础概念: 1,linux登录方式,本地登录,远程登录(借助xshell等) 登录后是shell交互界面,用c编写的程序。常见的就是bash,sh,csh,ksh等。 2,li…

项目实战——Web自动化测试

目录 一、前言及测试用例设计 二、 首页测试(未登录) 三、注册测试 四、对局列表测试 五、排行榜测试 六、对战测试 七、Bot测试 八、测试套件Suite 一、前言及测试用例设计 整个项目已经部署完成,我们历经九九八十一难,…

英国Top20名校更偏爱IB申请党?

IB的全球超高认可度相信大家都有共识,英国大学对于A-Level、IB成绩都持认可态度。 但多数人会认为A-Level成绩申请英国名校会比IB更有优势,事实果真如此吗?接下来通过官方给出的数据,我们来一探究竟~ 01英国Top20名校更偏爱IB学生…

Linux的十个常用命令

目录 1、ls 2、pwd 3、cd 4、touch 5、cat 6、echo 7、mkdir 8、rm 9、mv 10、cp 1、ls ls命令用于显示目录中的文件信息. 格式:ls [选项] [文件] 参数: -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)-l 除文件名称外,亦将文件型…

点云缩放(附open3d python代码)

1/ numpy 数组方法 通过将点云数组乘以一个缩放因子来改变大小, 同时通过加法运算实现质心平移。points = points/2.0#缩小到原来的一半 points[:, 0] = points[:, 0] + 20#质心平移到x=20处2/ open3d的缩放函数为scale,包含两个参数。 第一个参数是缩放的比例,即放大的倍数…

Kafka怎样完成建立和Broker之间的连接?

文章目录NetworkClient初始化1.基于Java NIO SocketChannel封装KafkaChannel2.Kafka提供的Selector是如何初始化跟Broker之间的连接的2.1 初始化SocketChannel,发起连接请求2.2 将发起连接请求后的SocketChannel缓存起来3.万能poll()方法之前的准备工作4. 通过不断轮…

win11电脑加密文件夹的两种方法

为了保证隐私安全,很多用户都会给文件夹设置密码,只有输对密码才能进入文件夹,那么升级到Win11新系统要怎么操作呢?下面小编就给大家带来两种加密方式,任你挑选。 方法一: 1、首先去找到要加密的文件夹。 2…

Java企业微信对接

最近项目中要对接企业微信,实现通讯录数据同步,即在企业端添加编辑删除用户,部门数据要同步到微信端,同时微信端添加编辑删除用户,部门数据要同步到企业端,实现数据同步功能,需要调用企业微信AP…

DDD的简单落地实现

目录 概述 和微服务的联系 具体划分 遵循依赖倒置原则 其他规范 具体实现代码 总结 概述 领域式驱动(DDD) 这种模式的核心就是根据功能去划分领域,然后在这个领域内只做这个领域的事情。 和微服务的联系 和微服务有什么类似的地方&am…

PyTorch 新库 TorchMultimodal 使用说明:将多模态通用模型 FLAVA 扩展到 100 亿参数

先前的文章中,我们介绍了 TorchMultimodal,今天我们将从一个具体案例出发,演示如何在 Torch Distributed 技术加持下,在 TorchMultimodal 库中扩展多模态基础模型。 近年来,大模型已成为一个备受关注的研究领域。以自然…

GOM传奇引擎登录器商业版与免费版的区别

商业版与免费版登录器的区别: 1商业版自定义界面功能可以保存配置 2商业版登录器支持读取二次加密的Pak。需要购买Pak二次加密工具。 3商业版增加数字证书,防止杀毒软件误报 4商业版支持163博客远程列表,列表首尾需要$BEGIN $END关键字 5商业…