Linux:操作系统简介

news2025/1/12 6:28:05

前言:

        在本片文章,小编将带大家理解冯诺依曼体系以及简单理解操作喜欢,并且本篇文章将围绕什么以及为什么两个话题进行展开说明。

冯诺依曼体系:

        是什么:

                冯诺依曼体系(Von Neumann architecture)是一种计算机体系结构模型,由数学家约翰·冯·诺依曼提出。该模型是现代计算机设计的基础。

        在理解冯诺依曼前,我们先认识一下上图冯诺依曼体系的结构分别是什么。

        输入设备:

                键盘,鼠标,网卡,磁盘,摄像头....

        输出设备:

                显示器,磁盘,打印机...

        CPU:

                首先CPU=运算器+控制器。CPU简而言之就是对数据进行计算控制等操作的设备。而CPU的获取、写入数据等操作必须依赖于存储器。

        存储器:

                存储器就是内存。

        为什么:

                一个软件运行的时候,是需要先将软件加载到内存的。为什么呢?因为体系结构规定。而在运行之前,我们的软件是存储在磁盘的。

                当我们点击一个程序比如qq,首先qq在磁盘中,需要将qq文件拷贝到内存,再通过CPU对qq执行代码来访问我们的数据,接着再拷贝输出到我们的显示器上。 

                由此我们可以得出结论,数据的输出本质是从一个设备 "拷贝" 到另一个设备上,而拷贝的效率是由设备进行决定。并且CPU在数据层面上之和内存打交道,而外设只和内存打交道。

                而这时候可能有同学问那么我们是否可以不要存储器,只需要CPU进行运算,这样效率是不是会快很多。

                答案是可以的,但这样效率其实也快不了多少,并且造价会非常高。输入设备以及输出设备的拷贝速率是毫秒级别,而cpu的拷贝速率是微秒级别。参考上图,我们知道越靠近cpu计算速度越快,但存储容量更小而且更贵。而越远离cpu计算速度就越慢,存储空间就越大,价格就耕地。

        这里会提到一个木桶原理

        一个木桶所能存储的容量,不是由最高的那个木板决定,而是由最低的那个木板决定。

        那么在冯诺依曼体系中也是如此,如果不要存储器,效率也不会提高多少,因为在你拷贝数据的时候CPU就在处理了,而可能CPU都将现有的数据处理完成后,你输入设备都还没拷贝完,CPU还得在那么等着数据流入。

        有了内存,那么文件中的数据就可以提前先存储到内存,再由cpu进行处理。

        所以当代计算机其实是性价比的产物。虽然冯诺依曼体系看着简单,但是其意义是非常重大的,这会让计算机的价格更加亲民,也就有更多的网民。才会大大推动互联网的发展以及创新。

简单理解操作系统:

        是什么:

                操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的系统软件,它为计算机上的各种应用程序提供支持和服务。

                操作系统包括:内核(进程/线程/任务管理,文件管理,以及内存管理等等)与其他程序(函数库,shell程序等)。

                就比如我们以前经常听说,安卓的底层用的就是Linux,那么其实意思是安卓系统的内核用的是Linux的内核。只是在外壳上做了相关的改变。

        为什么:

                

         上图简单展示了计算机系统从用户操作到硬件控制的整个流程,每个层次都有其特定的功能和责任,共同协作以实现系统的正常运行。

        假设我在编写代码,正在输出一个print函数,那么这个print函数是怎么调用的呢?

        首先print函数是C语言的库函数,我们会先进入到用户操作接口层,去调用print函数,接着print函数里面封装了系统调用函数接口(write),而write就会调用操作系统的驱动管理,在通过分类去找是显示器的驱动,接着由驱动去调用硬件显示器去写入我们需要向显示器写入的语句。

        print的本质就是将数据写入到硬件,显示器中。

        那么通过上图以及例子我们可以得出一些结论:

                1.软硬件体系结构采用层状结构,这体现了计算机系统具有高内聚、低耦合的特性。这样大大提高了操作系统的健壮性以及可维护性。

                高内聚指的是同一层内部的功能高度相关,层内的组件紧密协作,彼此之间的依赖性强,从而提高了每一层的独立性和功能专注性。

                低耦合则意味着各层之间的依赖性较弱。每一层通过标准化的接口与其他层进行交互,而不直接依赖于其他层的具体实现。

                  2.访问操作系统必须使用系统调用,而系统调用其实就是函数,基本上是用C语言封装的。而不让用户直接访问操作系统,也是为了确保系统数据以及自身的安全性。比起用户,操作系统更相信自己。

                3.我们的程序只要你判断出它访问了硬件,比如print,那么它就必须贯穿整个操作系统。        

                4.设计操作系统的目的,对上层,为用户或程序,提高良好的执行环境。对下层,与硬件交互,管理所有软硬件。

        再次重谈是什么:

                在整个计算机结构体系中,操作系统的定位:就是做管理。对于一件事情的管理,我们又分为决策以及执行。比如我要吃饭,这是决策。我正在吃饭,这是执行。

                理解管理:

                        

         现在将场景切换到校园,我们假设操作系统是校长,驱动程序是辅导员,硬件是学生。

        校长对学生做管理,需不需要校长与学生进行见面?如果需要见面那学生有几千几万个的时候等校长见完所有学生都猴年马月了。所以管理者和被管理者见面不是必要条件。

        那么校长与学生不见面应该如何管理?其实是根据"数据"进行管理。我们学生都有学号,身高,体重,成绩等信息,都拥有共同条件,只是数据不同,那么在系统中,我们将这些数据想要进行整合应该怎么整合?答案是struct(结构体).

        此时每一个学生都是一个节点,而学生节点中有next指针指向下一个学生(节点),那么此时就将对学生的管理转化成对链表的管理。

        如果需要筛选出排名前10名的学生,就通过算法进行获取,而如果要劝退一名成绩最差的学生,就将尾节点进行删除,刚开学要录入新生信息就新增节点。所以,校长对学生的管理工作本质上就转化为对链表的增删查改。而这中间做的工作,比如什么提交信息,获取信息,就是驱动程序做的工作。

                                                                                                

                                                                        那么本篇文章到这里就结束了,感谢各位观看!!!

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

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

