做网站页面的软件,前端开发面试题,沈阳优化网站公司,大渡口的网站开发公司文章目录 什么是操作系统#xff1f;操作系统概念操作系统的目的底层硬件驱动程序操作系统理解系统调用接口 操作系统是如何进行管理的#xff1f;什么是管理#xff1f;操作系统是如何管理硬件信息呢#xff1f; #x1f340;小结#x1f340; #x1f389;博客主页操作系统概念操作系统的目的底层硬件驱动程序操作系统理解系统调用接口 操作系统是如何进行管理的什么是管理操作系统是如何管理硬件信息呢 小结 博客主页小智_x0___0x_ 欢迎关注点赞收藏✍️留言 系列专栏Linux入门到精通 代码仓库小智的代码仓库 什么是操作系统
在上篇【Linux】冯诺依曼体系结构思想中我们介绍了计算机的各个部件的主要功能以及他们工作的方式和步骤但是这些设备都很笨只能提供基本的功能就好比键盘来说它就只能从键盘来获取数据等待被使用那么就少不了一个管理者来管理这些设备这个设备可以在合适的时间使用合适的工具去完成任务那么这个管理者就是操作系统OS。
在整个计算机软硬件架构中操作系统的定位是一款纯正的“搞管理”的软件
操作系统概念
任何计算机系统都包含一个基本的程序集合称为操作系统(OS)。笼统的理解操作系统包括 内核进程管理内存管理文件管理驱动管理其他程序例如函数库shell程序等等 操作系统的目的
与硬件交互管理所有的软硬件资源为用户程序应用程序提供一个良好的执行环境
接下来我们通过计算机层状结构来了解操作系统
底层硬件
计算机底层硬件是指计算机系统中直接参与数据处理、存储和传输的实体部件包括中央处理器CPU、内存、硬盘、主板、显卡、网卡等。这些硬件组成了计算机的核心部分是计算机系统能够正常运行的基础。
驱动程序
驱动程序是一种软件它允许操作系统或其他软件与硬件设备进行通信。驱动程序通常由硬件制造商提供用于控制硬件设备的操作和性能。通过安装正确的驱动程序操作系统可以识别设备并与之通信从而确保设备能够正常工作。常见的驱动程序包括打印机驱动程序、显卡驱动程序、声卡驱动程序等。没有驱动硬件设备是无法使用的。
就好比我们平时使用无线鼠标的时候把USB接口插入电脑之后的几秒钟是用不了鼠标的过了几秒后电脑右下角会弹出驱动安装成功之类的提示此时我们的鼠标才能正常使用一般的驱动程序操作系统会自带也有少部分的需要我们去手动下载。
操作系统
操作系统是计算机系统中最基本的系统软件之一它是一种控制和管理计算机硬件与软件资源的程序集合为应用程序提供运行环境和服务。操作系统负责管理计算机的内存、文件系统、输入输出设备、网络等硬件资源并提供进程管理、内存管理、文件管理、网络管理等核心功能。 操作系统就好比银行的管理人员可以将一家银行比作一个计算机系统操作系统就像银行的管理人员负责协调银行内部各个部门之间的工作确保银行正常运行。具体来说操作系统可以 管理银行的硬件资源如ATM机、服务器、网络设备等保证这些设备能够正常工作。管理银行的软件资源如数据库、应用程序等确保它们能够高效地运行。管理银行的数据如客户信息、账户信息等保证数据的安全性和完整性。管理银行的业务流程如开户、存款、取款等确保各个环节的顺畅进行。管理银行的安全性如防火墙、加密技术等保证银行系统不受到黑客攻击和病毒感染。 通过这些管理措施操作系统可以让银行更加高效、安全地运营。 总结操作系统帮助用户管理好下面的软硬件资源
那么新的问题又来了操作系统为什么要管理好软硬件资源呢 操作系统需要管理好软硬件资源主要是为了提高计算机系统的性能和可靠性确保应用程序能够正常运行。以银行为例如果操作系统不能管理好软硬件资源可能会导致以下问题 银行的ATM机无法正常工作客户无法进行取款和存款操作影响银行的服务质量和客户满意度。银行的数据库出现故障客户的账户信息丢失或泄露对客户的财产安全造成威胁同时也可能损害银行的声誉。银行的应用程序崩溃或运行缓慢导致客户无法正常办理业务影响银行的业务效率和收益。银行的网络受到攻击或病毒感染可能导致银行系统瘫痪造成严重的经济损失。 通过管理好软硬件资源操作系统可以最大限度地避免这些问题的发生确保银行的正常运营和服务质量。 总结操作系统通过管理好底层的软硬件资源(手段),为用户提供一个良好的执行环境 (目的) 操作系统里面会有各种数据。可是操作系统本身并不相信任何用户但是不相信你但是可以让你用。 举个栗子 在银行银行也不会相信你在我们平时取钱办理业务的时候只能通过一个小窗口来进行办理其他的基本都是用防弹玻璃隔开的给我们用户只提供一个窗口。如果银行相信每一个人变成开放的话什么人都可以进银行那么就可能会出现资金丢失等的问题。甚至有些人无心的把某些设备误触了造成财产损失为了避免这些问题银行就会把自己封闭起来但又不能完全封闭这样就不能为用户提供服务也就没人回来银行办理业务因此银行会给我们开放各种窗口来给我们用户提供服务这样银行就可以在不相信用户的同时还能帮你办理各种业务。 操作系统也是这样操作系统在不相信任何用户的情况下还要给用户提供一个良好的执行环境。
理解系统调用接口
操作系统保证数据安全也为了保证给用户提供服务操作系统以接口的方式给用户提供调用的入口来获取操作系统内部的数据。 操作系统使用C语言写的所以操作系统上的接口本质上就是C语言的一个函数是函数就要有返回值参数等等。就好比我们要去银行取钱我们就要带上自己的身份证银行卡存折之类的来通过窗口交给银行的工作人员工作人员通过内部认证确认无误后再来帮我们取钱。 操作系统接口也是如此我们通过系统接口可以传递一些参数就可以拿到我们想要的系统数据以便于我们继续开发。 这样自己内部函数调用 ---- 系统调用 所有的访问操作行为都只能通过系统调用来完成。 系统调用可以对用户输入的参数进行审核因为系统调用的代码是操作系统自己写的不会出现恶意修改的现象这样操作系统既保证了自己安全的情况下又为上层提供服务了有了这些系统调用接口我们就可以允许用户对底层的软硬件资源进行间接管理所以就有些人基于系统调用接口来设计实现各种各样的软件啦。
但是因为系统调用接口难度太大所以就有人对这些操作系统调用接口进行封装将底层操作系统封装成库。 就比如我们平时使用的scanf和printfscanf是从键盘中获取数据到内存其实本质上是scanf函数通过调用系统接口去访问硬件资源printf函数也是通过调用系统接口来访问显示器资源。 但凡是涉及到硬件系统的编程语言都是通过调用系统接口来实现的所有的编程语言都是在系统调用接口之上的。无论编程语言怎么变化系统调用接口都是不会变的。
总结 系统调用接口是操作系统提供给用户程序的一组函数用于访问操作系统内部的数据和资源。这些接口本质上是C语言的函数可以传递参数和返回值。所有的访问操作行为都只能通过系统调用来完成这样可以保证操作系统的安全性和可靠性。系统调用接口可以被封装成库方便用户程序的开发和使用。无论编程语言怎么变化系统调用接口都是不会变的。 库函数和系统调用之间是上下层的调用和被调用的关系库函数在上系统调用在下
操作系统是如何进行管理的
什么是管理
这里我们来举一个例子在大学里有校长有辅导员有学生宿管等等。其中最典型的管理者就是校长。我们大学生就是最典型的被管理者但是我们从开学到毕业估计也见不到校长几次甚至不知道校长长什么样子不知道校长叫什么名字但是我们确实被管理了所以说明管理者和被管理者是不需要见面的。
那么问题又来了管理者在不见到被管理者的情况下是如何进行管理的呢 比如我们在公司中上班有一天被老板叫到办公室老板说小张最近在公司怎么样啊工作顺不顺利啊干了什么事啊有哪些事情没干啊有什么困难啊我们可以发现这个过程中老板是为了获取信息所以见不见面不是必须的只要能够获取信息就可以所以我们只要把信息管理起来就可以完成管理工作。
所以管理的本质通过对 数据的 管理达到对人的管理。
再来回到大学这个例子假如我们大学规定挂科达到9门就要被责令退学小张同学今年 刚好挂了第9门课然后到每年期末校长都会收到这些挂科信息校长拿到了小张的挂科信息就对小张说你挂了9门课了可以去办理退学了。在这个过程中校长获取了小张的挂科信息进而对小张进行了管理。进一步说明了管理的本质就是通过对数据的管理来达到对人的管理。
那么又有新的问题了管理者和被管理者的面都不见管理者如何拿到我们的数据呢 在大学中我们的成绩挂科情况会通过辅导员来进行汇总来提供给校长那么辅导员是管理者吗
我们这个世界上所做的事情就分为两种
做决策做执行
真正的管理者他的核心工作应该放在做决策上具有决策权。 再来回到这个例子当中辅导员对于学生大部分工作是没有决策权的所以辅导员不算是真正意义上的管理者而是在做学校安排的一些工作而是一个执行者。 所以管理者需要通过执行者来获取被管理者的数据信息。
回到我们的计算机当中校长就相当于操作系统辅导员就是驱动程序学生就是软硬件资源。
驱动程序来获取软硬件资源再将获取的资源交给操作系统操作系统再对数据进行处理以达到对软硬件资源的管理。 比如我们的网卡在日常使用中遇到了故障那么驱动程序就会把错误信息传递给操作系统操作系统能自己处理的话就自己处理处理不了就会将错误信息报告给用户来告知我们网卡有问题了。
操作系统是如何管理硬件信息呢
我们再来回到大学这个例子。校长想要收集每个学生的信息就给各个学院的辅导员发了一张Excel表格上面有要收集的信息等辅导员收集好信息之后校长看着眼前的这一大堆表陷入了沉思心想这要找一个人还不得给我找累死正好这个校长之前是个程序员他就想着把这些学生的信息用一个结构体保存起来再加上一个结构体指针把这些学生一个个用链表链接起来解释代码如下
struct student
{char 学号[];char 姓名[];char 班级[];char 手机号[];int 身高;................struct student* next;
};通过结构体把每个学生的属性信息保存起来再通过链表将每个学生链接起来。 这样保存成链表就可以把对学生信息的管理转换成对链表的增删查改。 假如我们学校要选举行运动会校长要在全校学生中找一个身高最高的有了链表就可以将这个问题转换为遍历这个链表找到身高属性最高的那个节点就可以查看到这个人的所有信息。 那么有了链表校长就只需要把学生链表管理好就可以了再也不用对着Excel表格疯狂查找了。 这样我们就成功的将 对学生的管理 转换成为了 对链表的增删查改
这里我们小小总结一下校长在列举学生信息的过程叫做描述的过程而把每个学生的结构体链接起来的过程叫做组织的过程。这样子我们就可以得到对数据的管理的过程分为两个步骤
先描述用struct结构体保存属性信息再组织用结构体指针将结构体对象链接起来。
在操作系统中也一样我们需要定义一个结构体结构体里面存储硬件设备的各种属性比如名称设备状态。设备容量等等这样一来一个结构体对象就代表一个硬件设备接下来再用各种结构体指针将这些结构体对象链接起来对这些设备链表进行管理。以至此在操作系统中管理任何对象最终都可以转换成为对某种数据结构的增删查改
小结
今天我们学习了Linux操作系统是如何进行管理的相信大家看完有一定的收获。种一棵树的最好时间是十年前其次是现在 把握好当下合理利用时间努力奋斗相信大家一定会实现自己的目标加油创作不易辛苦各位小伙伴们动动小手三连一波~~~本文中也有不足之处欢迎各位随时私信点评指正