【Linux】冯诺依曼体系结构&&初识操作系统

简介: 【Linux】冯诺依曼体系结构&&初识操作系统

1. 冯诺依曼体系结构


我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。

4b4704e09623003a629080b2e5f73378.png

一般来说,计算机分为输入设备、输出设备、存储器、运算器&&控制器

名词解释

  • 输入设备:输入设备包括:磁盘,网卡,键盘,鼠标等
  • 输出设备:输出设备包括:磁盘,网卡,显示器,打印机等
  • 中央处理器(CPU):包括运算器和控制器

关于冯诺依曼,需要强调与解释的东西:

  • 这里的存储器指的是内存(掉电易失)
  • 不考虑缓存的情况下,这里的CPU只能对内存进行读写,不能访问外设(输入和输出设备)
  • 外设要输入或者输出数据也只能从内存中读取,不能直接从CPU中获取
  • 所有的设备都只能和内存直接打交道(目的是为了提高效率)


们知道,CPU的速度是最快的,里面配有寄存器也是最快的,内存是较快的,而外设是较慢的

fd6e31ff3571e98ebce9f17764f9263b.png

内存存在的意义在于:

如果没有内存,CPU只能从外设获取数据进行处理,但是,上面我们说到了,外设的速度是相对较慢的,此时的CPU效率取决于外设,会导致处理效率较慢。而内存的存在,解决了这个问题,可以先把数据存放在内存中,在加载到CPU进行处理,这大大提高的数据的处理。所以CPU读取数据必须从内存中拿!!!

def6ff27cc3ed84116f21b414769ee41.png


而我们所说到的IO(输入输出既input和output)就是从内存的角度上看,把数据从输入设备存入内存的过程叫做input,把内存中的数据输出到输出设备的过程叫做output,这就是IO的过程

结论:

  • 在数据层面:
  1. CPU只和内存打交道,不和任何外设直接打交道
  2. 所有的外设,有需要载入数据只向内存载入,内存写出也是向外设写出
  • 在代码层面:
  1. 程序要运行必须加载到内存中,CPU要执行我的代码,访问我的数据只能从内存中读取(体系结构规定)


对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。

请解释,从你登录上qq开始和某位朋友聊天开始,数据的流动过程。从你打开窗口,开始给他发消息,到他的到消息之后的数据流动过程。如果是在qq上发送文件呢?

2e49dc7f464221a22378d1e92873d03c.png

如果是发送文件的话,那么数据就需要先从磁盘载入到内存,然后在写到外设(网卡)再通过网络传输


2. 初识操作系统


2.1 操作系统是什么?

操作系统是一个对软硬件资源进行管理的软件

操作系统的定位:是一款专注于管理的软件


2. 为什么要有操作系统

为了更好的管理一台计算机的软硬件资源

通过合理的管理软硬件资源(手段),为用户提供更好良好的(稳定的,高效的,安全的)执行环境(目的)


3. 操作系统是怎么管理的

举个例子:大家作为学生,与自己学校的校长打过交道吗?应该很少有,但是大家又作为这个学校的学生被校长管理着,那么校长是怎么做到的呢?

是通过对数据的管理来管理学生的

所有的管理,本质是对数据做管理,管理的方法是先描述再组织

计算机管理软硬件资源的方式:

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

计算机体系结构图

b5bbe6b9e0598e298d950980997f6d40.png


4. 系统调用(System Call)


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

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


这对应着用计算机体系结构图中的户操作接口和system call,我们或者说用户不是直接和操作系统进行操作交流的,需要通过调用各种接口间接地进行交流

相关文章
|
4月前
|
Ubuntu Unix Linux
操作系统的最强入门科普(Unix/Linux篇)
下期文章,小枣君会重点聊聊Windows和macOS那条线。敬请关注! 如果大家觉得文章不错,还请帮忙多多转发!谢谢!
|
4月前
|
监控 Ubuntu Linux
什么Linux,Linux内核及Linux操作系统
上面只是简单的介绍了一下Linux操作系统的几个核心组件,其实Linux的整体架构要复杂的多。单纯从Linux内核的角度,它要管理CPU、内存、网卡、硬盘和输入输出等设备,因此内核本身分为进程调度,内存管理,虚拟文件系统,网络接口等4个核心子系统。
359 0
|
4月前
|
Unix 物联网 Linux
都什么年代了,你还不懂啥是Linux操作系统
至于华为鸿蒙操作系统是不是独树一帜,这个留给各位阅读本文的网友们来讨论
136 0
|
4月前
|
Web App开发 缓存 Rust
|
4月前
|
安全 Linux iOS开发
linux属于什么操作系统
Linux是一种自由和开放源代码的操作系统,具有高度的灵活性和可定制性。与常见的操作系统如Windows和macOS相比,Linux具有自由、安全和稳定等优势。Linux已广泛应用于服务器、桌面电脑、超级计算机和嵌入式设备等领域,并且在未来的发展前景广阔。由于其自由和开放源代码的特性,Linux还促进了计算机技术和社区的发展,为全球的计算机用户提供了更多的选择和可能性。
|
4月前
|
安全 Ubuntu Unix
关于Linux操作系统,你必须要知道的事
我们可以看到无论是Debian还是Buildroot都有各自的特点,为客户提供了更大的选择空间和灵活性,大家可以根据自己的需求选择合适的版本来满足终端用户的体验和功能需求。从平技术将会一直关注更多更安全、灵敏、易于开发的Linux版本,做好适配工作,不断为客户带来“简单开发、方便应用”的使用体验。
|
4月前
|
安全 Ubuntu Linux
如何安装Linux操作系统?
此时,您可以选择重新启动计算机,然后从硬盘上的Linux系统启动。以上是一个大致的安装过程。请注意,不同的Linux发行版可能会在细节上有所差异,因此在进行安装之前,请确保您阅读并理解了相应发行版的安装指南或文档。
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
730 0
Vanilla OS:下一代安全 Linux 发行版
|
10月前
|
运维 自然语言处理 Ubuntu
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot 是阿里云推出的一款操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行操作,用户可以快速获取所需信息并执行任务,极大提升了Linux系统的使用效率。安装步骤简单,只需在阿里云服务器上运行几条命令即可完成部署。使用过程中,OS Copilot不仅能帮助查找命令,还能处理文件和复杂场景,显著节省了查找资料的时间。体验中发现,部分输出格式和偶尔出现的英文提示有待优化,但整体非常实用,特别适合Linux初学者。
504 10
|
11月前
|
弹性计算 自然语言处理 Ubuntu
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot是由阿里云推出的操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行等功能,极大提升了Linux系统的使用效率。用户只需通过简单的命令或自然语言描述问题,OS Copilot即可快速提供解决方案并执行相应操作。例如,查询磁盘使用量等常见任务变得轻松快捷。此外,它还支持从文件读取复杂任务定义,进一步简化了操作流程。虽然在某些模式下可能存在小问题,但总体上大大节省了学习和操作时间,提高了工作效率。
398 2
OS Copilot-操作系统智能助手-Linux新手小白的福音