【Linux】冯诺依曼体系结构(硬件)、操作系统(软件)、系统调用和库函数 --- 概念篇

在这里插入图片描述

👦个人主页:Weraphael
✍🏻作者简介:目前正在学习c++Linux还有算法
✈️专栏:Linux
🐋 希望大家多多支持,咱一起进步!😁
如果文章有啥瑕疵,希望大佬指点一二
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注😍


目录

  • 一、认识冯诺依曼体系结构(硬件)
      • 1.1 体系结构
      • 1.2 体系之间是如何工作的
  • 二、操作系统(软件)
      • 2.1 什么是操作系统
      • 2.2 操作系统为什么要管理
      • 2.3 操作系统是怎么管理
  • 三、系统调用和库函数

一、认识冯诺依曼体系结构(硬件)

1.1 体系结构

我们常见的计算机,如笔记本,台式机等,大部分都遵守冯诺依曼体系

在这里插入图片描述

截至目前,我们所认识的计算机,都是有一个个的硬件组件组成

  • 输入设备:键盘、鼠标、摄像头、麦克风、磁盘、网卡等
  • 输出设备:显示器、播放器、磁盘、网卡等
  • 存储器:指的是内存。(注意:磁盘和U盘统称外存)
  • 运算器:对输入的数据进行计算(算术运算、逻辑运算)
  • 控制器:控制计算硬件流程

运算器和控制器合起来叫做中央处理器,也就是我们常说的CPU

注:以上五个部分其实是独立的个体。

所以各个硬件单元必须用“线”链接起来,这些线就是总线

  • 系统总线(CPU和内存)
  • IO总线(内存和外设)

1.2 体系之间是如何工作的

在这里插入图片描述

输入设备的的数据不能直接传送到CPU

  1. 首先通过输入设备传给存储器
  2. 然后由存储器交给CPU
  3. 经过运算后,CPU再交给存储器
  4. 最后才能给输出设备

那么为什么是以上顺序呢?

这就要涉及到存储的效率问题

【金字塔存储体系】

在这里插入图片描述

这是因为外设和CPU速度差距太大了。就类似于木桶原理,如果外设直接和CPU交互,那么计算机整个体系结构的效率就以输入输出的效率为主,效率相当低下;于是就选择既不快,也不快的存储器来当中介。

总之,所有设备都只能直接和内存打交道。

二、操作系统(软件)

2.1 什么是操作系统

概念:操作系统是一款对硬件的管理,也可以是对软件的管理的软件。

2.2 操作系统为什么要管理

以下是操作系统在计算机中所处的层次图:

在这里插入图片描述

最底层就是硬件(眼睛能看的到,摸得着),早期计算机是通过硬件电路来控制的,需要用户手动进行硬件控制。随着科技的发展,硬件变得越来越完善,所以就要有一款软件对硬件进行管理,我们称为操作系统。而硬件也随之变得复杂,功能也越来越多,因此在操作系统和硬件之间还有一个设备驱动。而有这些还是不够的,比如一个电脑,买回来仅仅是铁疙瘩,但是安装操作系统后,就可以开机(应用软件)。因此,在操作系统之上,我们还需要各种不同的应用软件,来满足用户的不同应用场景。

因此,操作系统的【核心工作】(为什么会有操作系统):对下管理好软硬件资源的手段,以达到为用户提供良好的(稳定、快速、安全)操作/使用环境

操作系统给我们提供非常良好的服务,并不代表操作系统会相信我们,反而,操作系统不相信任何人

举例理解:就好比银行给我们提供良好的服务,但所有服务都是基于一个小小的柜台窗口,因为银行在为我们提供服务时要确保自身的安全,因此银行的服务是基于窗口进行的

而操作系统也是一样的,为了保证自己数据安全,也为了保证给用户能够提供服务,操作系统以接口的方式给用户提供调用的入口,来获取操作系统内部的数据(对上提供接口),这种调用称为系统调用。

所以说,所有访问操作系统的行为,都只能通过系统调用完成!

2.3 操作系统是怎么管理

为了让大家更好理解,以学校系统为例。

  • 在学校系统中,我们学生是典型的被管理者,校长是典型的管理者。

但是我们有天天见到校长吗?实际上并没有。因此,校长(管理者)和学生(被管理者)是不需要见面的。

  • 校长和学生不见面,那么校长是如何管理学生的呢?

其实,校长只需要知道你在学校的数据(情况),就能实施某种意义上的管理。因此,管理的本质:通过数据的管理,来达到对人的管理

  • 那么问题来了:校长是如何拿到数据的呢?