相关文章

为什么选择平滑样条?

为什么选择平滑样条? 抗噪声能力: 平滑样条通过引入平滑参数 λ \lambda λ,允许你在以下两者之间找到平衡: 拟合误差(与数据的偏离):希望曲线接近数据点。光滑性(曲线的平滑程度&a…

边缘计算网关解决车间数据采集的关键问题

随着工业4.0和智能制造的快速发展,车间数据采集与分析已成为提升生产效率、保证产品质量、优化加工过程的关键环节。传统的数据采集方式,如中心化的数据处理模式,在面对海量数据、实时性要求高的工业场景时,往往显得力不从心。边缘…

C语言之assert断言

1.assert的使用形式 #include <assert.h>assert (表达式); (1)在c语言中&#xff0c;宏&#xff0c;是一种预处理指令。assert(表示式) 就是一个宏 (2)表达式必须是一个能计算出真或假的布尔条件&#xff0c;它通常意味着 该表达式是一个能够返回整数值的表达式&#…

【Linux】正则表达式

正则表达式是一种可供Linux工具过滤文本的自定义模板&#xff0c;Linux工具&#xff08;如sed、gawk&#xff09;会在读取数据时使用正则表达式对数据进行模式匹配。 正则表达式使用元字符来描述数据流中的一个或多个字符。它是由正则表达式引擎实现的。正则表达式引擎是一种底…

hutool糊涂工具通过注解设置excel宽度

import java.lang.annotation.*;Documented Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER}) public interface ExcelStyle {int width() default 0; }/*** 聊天记录*/ Data public class DialogContentInfo {/**…

全面教程:Nacos 2.4.2 启用鉴权与 MySQL 数据存储配置

全面教程&#xff1a;Nacos 2.4.2 启用鉴权与 MySQL 数据存储配置 1. 配置 Nacos 开启鉴权功能 1.1 修改 application.properties 配置文件 在 Nacos 2.4.2 中&#xff0c;开启鉴权功能需要修改 conf/application.properties 文件。按照以下方式配置&#xff1a; # 开启鉴权…

【学习】CMMM智能制造能力成熟度评估的重要性

CMMM认证通过对企业当前生产状态的全面评估&#xff0c;能够精准地确定其智能化生产的程度&#xff0c;并将企业的智能化生产水平划分为五个等级&#xff0c;包括初始级、已定义级、以管理级、卓越级和顶级。这种等级划分使得不同类型的企业能够根据自身实际情况&#xff0c;选…

特制一个自己的UI库,只用CSS、图标、emoji图 第二版

图&#xff1a; 代码&#xff1a; index.html <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>M…

Y3编辑器地图教程:ORPG教程、防守图教程

文章目录 Part1&#xff1a;ORPG教程一、章节人物选择1.1 Logo与界面动画1.2 章节选择与投票1.2.1 设计章节选择完毕后的操作1.2.2 玩家投票统计 1.3 多样化的人物选择系统1.3.1 异步模型显示1.3.2 双击和键盘选人1.3.3 UI选人 1.4 简易存档 二、对话与任务系统2.1对话UI与触发…

Ubuntu问题 -- 硬盘存储不够了, 如何挂载一个新的硬盘上去, 图文简单明了, 已操作成功

需求 我现在有一个ubuntu22.04操作系统的服务器, 但是当前硬盘不够用了, 我买了一个1T的SSD固态硬盘, 且已经安装在服务器上了, 我需要将这个硬盘挂载到当前ubuntu的某个目录上 开始 1. 确认新硬盘是否被系统识别 打开终端&#xff0c;输入以下命令查看系统识别到的硬盘&…

吴恩达 提示词工程 课程笔记

一、Introduction 二、Guidelines Principle1: 清晰&#xff08;不一定是简短的&#xff09;而具体的指令 Tactic1: 使用分隔符 Triple quotes: “”" Triple backticks: Triple dashes: — Angle brackets:< > XML tags: < tag></ tag> Tactic2:…

网络安全设备主要有什么

网络安全设备指的肯定是硬件设备了&#xff0c;国内卖安全硬件的没几家&#xff0c;天融信&#xff0c;启明星辰&#xff0c;绿盟&#xff0c;深信服&#xff0c;就这四家卖的比较齐全吧&#xff0c;上它们官网看一下&#xff0c;就知道市面上主要的网络安全设备有哪些了。分类…

【C++补充】第一弹---位图技术揭秘:内存优化与快速访问

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1 位图 1.1 位图相关面试题 1.2 位图的设计及实现 1.3 C库中的位图 bitset 1.4 位图的模拟实现 1.5 位图的优缺点 1.6 位图相关考察题目 1 …

解决nginx多层代理后应用部署后访问发现css、js、图片等样式加载失败

一般是采用前后端分离部署方式&#xff0c;被上一层ng代理后&#xff0c;通过域名访问报错&#xff0c;例如&#xff1a;sqx.com.cn/应用代理路径。 修改nginx配置&#xff0c;配置前端页面的路径&#xff1a; location / {proxy_pass http://前端页面所在服务器的IP:PORT;pro…

第34天:安全开发-JavaEE应用反射机制攻击链类对象成员变量方法构造方法

时间轴&#xff1a; Java反射相关类图解&#xff1a; 反射&#xff1a; 1、什么是 Java 反射 参考&#xff1a; https://xz.aliyun.com/t/9117 Java 提供了一套反射 API &#xff0c;该 API 由 Class 类与 java.lang.reflect 类库组成。 该类库包含了 Field 、 Me…

Qt天气预报系统获取天气数据

Qt天气预报系统获取天气数据 1、获取天气数据1.1添加天气类头文件1.2定义今天和未来几天天气数据类1.3定义一个解析JSON数据的函数1.4在mainwindow中添加weatherData.h1.5创建今天天气数据和未来几天天气数据对象1.6添加parseJson定义1.7把解析JSON数据添加进去1.8添加错误1.9解…

SQL SERVER 2016 创建用户。

一、在实例中创建用户 二、在数据库中创建用户分配表格权限. 三、也可以在表格属性中分配用户权限 四、搜索对象中可以选择表、视图等等内容.

汽车信息安全 -- S32K1如何更新BOOT_MAC

目录 1.安全启动模式回顾 2.为什么要讨论BOOT_MAC 3.S32K1如何更新? 1.安全启动模式回顾 之前提到过,S32K1系列提供了Crypto Service Engine硬件加密模块(简称CSEc),大家可以通过该芯片系统寄存器SDID.FEATURES(System Device Identification Register)来判断自己的片子…

7 分布式定时任务调度框架

先简单介绍下分布式定时任务调度框架的使用场景和功能和架构&#xff0c;然后再介绍世面上常见的产品 我们在大型的复杂的系统下&#xff0c;会有大量的跑批&#xff0c;定时任务的功能&#xff0c;如果在独立的子项目中单独去处理这些任务&#xff0c;随着业务的复杂度的提高…

智慧城市应急指挥中心系统平台建设方案

建设背景与目标 智慧城市应急指挥中心系统平台的建设&#xff0c;源于对城市管理精细化、智能化的迫切需求。平台旨在通过整合各方资源&#xff0c;实现应急事件的快速响应与高效处置&#xff0c;提升城市安全管理水平。 前端设计与信息采集 前端设计注重立体化、全方位信息…