91糖心欲梦子:解锁数字时代的感官盛宴

核心内容摘要

《千鹤酱开发日记》:在代码的海洋里,寻找那个闪闪发光的你
UU宝贝的成长奇遇记:探索未知,点亮闪耀人生

纲手与雷影的“大狙”之约:忍界巅峰的绝密对决,谁将续写传奇?

设计OS的目的对下与硬件交互管理所有的硬件资源。

对上为用户提供良好稳定高效安全的执行环境。

但是这里的用户是指程序员而不是普通人、用户因为普通用户使用的app软件和客户端是由程序员开发的并不会接触到操作系统而程序员开发软件等必然会接触到操作系统。

所以此处的用户指的是程序员。

在这里插入图片描述

对上对下解析

底层硬件我们肉眼可见的计算机就相当于计算机的底层硬件如CPURAM显示屏等等如下的表格看似他们很多很乱但是他们是遵守冯·诺依曼体系结构的输入设备到内存然后通过中央处理器CPU处理后返回到内存然后到输出设备。

在这里插入图片描述分类具体硬件操作系统管理方式/作用处理器CPU相关CPU、寄存器、时钟/定时器、ALU、FPU任务调度、上下文切换、时间片管理、运算执行存储与管理主存RAM、CacheL1/L2/L

ROM/BIOS/UEFI、MMU内存分配、虚拟内存、内存保护、地址转换输入输出设备磁盘/SSD、键盘、鼠标、显示器、打印机、USB设备等通过设备驱动与 OS 交互抽象为文件/事件/图形输出总线与控制器系统总线PCIe、AMBA 等、I/O 控制器、DMA 控制器提供数据传输通道、管理外设通信、实现高效 I/O特殊硬件中断控制器PIC/APIC、GPU、网卡NIC、TPM安全模块中断管理、图形处理、网络收发、安全加密支持

操作系统但是单单只有硬件是不够的我们还需要有一个软件来对这些硬件进行管理。

例如内存何时从输入设备读取数据读取多少数据内存何时刷新缓冲区到输出设备是按行刷新还是全刷新这些都是由软件进行管理的而这个软件就是操作系统Operator System。

在这里插入图片描述而操作系统又主要进行着四项管理分别是内存管理进程管理文件管理和驱动管理。

内存管理内存分配、内存共享、内存保护以及内存扩张等等。

进程管理其工作主要是进程的调度。

文件管理文件存储空间的管理、目录管理、文件操作管理以及文件保护等等。

驱动管理对计算机设备驱动程序的分类、更新、删除等操作。

驱动但是我们直接让操作系统和底层硬件打交道吗如果我们使用操作系统来对输入内容进行读取操作那么当我们改变键盘的输入模式会导致读取的方式改变我们操作系统内核的源代码就需要重新进行编译这样对操作系统的维护成本太高了所以我们需要一个驱动层。

在这里插入图片描述而驱动层的主要工作就是单独去控制底层硬件的。

例如键盘有键盘驱动网卡有网卡驱动硬盘有硬盘驱动磁盘有磁盘驱动。

驱动简单来说就是对应去访问某个硬件访问这个硬件的读、写以及硬件当前的状态等等驱动层就是直接和硬件打交道的。

而驱动一般是由硬件制造厂商提供的或是由操作系统相关的模块进行开发的例如网卡。

此时操作系统就只需关心何时读取数据而不用关心数据是如何读取的了也就是完成了操作系统与硬件之间的解耦。

用户层而操作系统往上就是面向普通用户的用户层用户可以通过命令行和图形用户界面与操作系统进行交互。

而背后所有的硬件管理与资源分配都由操作系统的内核层来完成。

在这里插入图片描述

系统调用接口如果用户直接访问操作系统的话尤其是内核会破坏其安全性稳定性和隔离性可能导致系统崩溃、数据丢失甚至安全漏洞。

因此现代操作系统都采用 用户态 / 内核态隔离只允许通过受控的 系统调用接口 来访问内核。

在这里插入图片描述

用户操作接口操作系统提供的底层硬件接口通常非常复杂且具体直接操作这些底层资源对于普通用户和开发者来说不现实。

用户操作接口如系统调用、库函数、命令行和图形界面提供了一种 抽象层使得开发者和用户不需要关心复杂的硬件细节而可以通过简单的指令或函数调用来实现目标。

例如通过 printf 输出文本而不需要了解字符如何通过硬件发送到显示器。

在这里插入图片描述

理解操作系统的“管理”精髓先描述再组织这里我们举一个例子来了解管理我们有学生、辅导员和校长三个角色。

显然校长在这三个人当中是管理者学生是被管理者那么辅导员充当什么角色其实我们完成任何一件事情都需要经过两个过程第一个是决定要不要做这件事或者如何做这件事相当于做决策第二是付出行动的做这件事相当于执行。

如上述例子校长是管理者管理学校的学生校长就是那个做决策的人但是他做决策后并不需要自己去执行因为他是校长哈哈哈所以我们辅导员的作用就是去充当做执行的校色。

所以辅导员的主要任务就是执行管理者的决策称之为执行者。

虽然校长是管理者但是我们学生身为被管理者在学校一般能看到校长人吗所以校长是如何做到在我们看不到的情况下对我们进行管理的呢举个例子现在校长要求辅导员将电子信息工程02班成绩排名前十的学生的各科资料以及平时表现记录拿过来他将从这十名同学之中选出三名学生参加本次的全国电子设计大赛当辅导员将资料拿来后校长选出三名学生说“就这三个了你找个老师对这三名学生进行一下强化训练然后参加本次的大赛。

”然后校长就什么也不管了。

在这个过程中校长根本没有见过这三名同学就对其进行了管理他根据的是什么没错他根据的是数据。

实际上学校将我们每个学生的各种信息都进行了管理基本信息、成绩信息以及健康信息等等。

每一套信息就描述了一名学生校长通过对这些信息的管理就能做到对学生的管理。

这么一套信息在C语言当中我们称之为抽象结构体而在C当中又叫做面向对象。

当学生的数量多起来了校长就可以将全部学生的信息组织起来当然组织的方式有很多种链表、顺序表、树而每种组织方式都有其自己的优势于是就有了一门课程专门教我们管理数据的方式那就是数据结构。

这里我们假设校长以双链表的形式将学生的信息组织起来。

此时校长对各个学生的管理实际上就变成了对双链表的增删查改。

当有新生时直接向该双链表加入一个结点当学生毕业后直接将学生信息从该双链表当中移除即可。

总结操作系统的

核心价值在于对下管理硬件、对上提供接口。

通过内核、驱动和用户接口三层递进操作系统既保证了硬件的高效利用又为用户和开发者提供了友好、简洁的交互方式。

同时操作系统的管理精髓在于对复杂资源的抽象与组织这与我们在数据结构中学习到的思想相一致。

掌握操作系统不仅是理解计算机如何工作的关键也是进一步深入编程、系统开发和计算机科学的必经之路。

17Cc最新爆料-17Cc最新爆料应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123