这我们都可以想到,通过老师即可。因此,管理和被管理之间还有一个老师。

  • 那么老师是管理者吗?

有的人想肯定是,因此自己天天在学校都是被老师管hh。但是,老师并不是管理者。

实际上,我们对一个事情的思考分为两种:

  1. 决策(做 or 不做)
  2. 执行(做)

在整个学校系统中,校长是做决策的,而老师才是真正意义上的执行者。

通过以上例子,我们可以得出一下结论:

  1. 操作系统 — 管理者
  2. 驱动程序 — 执行者
  3. 软硬件资源 — 被管理者
  • 接下来又有一个问题:由于学校有成千上万个学生,每个年级的老师将学生的数据全部上报,数据量太大的时候,想要管理者(校长)做出一个决策是非常困难的。

在学校,常见的就是老师发出一个表格给学生来收集信息,比如姓名,性别,年龄,电话等。这个过程就是一个描述的过程。当每个老师将这个表整理好以后再给校长

那么校长面对成千上百万张纸,如何进行高效的数据管理呢?

回想我们一路学习的知识,是不是有一门叫做数据结构。

  • 比如我们用一个链式结构(也可以是别的数据结构),来存储每一个人的信息,这就是描述的过程
  • 接着我们就可以实例化多个对象。再通过多个函数(方法)来进行管理,这个步骤我们称为组织

这样的话,校长就成功的对学生的管理工作,转换成为了对链表的增删改查。

// 描述
struct student
{char _college[]; //学院char _name[];  //姓名char _class[];  //班级......struct student* next;
};

【总结】

  • 关于如何管理,答案是:先描述,后组织
  • 同时,这就注定了在操作系统中,一定存在了大量的数据结构来对数据进行高效的管理。

三、系统调用和库函数

在这里插入图片描述

  • 系统调用:由于操作系统不相信任何用户,就需要有用户操作接口,供上层开发使用。
  • 库函数:库函数将系统调用进行了封装和抽象,使得程序员能够更加方便地使用高级接口来完成各种任务,而不必关心底层系统调用的具体实现。因此,计算机语言都是建立在操作系统上实现的。

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

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

相关文章

java多人聊天

服务端 package 多人聊天;import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList;…

Nero刻录光盘软件-极好用

目录 一、下载Nero 二、软件安装 三、刻录数据 前言 刻录之前准备一张新的光盘,之前一旦使用过,就无法刻录,一定要新的光盘。 一、下载Nero nero官网下载地址:Nero下载 csdn免费下载地址:https://download.csdn.…

迈向成功:解读新能源汽车企业竞争优势策略

尽管受汽车“缺芯”、疫情等因素的制约, 新能源汽车 的销量表现仍非常亮眼。我国新能源汽车行业从起初的政策驱动,逐步进入“成本技术”驱动阶段;动力电池为核心环节,呈现“一超多强”格局,整车厂行业格局远未形成。新…

TCP实现一对一聊天

一,创建类 二,类 1.ChatSocketServer类 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Sca…

visionOS空间计算实战开发教程Day 11 标题动画

本文我们要在visionOS内实现一个标题输出的动画效果。主要讲​​ViewModifier​​​协议,修饰符(modifier)应用于视图或另一个视图修饰符,生成原值的另一个版本。在希望创建一个可应用于不同视图的修饰符时可实现​​ViewModifier…

docker基本管理和docker相关概念

docker是开源的的应用容器引擎,基于go语言开发的,运行在linux系统当中的开源的轻量级的"虚拟机。 docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的,可以移植的,自给自足的容器 docker的宿主机是linux系…

[Unity数据管理]自定义菜单创建Unity内部数据表(ScriptableObject)

Unity 在开发的时候如果数据量比较大&#xff0c;或者一部分数据需要存在云端&#xff0c;那么就需要一些数据库 轻量型到大型的包括&#xff1a; 数组-内存存储读取 列表-内存存储读取 List<T> tList new List<T>(); XML-硬盘存储读取 JSON-硬盘存储读取 …

pycharm使用Anaconda中的虚拟环境【我的入门困惑二】

Anaconda的作用 Anaconda的存在&#xff0c;使得一台电脑上可以存在多个不同版本的python和相应的包&#xff0c;这解决了多个项目运行时&#xff0c;所需要的python和包版本不同的问题。 本文内容 今天就来简单说说如何在pycharm使用Anaconda中的虚拟环境。 详细介绍 首先…

