【Linux】操作系统基础

news2024/10/12 22:14:47

1.冯诺依曼体系结构介绍

冯诺依曼体系结构如下:

在上图中「输⼊设备」和「输出设备」⼀般被称为计算机的外设,⽽「存储器」在冯 诺依曼体系结构中表示「内存」

输⼊设备⼀般包括:⽹卡、磁盘、键盘、触摸屏等

输出设备⼀般包括:⽹卡、磁盘、⿏标、触摸屏、显示器(⾮触摸屏)等

1.2内存的作⽤

「内存」是中央处理器与计算机其他设备的桥梁,因为CPU的处理速度相当得快,以 ⾄于如果没有「内存」,就会导致类似「磁盘」等外设因为其速度远远⼩于CPU从⽽ 拖慢整机性能

「内存」本质不永久存储任何数据,其速度快于「磁盘」,但慢于CPU,当需要进⾏ 数据的读取时,⾸先数据会从「输⼊设备」上读取数据到内存中,再从「内存」到 CPU进⾏相关处理,如果处理完的数据需要写⼊到输出设备时,此时CPU会将数据写 ⼊「内存」,再从「内存」写⼊到输出设备

1.3内存or磁盘

「内存」虽然速度不快也不慢,但是「内存」并不可以直接替代硬盘的位置,⾸先 CPU也不可以直接从「硬盘」读取数据,其次「内存」中的数据断电后就会消失(属 于易失性存储器,volatile storage),⽽「硬盘」中的数据会在⽣命周期内永 久保存(属于⾮易失性存储器,nonvolatile storage)

1.4计算机中的存储设备

在计算机中,有下⾯的存储⾦字塔结构:

在计算机的存储体系中,存在着不同类型的存储器,它们在速度、价格和数据易失性等方面有着各自的特点。

首先,速度最快且价格最高的存储器是 “寄存器(registers)”,它属于易失性存储器。寄存器是计算机处理器内部用于暂存数据和指令的高速存储单元,其访问速度极快,能够在极短的时间内完成数据的读取和写入操作。然而,由于其制造工艺复杂且容量极小,成本也就相应地非常高。

其次是 “缓存(cache)”,它同样是易失性存储器,但速度和价格都仅次于寄存器。缓存的作用是为了缓解处理器与主内存之间的速度差异,它可以快速地为处理器提供所需的数据,减少处理器等待数据的时间,从而提高计算机的整体性能。

接着是 “内存(main memory)”,也是易失性存储器。内存是计算机中用于存储正在运行的程序和数据的重要部件。虽然它的速度比寄存器和缓存慢,但仍然能够相对快速地与处理器进行数据交互

在易失性存储器之后,是非易失性存储器。其中,较为常见的是 NVM(Non - volatile Memory)存储器。在现代计算机中,闪存(固态硬盘就属于其中一种)是 NVM 存储器的常见形式。此外,还有电可擦可编程只读存储器(EEPROM)和铁电随机存取存储器(FRAM, Ferroelectric Random Access Memory)等。NVM 存储器的特点是在断电后数据仍然能够保存,这使得它在存储需要长期保存的数据方面具有重要作用。

再往下看,“硬盘(hard - disk drives)” 也是一种非易失性存储器。在相同存储容量的情况下,硬盘的造价通常比 NVM 存储器低,但它的速度相对较慢。硬盘通过磁头在磁盘表面读写数据,其机械结构决定了它的数据访问速度相对较慢。

最后,排在存储体系第三层的是 “光盘(optical disk)” 和 “磁带(magnetic tapes)”。曾经,它们在数据存储和备份方面有着广泛的应用,但随着技术的发展,对它们的需求已经不如过去那么普遍。光盘通过激光在盘片上读写数据,而磁带则通过磁头在磁带上记录数据。它们的存储容量较大,但数据访问速度相对较慢,更适合用于大容量数据的长期存储和备份。

总之,计算机的存储体系是一个多层次、多类型的结构,不同的存储器在速度、价格、容量和数据易失性等方面相互补充,共同满足计算机系统对数据存储和访问的需求。随着技术的不断进步,存储器的性能和特点也在不断发展和变化,以适应日益增长的计算需求和数据存储需求。

1.5⽹卡输出or输⼊设备

从宏观的⻆度来看,许多⼈认为⽹卡是输⼊设备,因为我们需要使⽤⽹卡来接收⽹络 信号(例如Wi-Fi),但其实⽹卡即是输出设备也是输⼊设备

例如:当⼀个⼈通过电脑上的聊天平台软件(例如QQ、微信等)向另⼀个⼈发送消 息,在这⼀过程中⽹卡就扮演着输出和输⼊设备两个⻆⾊

