当前位置: 首页 > news >正文

【Linux】冯诺依曼概念以及操作系统基础概念

文章目录

  • 冯诺依曼体系结构
  • 操作系统
  • 系统调用和库函数的概念




冯诺依曼体系结构


我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。
在这里插入图片描述
截至目前,我们所认识的计算机,都是有一个个的硬件组件组成

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

关于冯诺依曼,必须强调几点:

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

对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上,下面解释一下从登录上的qq开始和某位朋友聊
天开始,数据的流动过程:

  • 输入设备阶段
    当你在 QQ 聊天窗口中输入文字、表情或其他信息(如通过键盘、触摸屏等输入设备),这些信息被转换为电信号或者数字信号,作为输入数据。

  • 存储器阶段
    输入的数据被暂存到计算机的内存中。QQ 软件在运行时会分配一定的内存空间来存储这些待发送的消息数据,同时也会从内存中读取历史聊天记录、联系人信息、界面设置等相关数据用于聊天窗口的展示和操作逻辑。

  • 运算器阶段
    计算机的中央处理器(CPU)中的运算器会对这些数据进行处理。

  • 控制器阶段
    控制器负责协调各个部件的操作。它指挥内存将处理好的数据发送到网络接口卡(NIC),并控制网络传输的过程,确保数据按照网络协议进行发送。

  • 输出阶段(网络传输及对方接收)
    数据从你的计算机的网络接口卡通过网络(如互联网)传输到 QQ 服务器。服务器根据接收方的账号信息,将数据路由转发到接收方的设备上。


操作系统


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

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

设计OS的目的

  • 让用户与硬件交互变得简单,管理所有的软硬件资源
  • 为用户程序(应用程序)提供一个良好的执行环境

定位
在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件

在这里插入图片描述


系统调用和库函数的概念

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

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

在Linux中,我们使用man手册的时候也能够看见哪些是库函数,哪些是系统调用
在这里插入图片描述
系统调用的接口,比如:
在这里插入图片描述
fok函数,用来创建子进程。

库函数的接口,比如

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Hadoop 下载
  • 集运系统需要与哪些硬件设备集成?
  • QString如何追加字符串
  • 视频安防监控LntonAIServer安防管理平台抖动检测和过亮过暗检测
  • 电工基础知识
  • Mental-LLM——通过在线文本数据利用大型语言模型进行心理健康预测
  • 【路径规划】 使用计算机视觉和机器人操纵器绘制肖像
  • 1-6 图像覆盖掩膜 opencv树莓派4B 入门系列笔记
  • 金融、互联网等领域手机三要素API接口的应用
  • 计算氨基酸残基之间的键角和二面角
  • 基于Python爬虫的淘宝服装数据分析项目
  • Python的math库——常用数学函数全解析
  • 3D 场景模拟 2D 碰撞玩法的方案
  • QString如何格式化字符串
  • Elasticsearch集群架构
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • android图片蒙层
  • mysql 数据库四种事务隔离级别
  • PHP 的 SAPI 是个什么东西
  • React Transition Group -- Transition 组件
  • SegmentFault 2015 Top Rank
  • 从零开始的无人驾驶 1
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 类orAPI - 收藏集 - 掘金
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 试着探索高并发下的系统架构面貌
  • 线性表及其算法(java实现)
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • ​Redis 实现计数器和限速器的
  • ​TypeScript都不会用,也敢说会前端?
  • ​数据结构之初始二叉树(3)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (¥1011)-(一千零一拾一元整)输出
  • (003)SlickEdit Unity的补全
  • (1)(1.13) SiK无线电高级配置(五)
  • (a /b)*c的值
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二十三)Flask之高频面试点
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (六)Hibernate的二级缓存
  • (五)IO流之ByteArrayInput/OutputStream
  • (循环依赖问题)学习spring的第九天
  • (一)基于IDEA的JAVA基础12
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • ***详解账号泄露:全球约1亿用户已泄露
  • ./configure,make,make install的作用
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET CLR基本术语
  • .net core控制台应用程序初识
  • .NET Micro Framework初体验