【Linux】冯诺依曼概念以及操作系统基础概念
文章目录
- 冯诺依曼体系结构
- 操作系统
- 系统调用和库函数的概念
冯诺依曼体系结构
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
截至目前,我们所认识的计算机,都是有一个个的硬件组件组成
- 输入单元:包括键盘, 鼠标,扫描仪, 写板等
- 中央处理器(CPU):含有运算器和控制器等
- 输出单元:显示器,打印机等
关于冯诺依曼,必须强调几点:
- 这里的存储器指的是内存
- 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
- 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
- 一句话,所有设备都只能直接和内存打交道
对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上,下面解释一下从登录上的qq开始和某位朋友聊
天开始,数据的流动过程:
-
输入设备阶段
当你在 QQ 聊天窗口中输入文字、表情或其他信息(如通过键盘、触摸屏等输入设备),这些信息被转换为电信号或者数字信号,作为输入数据。 -
存储器阶段
输入的数据被暂存到计算机的内存中。QQ 软件在运行时会分配一定的内存空间来存储这些待发送的消息数据,同时也会从内存中读取历史聊天记录、联系人信息、界面设置等相关数据用于聊天窗口的展示和操作逻辑。 -
运算器阶段
计算机的中央处理器(CPU)中的运算器会对这些数据进行处理。 -
控制器阶段
控制器负责协调各个部件的操作。它指挥内存将处理好的数据发送到网络接口卡(NIC),并控制网络传输的过程,确保数据按照网络协议进行发送。 -
输出阶段(网络传输及对方接收)
数据从你的计算机的网络接口卡通过网络(如互联网)传输到 QQ 服务器。服务器根据接收方的账号信息,将数据路由转发到接收方的设备上。
操作系统
概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
- 内核(进程管理,内存管理,文件管理,驱动管理)
- 其他程序(例如shell程序等等)
设计OS的目的
- 让用户与硬件交互变得简单,管理所有的软硬件资源
- 为用户程序(应用程序)提供一个良好的执行环境
定位
在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件。
系统调用和库函数的概念
-
在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发直接使用,这部分由操作系统提供的接口,叫做系统调用。
-
系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。
在Linux中,我们使用man手册的时候也能够看见哪些是库函数,哪些是系统调用
系统调用的接口,比如:
fok函数,用来创建子进程。
库函数的接口,比如