对于发送者来说,发送者在其电脑打开聊天平台软件,该软件的相关代码和数据 就会从「磁盘」加载进⼊「内存」,CPU从「内存」中读取代码转换成指令执⾏ 程序,此时发送者将其想发送的消息输⼊到聊天软件⽂本框后点击发送,此时 CPU会将数据写⼊「内存」,再由「内存」中的软件将发送的消息写⼊到「⽹ 卡」,通过「⽹卡」发送到⽹络。此过程中「⽹卡」就是输出设备

对于接受者来说,当接受者打开聊天平台软件,该软件的相关代码和数据就会从 「磁盘」加载进⼊「内存」,CPU从「内存」中读取代码转换成指令执⾏程序, 「⽹卡」设备从⽹络接收数据,此时「⽹卡」设备就是输⼊设备,「⽹卡」将其 读取到的信息加载到「内存」,由对应的聊天软件接收并由CPU进⾏处理,再发 送给「内存」,由「内存」写⼊显示器显示到接受者的显示器上

通过上⾯的例⼦和介绍,可以基本了解到,计算机中的数据流转实际上是数据在各种 设备间的来回拷⻉,⽽拷⻉的效率基本可以认为就是计算机的效率

2.操作系统基本认知

操作系统本质是通过对计算机硬件的管理从⽽达到⽤户可以更⾼效、便利地使⽤计算 机。⽤户可以通过操作系统提供的接⼝⽅便得操作计算机硬件,例如写⽂档等。

下⾯从两个⽅⾯浅谈⼀下可以⼈机交互的操作系统(不包括嵌⼊式计算机embedded computers的系统)

2.1 系统层面

系统层⾯:从计算机的⻆度来看,操作系统是与硬件联系最紧密的软件,⽽这 其中最重要的就是操作系统内核,计算机在解决⼀个问题时需要⼀些资源,例 如:CPU时间、内存空间、存储空间、I/O设备等,⽽操作系统在这⼀过程中扮 演的⻆⾊更像是⼀个管理者,管理计算机硬件之间的交流和资源

2.2 用户层面

⽤户层⾯:前⾯提到对于⽤户来说,操作系统提供了接⼝便于⽤户操作计算机 硬件。⽤户所看到的计算机可以简单理解为⼀个屏幕、⼀个键盘和⼀个⿏标, 当需要使⽤计算机时,对应的操作使⽤对应的设备即可,此时操作系统对于⽤ 户来说更多得是为了⽤户更好的使⽤体验,所以这⼀层⾯上,⼀款操作系统的 好坏取决于⽤户的使⽤感受

操作系统在整个计算机的组成中所处的位置如下图所示:

下⾯从这两个层⾯切⼊,具体谈操作系统的地位:

2.1.2 系统层面的地位

系统层⾯:操作系统提供⼿段管理计算机硬件

操作系统通过驱动管理硬件:

从系统层⾯,⾸先从对于底层硬件来说,计算机中所有的硬件都需要对应的驱动,⽽ 操作系统管理这些硬件的⽅式就是通过对应的驱动。前⾯提到,操作系统在管理硬件 时更像是⼀个管理者的⻆⾊,那么为了能够管理计算机硬件,操作系统就会做出决策 (类似于⼀个管理者发号施令),通知对应的驱动,驱动根据操作系统的决策执⾏对 相关硬件进⾏管理。

2.1.3.操作系统采用数据结构管理驱动

但是这⼀过程中存在⼀个问题,那就是如果硬件数量⼤,需要的驱动数量也就会变 ⼤,那么操作系统直接对所有驱动进⾏管理就会影响整体的效率,为了解决这个问 题,操作系统采⽤了⼀种抽象的思路,即将同类型的设备进⾏归类,因为同类型的设 备驱动基本上都有某些共同的特点,所以此时可以考虑将共性字段抽取,放在⼀个结 构体中,每⼀个结构体中根据驱动⾃⼰的值填写到对应结构体的字段中,⽽操作系统 只需要使⽤⼀种数据结构,将所有驱动对应的结构体进⾏链接管理即可

例如,假设操作系统使⽤的数据结构是链表,那么操作系统针对于每⼀种功能管理 (例如驱动管理)只需要⼀个头结点,具体类型的驱动对应的结构体依次进⾏链接, 在需要某⼀种驱动时,只需要依次遍历该链表即可拿到对应的驱动进⾏相关的进⾏决 策与操作执⾏

3.先描述,再组织

从上⾯的例⼦可以看出,操作系统要管理⼀种硬件,最优的解决⽅案就是先抽象出该 驱动的特点,将其归类到某⼀种驱动结构体,该结构体再通过相关数据结构的特点进 ⾏链接,最后通过对应的数据结构进⾏管理。这⼀过程也可以被概括为:先描述,再 组织