慎用!3个容易被打的Python恶搞脚本

Python 无限恶搞朋友电脑&#xff0c;别提有多爽了&#xff0c;哈哈&#xff0c;打造自己的壁纸修改器&#xff0c;电脑无限锁屏&#xff0c; 无线弹窗&#xff0c;都在这里&#xff01;&#xff01;&#xff01; 1、修改电脑桌面壁纸 工具使用 开发环境&#xff1a;python3…

设计原则 | 依赖转置原则

一、依赖转置原则&#xff08;DIP&#xff1a;Dependence Inversion Principle&#xff09; 1、原理 高层模块不应该依赖低层模块&#xff0c;二者都应该依赖于抽象抽象不应该依赖于细节&#xff0c;细节应该依赖于抽象 2、层次化 Booch曾经说过&#xff1a;所有结构良好的面…

【408】计算机学科专业基础 - 计算机组成原理

一、计算机系统概述 【复习提示】 本章是组成原理的概述&#xff0c;考查时易针对有关概念或性能指标出选择题&#xff0c;也可能综合后续章节的内容出有关性能分析的综合题。掌握本章的基本概念&#xff0c;是学好后续章节的基础。部分知识点在初学时理解不深刻也无须担忧&am…

计算机操作系统3

1.虚拟机 VM 两类虚拟机的对比&#xff1a; 2.进程 进程的特征&#xff1a; 进程状态的转换&#xff08;五大状态&#xff09; 3.进程控制原语的作用 4.线程 ​​​​​线程的属性 实现方式 5.调度算法的评价指标

没有实权的PM如何做好项目管理?

在一些公司中&#xff0c;项目经理&#xff08;PM&#xff09;可能并没有实权&#xff0c;这种情况下如何做好项目管理呢&#xff1f;实际上&#xff0c;即使没有实权&#xff0c;PM仍然可以通过一些方法来确保项目的顺利进行。 首先&#xff0c;PM可以通过建立良好的沟通渠道来…

2024年软件测试面试八股文

前言 &#xff08;第一个就刷掉一大批人&#xff09; 有很多“会自动化”的同学来咨询技术问题&#xff0c;他总会问到我一些元素定位的问题。元素定位其实都不算自动化面试的问题。 一般我都会问&#xff1a;你是定位不到吗&#xff1f;通常结果都是说确实定位不到。 做自…

Windows磁盘管理中硬盘无法初始化怎么办?

硬盘未出现在“此电脑”选项下的情况并不少见&#xff0c;当您打开磁盘管理&#xff0c;它要么显示为磁盘未知&#xff0c;要么显示为未分配的空间&#xff0c;或者只是不显示磁盘容量。为了访问您的硬盘并充分利用它&#xff0c;您需要对其进行初始化。不幸的是&#xff0c;您…

Apache Kafka CVE-2023-25194(metasploit版)

Step1&#xff1a;用docker搭建环境 Step2&#xff1a;docker查看映射端口 Step3&#xff1a;访问特定端口&#xff0c;然后靶标应用。 Step4&#xff1a;用metasploit进行攻击&#xff1a; 首先&#xff0c;打开metasploit&#xff0c;然后查询需要攻击的板块&#xff0…

前端编码中快速填充内容--乱数假文

写前端页面的时候&#xff0c;如果要快速插入图片&#xff0c;可以使用 https://picsum.photos/ 详见笔者这篇博文&#xff1a; 工具网站&#xff1a;随机生成图片的网站-CSDN博客 可是&#xff0c;如果要快速填充文字内容该怎么做呢&#xff1f; 以前&#xff0c;我们都是…

【EI征稿中|SPIE出版】 第四届传感器与信息技术国际学术会议(ICSI 2024)

第四届传感器与信息技术国际学术会议&#xff08;ICSI 2024&#xff09; 2024 4th International Conference on Sensors and Information Technology&#xff08;ICSI 2024&#xff09; 第四届传感器与信息技术国际学术会议&#xff08;ICSI 2024&#xff09;将于2024年1月5…

Windows server 部署iSCSI共享磁盘搭建故障转移群集

在域环境下&#xff0c;在域控制器中配置iSCSI服务&#xff0c;配置共享网络磁盘&#xff0c;在节点服务器使用共享磁盘&#xff0c;并在节点服务器中搭建故障转移群集&#xff0c;实现故障转移 环境准备 准备3台服务器&#xff0c;配置都是8g2核&#xff0c;50g硬盘&#xf…