【Linux旅行记】探究操作系统是如何进行管理的!

news2024/11/25 23:33:40

文章目录

  • 什么是操作系统?
    • 操作系统概念
    • 操作系统的目的
      • 底层硬件
      • 驱动程序
      • 操作系统
      • 理解系统调用接口
    • 操作系统是如何进行管理的?
      • 什么是管理?
      • 操作系统是如何管理硬件信息呢?
  • 🍀小结🍀

在这里插入图片描述
在这里插入图片描述

🎉博客主页:小智_x0___0x_

🎉欢迎关注:👍点赞🙌收藏✍️留言

🎉系列专栏:Linux入门到精通

🎉代码仓库:小智的代码仓库


什么是操作系统?

在上篇【Linux】冯诺依曼体系结构思想中我们介绍了计算机的各个部件的主要功能,以及他们工作的方式和步骤,但是这些设备都很笨,只能提供基本的功能,就好比键盘来说,它就只能从键盘来获取数据,等待被使用,那么就少不了一个管理者,来管理这些设备,这个设备可以在合适的时间使用合适的工具去完成任务,那么这个管理者就是操作系统(OS)

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

操作系统概念

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

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

操作系统的目的

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

接下来我们通过计算机层状结构来了解操作系统:
在这里插入图片描述

底层硬件

  • 计算机底层硬件是指计算机系统中直接参与数据处理、存储和传输的实体部件,包括中央处理器(CPU)、内存、硬盘、主板、显卡、网卡等。这些硬件组成了计算机的核心部分,是计算机系统能够正常运行的基础。

驱动程序

  • 驱动程序是一种软件,它允许操作系统或其他软件与硬件设备进行通信。驱动程序通常由硬件制造商提供,用于控制硬件设备的操作和性能。通过安装正确的驱动程序,操作系统可以识别设备并与之通信,从而确保设备能够正常工作。常见的驱动程序包括打印机驱动程序、显卡驱动程序、声卡驱动程序等。没有驱动硬件设备是无法使用的。

就好比我们平时使用无线鼠标的时候,把USB接口插入电脑之后的几秒钟是用不了鼠标的,过了几秒后,电脑右下角会弹出驱动安装成功之类的提示,此时我们的鼠标才能正常使用,一般的驱动程序操作系统会自带,也有少部分的需要我们去手动下载。

操作系统

  • 操作系统是计算机系统中最基本的系统软件之一,它是一种控制和管理计算机硬件与软件资源的程序集合,为应用程序提供运行环境和服务。操作系统负责管理计算机的内存、文件系统、输入输出设备、网络等硬件资源,并提供进程管理、内存管理、文件管理、网络管理等核心功能。

操作系统就好比银行的管理人员,可以将一家银行比作一个计算机系统,操作系统就像银行的管理人员,负责协调银行内部各个部门之间的工作,确保银行正常运行。具体来说,操作系统可以:

  1. 管理银行的硬件资源,如ATM机、服务器、网络设备等,保证这些设备能够正常工作。
  2. 管理银行的软件资源,如数据库、应用程序等,确保它们能够高效地运行。
  3. 管理银行的数据,如客户信息、账户信息等,保证数据的安全性和完整性。
  4. 管理银行的业务流程,如开户、存款、取款等,确保各个环节的顺畅进行。
  5. 管理银行的安全性,如防火墙、加密技术等,保证银行系统不受到黑客攻击和病毒感染。

通过这些管理措施,操作系统可以让银行更加高效、安全地运营。

总结:操作系统帮助用户,管理好下面的软硬件资源!

那么新的问题又来了,操作系统为什么要管理好软硬件资源呢?