对于操作系统的其他管理,例如内存管理、进程管理等也是使⽤类似的⽅式

4.数据结构与面向对象的重要性

从这⼀过程也可以看出,之所以要有数据结构,也是为了更好得管理数据,⽽之所以 需要⾯向对象,也是为了抽取零散数据的共性从⽽达到更⽅便的管理

4.2.⽤户层⾯:操作系统提供接⼝⽅便⽤户使⽤

⽤户使⽤操作系统,操作系统必须提供功能,但是操作系统不能完全将⾃⼰暴露给⽤ 户,否则会导致整机出现问题,所以操作系统需要满⾜两个特点:封闭且开放

封闭:表示操作系统的内核对于⽤户来说必须是封闭的

开放:表示操作系统必须提供合适的结构给⽤户使⽤

操作系统具有的部分如下图所示:

前⾯已经提到了内核中操作系统的地位,接下来考虑系统调⽤接⼝

系统调⽤接⼝是操作系统开放性的最根本的体现,因为这个接⼝与操作系统内核最接 近,这种接⼝在使⽤层⾯上也会更加繁琐,学习成本也会更⾼,更加需要使⽤者深⼊ 了解操作系统,⽽为了降低这种学习和使⽤上的成本,系统调⽤接⼝外还有⼀种接⼝ 称为:⽤户操作接⼝,这种接⼝⼀般是对底层系统调⽤接⼝进⾏⼀定的封装,便于使 ⽤者调⽤,例如C语⾔中的 fopen 函数封装了 open 函数等,图形化界⾯也属于⽤户 操作接⼝,因为图形化界⾯本质是操作对应指令,⽽指令被操作系统接收就是执⾏对 应的操作,也就间接调⽤系统接口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2208909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用 logfire 提高应用的可观测性

Logfire是由 Pydantic 团队打造的平台, 还有供 app 使用的 library, 我们经常提到对应用要做 LMT(Log, Metrics, Trace), Logfire 可以用来收集、存储、分析和可视化日志数据和应用性能指标。通过集成日志和度量,Logfire 提供了一个统一的界面来管理应用程序和系统的…

时间序列预测(一)——线性回归(linear regression)

目录 一、原理与目的 1、线性回归基于两个的假设: 2、线性回归的优缺点: 3、线性回归的主要目的是: 二、损失函数(loss function) 1、平方误差损失函数(忽略了噪声误差) 2、均方误差损失函数 三、随…

springboot项目通过maven的profile功能实现通过不同文件夹的方式来组织不同环境配置文件

写在前面 本文看下springboot项目如何通过文件夹的方式来组织不同环境配置文件。 1:正文 一般的我们写springboot项目时配置文件是这个样子的: appliction.yaml --> 通过spring.profiles.activexxx来激活某个指定后缀的配置文件 application-evn1…

【Java学习笔记】多线程

当我们在饭店聚餐时,多人同时吃一道菜的时候很容易发生争抢。例如,上了一道好菜,两个人同时夹这道菜,一人刚伸出筷子,结果伸到的时候菜已经被夹走了。为了避免这种现象,必须等一人 夹完一口后,另…

【大数据技术基础 | 实验一】配置SSH免密登录

