【Linux】冯诺依曼体系与操作系统
Linux冯诺依曼体系与操作系统1、冯诺依曼体系结构我们不常见的计算机如服务器大部分都遵守冯诺依曼体系1.1 五大硬件部件五大组成输入设备、存储器、运算器、控制器、输出设备输入设备键盘鼠标扫描仪摄像头话筒网卡磁盘等输出设备显示器打印机内置播放器网卡磁盘等注意磁盘属于外部存储设备计算机可以从磁盘中读取数据也可以把数据写入磁盘中输入、输出设备都是外部设备存储器这里的存储器指的是内存它是一种硬件级别的缓存空间中央处理器CPU由运算器和控制器共同构成CPU只能对存储器进行读写不能直接访问外设运算器负责算术运算控制器进行发送控制信号整体流程输入 → 计算 → 输出数据先输入到内存CPU 从内存拿数据做运算结果放回内存再交给输出设备展示1.2 内存CPU不能从输入设备读取数据并写入输出设备数据必须从输入设备写入存储器CPU再从存储器读取数据进行计算再把计算结果写入存储器再从存储器中刷新刷新出结果存储分级金字塔计算机中内存的读取速度是微秒级别外部设备的读取速度是毫秒级别CPU和外设之间的速度差较大如果将CPU和外设直接连接那么CPU 会疯狂等待外设CPU 大部分时间空闲由木桶效应整机效率极低核心思想局部性原理程序访问数据有局部性刚用过的数据很大概率马上还要用访问一块数据旁边的数据也很可能马上访问把即将要用的数据提前预加载到高速内存CPU 直接跟高速内存交互减少访问慢速外设所有程序想要运行必须先加载到内存C 语言编译得到二进制可执行文件放在磁盘磁盘是外设CPU 不能直接读磁盘上的程序必须拷贝进内存CPU 才能执行它程序就是数据指令和数据同等看待全都存放在存储器IO原理数据流动的本质是拷贝输入时键盘输入设备把数据拷贝到内存CPU从内存读取数据做处理如果要打印CPU处理完会把数据写回到内存内存的数据再拷贝到显示器输出设备显示出来计算机中I为Input输入、O为Output输出IO效率问题由设备的拷贝效率决定聊天时的数据流动发送方键盘中输入字符串数据拷贝进入内存CPU 处理内存的数据拷贝给网卡输出设备网卡把数据通过网络传输到对方电脑接收方网卡作为输入设备网络数据拷贝到本机内存CPU 读取内存处理内存的数据拷贝给显示器输出2、操作系统2.1 概念任何计算机系统都包含一个基本的程序集合称为操作系统(OS)。笼统的理解操作系统包括内核进程管理内存管理文件管理驱动管理其他程序例如函数库shell程序等等狭义上的操作系统是内核Kernel内核是操作系统最核心的部分包含四大功能内存管理文件管理驱动管理进程管理广义上的操作系统是内核外壳shell系统库图形界面预装软件2.2 操作系统存在的目的手段管理全部软硬件资源目的给用户提供稳定、高效、安全的使用环境计算机的层状结构操作系统的管理学校模型校长 操作系统内核决策者辅导员 驱动程序中间执行者学生 底层硬件网卡、硬盘等外设管理者和被管理者不需要见面校长不会直接管理每一个学生做出的决策交给辅导员执行同样操作系统不会直接操作硬件而是交给驱动程序由驱动程序执行管理的本质是对被管理者身上的数据做管理数据是管理者做决策的依据比如学校管理学生学生有姓名、院系、成绩、特长等属性。那么如果想统计学生的信息应利用结构体如果找出成绩最差的学生劝退此时想快速找到该学生应利用链表将结构体组织起来操作系统管理进程、管理硬件一模一样管理进程不是直接操控 CPU 硬件内存里维护进程链表修改链表就是管理进程所以管理的本质就是对信息的维护首先要定义一个结构体结构体中是硬件设备的各种属性一个结构体对象表示一个硬件然后把结构体对象采用链表或其他数据结构等形式组织起来这时操作系统对硬件设备的管理变成了对一个硬件的管理计算机管理的本质先描述结构体类把现实事物属性抽象成数据再组织数据结构链表等把大量实例组织起来注意操作系统对硬件的管理最终都会装换成数据结构所以操作系统中含有大量的数据结构2.3 系统调用接口作为用户无法直接和操作系统进行交互做执行时真正让硬件完成这件工作这件事只有操作系统内核有权限操作系统为了保证数据安全不允许用户随意改动但又要给用户提供服务所以操作系统用接口的形式给用户提供调用的入口例如银行不能让任何人触碰金库但又必须给合法普通人提供服务大堂经理 库函数接待用户柜台窗口 系统调用接口唯一合法入口员工 操作系统内核代码金库 计算机硬件资源保安 CPU 硬件权限保护内核态 / 用户态安全核心思想不信任任何人但是要给合法用户提供服务。类比操作系统用户程序普通应用运行在用户态没有权限直接操作硬件不安全禁止直接访问底层硬件如果想要操作硬件资源**必须走唯一入口系统调用接口**很多C/C库函数本质上都是对系统调用做封装举例你写程序想往硬盘写文件。你的程序不能直接操作硬盘硬件调用库函数库函数调用系统调用操作系统校验权限然后调用硬盘驱动最后硬件完成写操作总结在开发角度操作系统对外会表现为一个整体但是会暴露自己的部分接口供上层开发使用这部分由操作系统提供的接口叫做系统调用系统调用在使用上功能比较基础对用户的要求相对也比较高所以有心的开发者可以对部分系统调用进行适度封装从而形成库有了库就很有利于更上层用户或者开发者进行二次开发

相关新闻

GPT-SoVITS终极指南:从零开始打造你的专属AI语音助手 [特殊字符]

GPT-SoVITS终极指南:从零开始打造你的专属AI语音助手 [特殊字符]

GPT-SoVITS终极指南:从零开始打造你的专属AI语音助手 🎤 【免费下载链接】GPT-SoVITS 1 min voice data can also be used to train a good TTS model! (few shot voice cloning) 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS 想…

2026/10/26 1:29:21 阅读更多 →
Moonlight-Switch:让Switch变身PC游戏串流神器的终极指南

Moonlight-Switch:让Switch变身PC游戏串流神器的终极指南

Moonlight-Switch:让Switch变身PC游戏串流神器的终极指南 【免费下载链接】Moonlight-Switch Moonlight port for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/mo/Moonlight-Switch 还在为Switch有限的硬件性能无法畅玩PC大作而烦恼吗&#x…

2026/10/27 1:14:55 阅读更多 →
终极指南:raft-boltdb如何用BoltDB打造高性能Raft存储后端

终极指南:raft-boltdb如何用BoltDB打造高性能Raft存储后端

终极指南:raft-boltdb如何用BoltDB打造高性能Raft存储后端 【免费下载链接】raft-boltdb Raft backend implementation using BoltDB 项目地址: https://gitcode.com/gh_mirrors/ra/raft-boltdb raft-boltdb是一个专为Raft协议设计的存储后端实现&#xff0c…

2026/10/24 17:41:31 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 13:55:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →