首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【把Linux“聊”明白】从冯诺依曼架构到操作系统

【把Linux“聊”明白】从冯诺依曼架构到操作系统

作者头像
苏兮
发布2026-01-13 18:10:24
发布2026-01-13 18:10:24
1560
举报

前言

理解Linux,始于理解计算机本身。本文将追溯至计算机的源头——冯·诺依曼体系结构,为您解答计算机如何协调工作、操作系统如何管理软硬件资源这两个核心问题,为您的Linux进阶之路打下最坚实的地基。

一、冯诺依曼体系结构

在我们常见的计算机,如笔记本。不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。冯·诺依曼结构的五大组成部分:

在这里插入图片描述
在这里插入图片描述

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

输入设备:包括键盘,鼠标,扫描仪等; 中央处理器(CPU):含有运算器和控制器等; 输出单元:显示器,打印机等。

我们要知道,这里的存储器指的是内存,输入输出设备是站在内存的角度来看的。

为什么cpu不直接在磁盘上获取数据呢? 因为CPU的速度和磁盘的速度之间存在巨大的、难以逾越的鸿沟,如果CPU直接去磁盘取数据,整个计算机将会慢到无法忍受。 内存作为一道必不可少的“缓存”或“缓冲区”,填补了CPU和磁盘之间巨大的速度鸿沟,是保证现代计算机高效运行的基石。

在不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备),外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。 即所有设备都只能直接和内存打交道。

所以,在我们学习C语言时,printf函数就是把数据写到硬件,也就是显示器上。

二、操作系统的概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:

内核(进程管理,内存管理,文件管理,驱动管理) 其他程序(例如函数库,shell程序等等)

在这里插入图片描述
在这里插入图片描述

三、设计操作系统的目的

对上,为用户程序(应用程序)提供一个良好的执行环境(目的)

对下,与硬件交互,管理所有的软硬件资源(手段)

我们来看一下计算机系统的层次结构:

  1. 软硬件体系结构为层状结构
  2. 访问操作系统,必须使用系统调用 — 其实就是函数,只不过是系统提供的;
  3. 我们的程序,只要你判断它访问了硬件,那么它必须贯穿整个软硬件体系结构;
  4. 库函数可能在底层封装了系统调用。
在这里插入图片描述
在这里插入图片描述

四、操作系统的核心功能

在上面我们也可以看出,操作系统是管理者和服务提供者。它管理所有硬件资源(CPU、内存、设备、文件),同时为用户和应用程序提供简单、统一、安全的服务接口。所以操作系统的定位是:⼀款纯正的“搞管理”的软件

4-1 如何理解"管理"

简单来说,就是 — 先描述,再组织。 举例: 校长管理学生,先对学生进行描述

代码语言:javascript
复制
struct student
{
	int id; 		 // 学号
	char* name; // 名字
	char* age;  // 年龄
	//...

此时,每个学生信息对应一个结构体,然后,再以某种数据结构(比如链表)将学生对象的信息组织起来:

在这里插入图片描述
在这里插入图片描述

即:先描述被管理对象,再组织被管理对象

此时,校长想管理学生,需要和学生见面吗?不需要。 所以,要管理,管理者和被管理者,可以不需要见面。 那么,管理者和被管理者,怎么管理呢? 根据“数据”进行管理! 但是不需要见面,如何得到数据? 由中间层获取!(比如辅导员)

有了上述的先描述,再组织,可以看到,校长对学生的管理工作,变成了对链表的增删查改。

我们现在可以来类比操作系统管理硬件:

在这里插入图片描述
在这里插入图片描述

总结

计算机管理硬件

  1. 描述起来,用struct结构体
  2. 组织起来,用链表或其他高效的数据结构

五、系统调用与库函数

系统调用 在开发角度,操作系统对外会表现为一个整体,但同时会暴露自己的部分接口,供上层开发使用。这部分由操作系统提供的接口,叫做系统调用库函数 系统调用在使用上,功能比较基础,对用户的要求相对较高。因此,有心的开发者可以对部分系统调用进行适度封装,从而形成。有了库,就非常有利于更上层的用户或开发者进行二次开发

总结

从冯诺依曼体系结构的基础框架,到操作系统的“先描述,再组织”管理哲学,我们看到了计算机系统设计的精妙之处。操作系统作为硬件与应用程序之间的桥梁,通过系统调用和库函数为开发者提供了统一的接口。理解这些底层原理,不仅有助于我们更好的深入学习,更能让我们真正明白计算机工作的本质。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、冯诺依曼体系结构
  • 二、操作系统的概念
  • 三、设计操作系统的目的
  • 四、操作系统的核心功能
    • 4-1 如何理解"管理"
  • 五、系统调用与库函数
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档