操作系统需要管理好软硬件资源,主要是为了提高计算机系统的性能和可靠性,确保应用程序能够正常运行。以银行为例,如果操作系统不能管理好软硬件资源,可能会导致以下问题:

  1. 银行的ATM机无法正常工作,客户无法进行取款和存款操作,影响银行的服务质量和客户满意度。
  2. 银行的数据库出现故障,客户的账户信息丢失或泄露,对客户的财产安全造成威胁,同时也可能损害银行的声誉。
  3. 银行的应用程序崩溃或运行缓慢,导致客户无法正常办理业务,影响银行的业务效率和收益。
  4. 银行的网络受到攻击或病毒感染,可能导致银行系统瘫痪,造成严重的经济损失。

通过管理好软硬件资源,操作系统可以最大限度地避免这些问题的发生,确保银行的正常运营和服务质量。

总结:操作系统通过管理好底层的软硬件资源(手段),为用户提供一个良好的执行环境 (目的)


操作系统里面会有各种数据。可是,操作系统本身并不相信任何用户!但是不相信你,但是可以让你用。

举个栗子
在银行,银行也不会相信你,在我们平时取钱办理业务的时候,只能通过一个小窗口来进行办理,其他的基本都是用防弹玻璃隔开的,给我们用户只提供一个窗口。如果银行相信每一个人,变成开放的话,什么人都可以进银行,那么就可能会出现资金丢失等的问题。甚至有些人无心的把某些设备误触了造成财产损失,为了避免这些问题银行就会把自己封闭起来,但又不能完全封闭这样就不能为用户提供服务也就没人回来银行办理业务,因此银行会给我们开放各种窗口来给我们用户提供服务,这样银行就可以在不相信用户的同时还能帮你办理各种业务。

操作系统也是这样,操作系统在不相信任何用户的情况下,还要给用户提供一个良好的执行环境。

理解系统调用接口

操作系统保证数据安全,也为了保证给用户提供服务,操作系统以接口的方式给用户提供调用的入口,来获取操作系统内部的数据。
操作系统使用C语言写的,所以操作系统上的接口本质上就是C语言的一个函数,是函数就要有返回值,参数等等。就好比我们要去银行取钱,我们就要带上自己的身份证,银行卡,存折之类的,来通过窗口交给银行的工作人员,工作人员通过内部认证确认无误后,再来帮我们取钱。 操作系统接口也是如此,我们通过系统接口可以传递一些参数,就可以拿到我们想要的系统数据,以便于我们继续开发。
这样自己内部函数调用 ---- 系统调用
所有的访问操作行为,都只能通过系统调用来完成。
系统调用可以对用户输入的参数进行审核,因为系统调用的代码是操作系统自己写的,不会出现恶意修改的现象,这样操作系统既保证了自己安全的情况下,又为上层提供服务了,有了这些系统调用接口,我们就可以允许用户对底层的软硬件资源进行间接管理,所以就有些人基于系统调用接口来设计实现各种各样的软件啦。

但是因为系统调用接口难度太大,所以就有人对这些操作系统调用接口进行封装,将底层操作系统封装成库。
就比如我们平时使用的scanfprintfscanf是从键盘中获取数据到内存,其实本质上是scanf函数通过调用系统接口去访问硬件资源,printf函数也是通过调用系统接口来访问显示器资源。
但凡是涉及到硬件系统的编程语言,都是通过调用系统接口来实现的,所有的编程语言都是在系统调用接口之上的。无论编程语言怎么变化,系统调用接口都是不会变的。

总结:
系统调用接口是操作系统提供给用户程序的一组函数,用于访问操作系统内部的数据和资源。这些接口本质上是C语言的函数,可以传递参数和返回值。所有的访问操作行为都只能通过系统调用来完成,这样可以保证操作系统的安全性和可靠性。系统调用接口可以被封装成库,方便用户程序的开发和使用。无论编程语言怎么变化,系统调用接口都是不会变的。
库函数和系统调用之间是上下层的调用和被调用的关系!库函数在上,系统调用在下!

操作系统是如何进行管理的?

什么是管理?

这里我们来举一个例子,在大学里,有校长,有辅导员,有学生,宿管等等。其中最典型的管理者就是校长。我们大学生就是最典型的被管理者,但是我们从开学到毕业估计也见不到校长几次,甚至不知道校长长什么样子,不知道校长叫什么名字,但是我们确实被管理了,所以说明管理者和被管理者是不需要见面的。

那么问题又来了管理者在不见到被管理者的情况下,是如何进行管理的呢?
比如我们在公司中上班,有一天被老板叫到办公室,老板说,小张最近在公司怎么样啊,工作顺不顺利啊,干了什么事啊,有哪些事情没干啊,有什么困难啊?我们可以发现这个过程中老板是为了获取信息,所以见不见面不是必须的,只要能够获取信息就可以,所以我们只要把信息管理起来就可以完成管理工作。

所以管理的本质:通过对 数据的 管理达到对人的管理。

再来回到大学这个例子,假如我们大学规定挂科达到9门就要被责令退学,小张同学今年 刚好挂了第9门课,然后到每年期末校长都会收到这些挂科信息,校长拿到了小张的挂科信息,就对小张说,你挂了9门课了,可以去办理退学了。在这个过程中校长获取了小张的挂科信息,进而对小张进行了管理。进一步说明了管理的本质就是通过对数据的管理来达到对人的管理。

那么又有新的问题了,管理者和被管理者的面都不见,管理者如何拿到我们的数据呢?
在大学中我们的成绩挂科情况会通过辅导员来进行汇总,来提供给校长,那么辅导员是管理者吗?

我们这个世界上所做的事情就分为两种:

  1. 做决策
  2. 做执行

真正的管理者他的核心工作应该放在做决策上,具有决策权
再来回到这个例子当中,辅导员对于学生大部分工作是没有决策权的,所以辅导员不算是真正意义上的管理者,而是在做学校安排的一些工作,而是一个执行者。
在这里插入图片描述
所以管理者需要通过执行者来获取被管理者的数据信息。

回到我们的计算机当中,校长就相当于操作系统,辅导员就是驱动程序,学生就是软硬件资源。

驱动程序来获取软硬件资源,再将获取的资源交给操作系统,操作系统再对数据进行处理,以达到对软硬件资源的管理。
在这里插入图片描述
比如我们的网卡在日常使用中遇到了故障,那么驱动程序就会把错误信息传递给操作系统,操作系统能自己处理的话就自己处理,处理不了就会将错误信息报告给用户,来告知我们网卡有问题了。

操作系统是如何管理硬件信息呢?

我们再来回到大学这个例子。校长想要收集每个学生的信息,就给各个学院的辅导员发了一张Excel表格上面有要收集的信息,等辅导员收集好信息之后,校长看着眼前的这一大堆表,陷入了沉思,心想这要找一个人还不得给我找累死,正好这个校长之前是个程序员,他就想着把这些学生的信息用一个结构体保存起来,再加上一个结构体指针把这些学生一个个用链表链接起来,解释代码如下:

struct student
{
	char 学号[];
	char 姓名[];
	char 班级[];
	char 手机号[];
	int 身高;
	................
	struct student* next;
};

通过结构体把每个学生的属性信息保存起来,再通过链表将每个学生链接起来。
在这里插入图片描述
这样保存成链表,就可以把对学生信息的管理,转换成对链表的增删查改。
假如我们学校要选举行运动会,校长要在全校学生中找一个身高最高的,有了链表就可以将这个问题转换为,遍历这个链表找到身高属性最高的那个节点,就可以查看到这个人的所有信息。
那么有了链表,校长就只需要把学生链表管理好就可以了,再也不用对着Excel表格疯狂查找了。
这样我们就成功的将 对学生的管理 转换成为了 对链表的增删查改!

这里我们小小总结一下:校长在列举学生信息的过程叫做描述的过程,而把每个学生的结构体链接起来的过程叫做组织的过程。这样子我们就可以得到对数据的管理的过程分为两个步骤:

  1. 先描述:用struct结构体保存属性信息
  2. 再组织:用结构体指针将结构体对象链接起来。

