【Linux】冯诺依曼体系与操作系统底层原理详解!新手必看攻略



前言


一、计算机的"基因密码"——冯诺依曼体系结构

冯诺依曼体系结构(Von Neumann Architecture)是现代计算机设计的基础框架,由数学家约翰·冯·诺依曼(John von Neumann)于1945年提出。其核心思想是将程序和数据存储在同一存储器中,并通过指令执行机制完成计算任务,结构图如下。
在这里插入图片描述

1.1 硬件四重奏:核心部件揭秘

存储器:

  • 相当于计算机的"短期记忆库",这里的内存(Memory)可不是硬盘哦!
  • ​黄金法则:CPU只能与内存直接对话,外设数据必须经过内存中转

输入输出设备:

  • 输入设备:键盘与鼠标是典型的输入设备
  • 输出设备:显示器打印机等则是输出设备
  • 输入输出设备统称外设

运算器:

  • 算术逻辑单元(ALU):负责1+1=2这样的数学运算
  • 控制单元(CU):协调各硬件工作
  • 关键理解:CPU处理速度比外设快万倍,这解释了为什么需要内存做缓冲

数据高速公路(总线)

  • 系统总线:CPU与内存的专用通道
  • I/O总线:外设接入的通用通道
  • 类比城市交通网,不同等级道路承载不同流量

通过日常案例理解设计哲学

在Word写文档时:
1.键盘(输入设备)→ 内存暂存字符
2. CPU实时处理排版指令
3. 最终成果由内存→硬盘(输出设备)保存

1.2 木桶效应与存储金字塔

由于输入输出设备太慢,所有的数据先缓存到内存当中,再由CPU与内存进行并行运算,提高运算效率。

存储金字塔规则​(速度降序)

CPU寄存器 → 2. 高速缓存 → 3. 内存 → 4. 磁盘

在这里插入图片描述

关于冯诺依曼,需要注意:

  • 这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  • 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。

二、操作系统(Operator System)

2.1 系统架构全景图

笼统的理解 :任何计算机系统都包含一个基本的程序集合,称为操作系统(OS),用来管理上述的冯诺依曼硬件结构,其本身是一款软件。其次,我们了解到,CPU的控制器可以调度什么时候开启或关闭输入设备、输出设备等,而CPU的控制器信号就来源于操作系统的指令。

核心组件

  • 内核:系统的"心脏",包含四大管理模块(进程管理,内存管理,文件管理,驱动管理

  • Shell:用户与内核的"翻译官"

  • 驱动程序:硬件的"专属说明书"

     所有的硬件如果要让软件访问必须要有对应的驱动程序。
    

在这里插入图片描述

设计OS的目的

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

这里的用户不单单指的是我们自己,用户包括(普通用户、程序员(开发各种应用)、),操作系统为了保护自己数据安全,也为了保证给用户能提供服务,以接口的方式给用户提供调用的入口,来获取操作系统内部的数据。

系统调用接口:C实现的自己内部的函数调用,所有访问操作系统的行为(任何语言的编写、指令的执行),都只能通过系统调用接口实现。

2.2 管理的艺术:先描述,再组织

管理的本质是对数据进行管理,通过先描述,再组织(结构体)的流程,转化为最某种数据结构的增删查改。这个过程称之建模,其过程可以类比为校园情景:学生信息(先描述)都存放在教务管理系统中(再组织)。操作系统与软硬件资源并不需要直接接触,只需要拿到软硬件资源的数据即可进行一些决策

操作系统(校长)
驱动程序(辅导员)
软硬件资源(学生)

// 以进程管理为例的结构体伪代码
struct process {
    int pid;        // 学号
    char name[20];  // 学生姓名
    int status;     // 状态(上课/自习/请假)
    // ...其他属性
};

管理本质:通过数据结构建立数字孪生,所有硬件资源都会被抽象成结构体对象。

2.3 系统调用 vs 库函数

系统调用
在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。

库函数
系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,开发者可以对部分系统调用进行适度封装,从而形成库函数,有了库,就很有利于更上层用户或者开发者进行二次开发。

💡开发经验:就像不能直接找校长办事,应用程序必须通过系统调用接口访问内核

结语

👍 ​感谢各位大佬观看。如果本文有帮助,请点赞收藏支持~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值