文章目录 一、实验目的二、实验要求三、实验原理(一)大数据实验一体机(二)SSH免密认证 四、实验环境五、实验内容和步骤(一)搭建集群服务器(二)添加域名映射(三&#xff…

工业物联网关-ModbusTCP

Modbus-TCP模式把网关视作Modbus从端设备,主端设备可以通过Modbus-TCP协议访问网关上所有终端设备。用户可以自定义多条通道,每条通道可以配置为TCP Server或者TCP Slave。注意,该模式需要指定采集通道,采集通道可以是串口和网口通…

51WORLD携手浙江科技大学,打造智慧校园新标杆

当前,国家教育数字化战略行动扎实推进,高等教育数字化转型步伐加快。 紧抓数字教育发展战略机遇,浙江科技大学联合51WORLD、正方软件股份有限公司(简称:正方软件),共同研发打造浙科大孪生数智校…

为什么很多人宁愿加钱买港版,也不愿买国行 iPhone 16

最近的 iPhone 16 市场,真的是倒反天罡,攻守异形啊。 过去,港版 iPhone 都是性价比的次选,便宜个 10% 都得考虑考虑。但今年,港版 iPhone 16 的价格,反而比国行还贵。 比如,闲鱼上某个卖家&am…

Java消息摘要:MD5验证数据完整性、密码的加密与校验

MD5(Message-Digest Algorithm 5)是一种被广泛使用的密码散列函数,是一种不可逆的加密算法,该算法可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完…

【工具变量】知识产权示范城市DID(2000-2023年)

数据简介:为深入贯彻落实《国家知识产权战略纲要》,强化知识产权治理效能,国家知识产权局制定了《国家知识产权试点、示范城市(城区)评定和管理办法》,知识产权示范城市成为知识产权强国战略落地的城市支撑…

echarts 入门

工作中第一次碰到echarts&#xff0c;当时有大哥。二进宫没办法&#xff0c;只能搞定它。 感觉生活就是这样&#xff0c;不能解决的问题总是会反复出现。通过看视频、查资料&#xff0c;完成了工作要求。写一篇Hello World&#xff0c;进行备查。 基本使用 快速上手 <!DO…

QNAP新手必看!轻松搞定反向代理设置

反向代理是一种服务器配置&#xff0c;允许你通过一个域名或者IP地址来访问不同的内部应用服务。在QNAP NAS上配置反向代理可以提升应用程序的安全性和可访问性。 准备工作 确保QNAP NAS已连接网络并有公网IPv4/IPv6。 确认已启用Web服务 步骤 1&#xff1a;启用Web服务 登…

相机光学(三十九)——光学暗角与机械暗角

1.什么是暗角 在玩摄影一段时间,拍摄一定数量的照片之后,每个人都会不可避免地遇上一个新问题,那就是暗角现象。所谓暗角,是指在拍摄亮度均匀的场景时,画面的四角却出现与实际景物不符的、亮度降低的现象,又被称为“失光“。 2.暗角的成因 (1)边角的成像光线与镜头光轴…

【智能控制】第2章 专家系统,专家控制,模糊关系,模糊推理,专家PID控制

目录 2.1 专家系统 2.1.1 专家系统概述 2.1.2 专家系统构成 2.1.3 专家系统的建立 1&#xff0e;知识库 2&#xff0e;推理机 3&#xff0e;知识的表示 4&#xff0e;专家系统开发语言 5&#xff0e;专家系统建立步骤 第二节 专家控制 2&#xff0e;功能 3 与专家…

三、账号密码存储

使用Playfers存储 Unity本地持久化类Playerprefs使用详解 - PlaneZhong - 博客园 (cnblogs.com) 一、登陆界面切换 1、登陆界面的脚本&#xff08;机制类脚本&#xff09; 在这个UI上挂载一个脚本LoginWnd 先声明一下这个脚本&#xff0c;拖拽 2、在登录模块中调用 这里的l…

华为全联接大会2024 | 聚焦运维智能化,麒麟信安分享“基于大模型的新一代智能运维平台”

2024年9月19日至21日&#xff0c;以“共赢行业智能化”为主题的华为全联接大会2024在上海世博中心盛大召开。麒麟信安受邀出席大会&#xff0c;与全球的思想领袖、商业精英、技术专家和合作伙伴&#xff0c;共同探讨智能化、数字化技术赋能千行万业&#xff0c;把握新机遇&…

第十五章 Java多线程--线程池

目录 一、线程池基础概念 常见的线程池类型&#xff1a; 创建线程池的例子&#xff1a; 注意事项&#xff1a; 二、线程池使用场景 三、JDK自带的构建线程池的方式 1 newFixedThreadPool 2 newSingleThreadExecutor 3 newCachedThreadPool 4 newScheduleThreadPool …

震撼!一句话就让 AI 帮你做 UI 测试,多模态测试智能体 AUITestAgent 横空出世!

美团到店研发平台携手复旦大学周扬帆教授团队&#xff0c;共同开发了智能化终端测试工具AUITestAgent。该工具是第一个能够基于自然语言测试用例&#xff0c;自动化完成终端UI测试驱动、校验全流程的智能化测试工具。仅需输入自然语言形式的测试需求&#xff0c;AUITestAgent通…

福建谷器参加泉州市中小企业数字化转型试点工作启动会

为进一步加快推动试点城市工作,10月9日,泉州市产业数字化转型工作现场会暨2024年中小企业数字化转型试点工作启动会成功举办。出席本次会议的有福建省工业和信息化厅副厅长许永西、泉州市人民政府副市长雷连鸣等领导,及来自国家工业信息安全发展研究中心、中国工业互联网研究院…

newlibc memcpy 存在问题

背景 sdk 中发现 memcpy 函数没有达到预期&#xff0c;执行后&#xff0c;目的地址与源地址中的内容不一致。 复现方法 通过单步调试 memcpy 汇编代码&#xff0c;发现使用了 ldrh 指令&#xff0c;该指令在对 uncacheable memory 同时该 memory 非对齐的情况下&#xff0c;…