在操作系统中也一样,我们需要定义一个结构体,结构体里面存储硬件设备的各种属性比如名称,设备状态。设备容量等等,这样一来一个结构体对象就代表一个硬件设备,接下来再用各种结构体指针将这些结构体对象链接起来,对这些设备链表进行管理。以至此,在操作系统中,管理任何对象,最终都可以转换成为对某种数据结构的增删查改!

🍀小结🍀

今天我们学习了"Linux操作系统是如何进行管理的"相信大家看完有一定的收获。种一棵树的最好时间是十年前,其次是现在! 把握好当下,合理利用时间努力奋斗,相信大家一定会实现自己的目标!加油!创作不易,辛苦各位小伙伴们动动小手,三连一波💕💕~~~,本文中也有不足之处,欢迎各位随时私信点评指正!
在这里插入图片描述

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

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

相关文章

权威认可!麒麟信安实力入选中国信通院 2023《高质量数字化转型产品及服务全景图》

日前,中国信息通信研究院(简称“中国信通院”)发布2023《高质量数字化转型产品及服务全景图(8月份新增入图产品)》,麒麟信安实力入选,成为云服务领域的标杆企业。 麒麟信安入选2023 《高质量数字…

激光焊如何更准更稳?维视智造激光焊视觉解决方案助力精密制造

激光焊接是一种高能密度、非接触的焊接技术,它利用激光束对工件进行加热和熔化,然后使其在熔池的情况下形成连接。与传统的焊接方法相比,激光焊具有高密度、熔深小、变形小、焊缝质量高、适用性广、自动化程度高等特点,可以实现焊…

【C语言】自定义类型:结构体【结构体内存具详细】,枚举,联合

目录 一、结构体 1.结构的声明 2.特殊的声明 3.结构的自引用 4.结构体变量的定义和初始化 5.结构体内存对齐(重点来了) 6.为什么会存在内存对齐 7.修改默认对齐数 8.结构体传参 二、位段 1.什么是位段 2.位段的内存分配 3.位段的跨平台问题…

各种存储性能瓶颈如何分析与优化?

【摘要】本文结合实践剖析存储系统的架构及运行原理,深入分析各种存储性能瓶颈场景,并提出相应的性能优化手段,希望对同行有一定的借鉴和参考价值。 【作者】陈萍春,现就职于保险行业,拥有多年的系统、存储以及数据备…

vue3+TS前端JS实现 搜索关键词变红

起初在网上搜索获得的处理方式大都是类似这种: 但是实际使用中发现,对于汉字和数字是没有问题的,但是如果有字母就会出现问题。 1.只有汉字和数字的时候:匹配正常。 2.当有字母的时候:异常替换。 原因:第二…

百度SEO优化技巧(选择、网站结构、内容优化、外链建设、数据分析)

百度关键词SEO优化介绍 SEO是搜索引擎优化的缩写,是指通过优化网站结构、内容和外部链接等方式,提高网站在搜索引擎中的排名,从而获取更多的访问量和流量。百度是中国最大的搜索引擎之一,对于企业来说,优化百度关键词…

千呼万唤openGauss资源池化系列培训来了

应openGauss广大用户要求,社区于近期推出openGauss资源池化培训系列。 关于资源池化 资源池化是openGauss 5.0.0 推出的重点特性,是openGauss基于内存池化和共享存储实现的数据库集群。数据在集群的计算节点内存、共享存储中实现共享。应用可以任意节点…

嵌入式学习攻略

嵌入式软件编程的基础 主要是学习编程语言、开发环境和形成自己的编程逻辑,为嵌入式软件开发打下良好的基础,编程语言建议为C和C语言。书籍中的例子都是比较经典的程序实例,尽量去搞懂,不要觉得太长或者太难了而放弃,…

[正确重装docker] Win10 重装 Docker 提示 Exising installation is up to date 的正确姿势

Win10 重装 Docker 报错 Exising installation is up to date 的一种情况是原来的 docker 没有卸载干净,或者说,没有正确卸载。 巧了,我就是直接删除了,因为一些原因重装了好几次,血泪史留给各位嘲笑。 一条正确的卸…

编程(48)----------网页打开的过程

一个网页的打开大致分为以下几步: 1.DNS查询 在进行网络访问过程中, 实际上所访问的是IP地址. 但输入的却仅仅是域名. 因为IP地址过于复杂不利于记忆. 因此, 需要将IP转换成更具有辨识度的域名. 通过输入域名, 以DNS进行转换为IP, 再发起请求. DNS在得到域名后会进行查询, …

P7075 [CSP-S2020] 儒略日(内附封面)

[CSP-S2020] 儒略日 题目描述 为了简便计算,天文学家们使用儒略日(Julian day)来表达时间。所谓儒略日,其定义为从公元前 4713 年 1 月 1 日正午 12 点到此后某一时刻间所经过的天数,不满一天者用小数表达。若利用这…

得帆信息副总裁——陈明:低代码企业内部推广场景建议

在之前的文章中有介绍过#企业内部如何做低代码的运营推广(☜点击回顾精彩),感兴趣的可以结合之前的文章进行了解。 结合本人这几年的低代码落地推广经验,不论是由得帆主导的低代码平台运营推广,还是由客户自身主导进行…

广通优云完成2亿元C轮融资,加速平台级运维产品的技术创新

广通优云于近期完成2亿元C轮融资,松禾资本领投,朗玛峰创投、奇安投资、舜宇投资、天雅资本等机构跟投,皓石资本担任本轮独家财务顾问。资金将主要应用于公司产品创新研发、团队人才建设及市场生态开拓等方面。 在当前资本市场遇冷的背景下&a…

RSS阅读器

focus:免费、无广告、已停止维护[2020]、开源 也许后面我会维护更新。 Archive: https://www.ihewro.com/archives/948/ 开源代码:https://github.com/ihewro/Focus 🍰借助RSShub开源项目,自带丰富订阅市场,尽可能简…

【大数据之Kafka】十四、Kafka-Eagle监控

Kafka-Eagle 框架可以监控Kafka 集群的整体运行情况,在生产环境中经常使用。 1 MySQL环境准备 https://blog.csdn.net/qq_18625571/article/details/130613704?spm1001.2014.3001.5501 2 Kafka环境准备 (1)关闭Kafka集群。 kf.sh stop&…

反向动力学Ik学习

参考文章:(非本人原创) 英文原文:Inverse Kinematics Techniques in Computer Graphics: A Survey (andreasaristidou.com) 知乎翻译文章: 【游戏开发】逆向运动学(IK)详解 - 知乎 (zhihu.co…

django创建web服务器

安装 pip install django 创建项目 django-admin startproject report django-admin startapp data //project下可创建多个app 执行使用 python manage.py migrate //orm代码到数据库 python manage.py runserver 0.0.0.0:80 权限管理 python manage.py createsuperuser 创建…

住宅区电力系统管理,这一点很重要!

随着现代社会对电力供应的不断增长需求,住宅小区的电力分配系统变得越来越复杂。电力是我们日常生活中不可或缺的一部分,因此确保小区的电力供应安全和稳定至关重要。 配电柜监控是确保电力系统安全和稳定运行的重要工具。它可以提高电力供应的可靠性&am…

掌动智能浅谈UI自动化测试工具的重要性

在现代软件开发中,用户界面(UI)的质量和可靠性对于一个应用的成功至关重要。为了确保应用在各种环境和设备上都能正常运行,开发团队需要进行全面的UI测试。为了提高测试效率和减少人为错误,UI自动化测试工具成为不可或缺的工具。本文将探讨UI…

Redis缓存实现及其常见问题解决方案

随着互联网技术的发展,数据处理的速度和效率成为了衡量一个系统性能的重要指标。在众多的数据处理技术中,缓存技术以其出色的性能优化效果,成为了不可或缺的一环。而在众多的缓存技术中,Redis 以其出色的性能和丰富的功能&#xf…