【Linux】操作系统的认识
操作系统
- 1. 冯诺依曼体系结构
- 2. 操作系统
1. 冯诺依曼体系结构
- 冯诺依曼体系结构的介绍
冯.诺依曼结构消除了原始计算机体系中,只能依靠硬件控制程序的状况(程序作为控制器的一部分,作为硬件存在),将程序编码存储在存储器中,实现了可编程的计算机功能,实现了硬件设计和程序设计的分离,大大促进了计算机的发展。所以我们现在常用的计算机大多遵循冯诺依曼体系结构。

- 理解冯诺依曼体系结构
(1)现在计算机由五大基本硬件组成:
存储器:就是内存
输入设备:键盘、摄像头、话筒、磁盘、网卡和鼠标等
输出设备:显示器、播放器、磁盘、网卡等
运算器:对我们输入的数据进行运算(算术运算和逻辑运算)
控制器:读取内存中的指令,翻译解析后向有关硬件发送控制命令
注意
a. 外设是输入设备和输出设备,CPU包括运算器和控制器。
b. 有的设备是纯输入,有的设备是纯输出,有的则是既输入又输出,例如磁盘和网卡。
c. U盘和磁盘是外存(用来存放内存暂时用不着的程序和数据)。
d. 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设;外设要输入或者输出数据,也只能写入内存或者从内存中读取。所有设备都只能直接和内存打交道。
问题1
为什么要有内存?CPU不能直接从外设进行读取,再输出到外设吗?
a. 从存储的结构就可以知道,外设离CPU远,输出设备和输入设备与CPU的速度差距太大,当输入设备还在慢吞吞输入数据时,CPU早将数据处理输出到输出设备,输出设备再慢吞吞输出数据,CPU有太多空闲,严重拖累了计算机的执行速度。
b. 内存的速度不也比CPU慢,为什么还要链接内存?内存的速度确实慢于CPU,但两者间的速度差距远小于外设与CPU的速度差距。也就是说内存容量适中、速度适中,是最优解。
c. 内存具有预加载的功能,会预先将输入设备的数据加载到内存,且当CPU在运算时,内存也会不断地存储数据。这样CPU就会不断地从内存中读取和输出数据,提高了计算机的执行速度。此时的内存就是硬件级别的缓存空间。
下面是计算机的存储金字塔。

问题2
一个程序要运行,必须先加载到内存。为什么?
简单回答
因为冯诺依曼体系结构规定。
详细回答
因为CPU只能从内存中读取数据,不能直接从外设中读取数据。
(2)上面五大设备都是独立个体,各个硬件单元必须用“线”链接起来,这个线就是系统总线和IO总线。CPU与内存之间的是系统总线,内存与外设之间的是IO总线。
(3)场景
请解释,从登录上qq开始和某位朋友聊天开始,数据的流动过程。


如果我想要传一个文件(比如文档)给我的朋友,请画出数据流动的过程。

2. 操作系统
由冯诺依曼体系结构,我们可以知道计算机有很多硬件,这些硬件各有各的功能。这些功能什么时候执行,谁先执行,就需要一个逻辑来管理,所以就有了操作系统。
- 什么是操作系统
操作系统是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。
简单讲,操作系统是一款进行管理(硬件和软件)的软件。
操作系统包括内核(进程管理、内存管理、文件管理、驱动管理)和其他程序(例如函数库,shell程序等等)。
- 为什么要有操作系统
(1)操作系统帮助用户管理好下面的软硬件资源(驱动和底层硬件)。
(2)为了给用户提供良好(稳定、高效、安全)的运行环境。
注意
这里的用户是程序员,而不是普通用户。因为普通用户不是直接使用操作系统,而是使用程序员开发出来的软件。只要保证良好的运行环境,程序员才能为普通用户创建更多的软件。
- 用户可以直接访问操作系统吗
操作系统是软件,有大量数据,但用户不能直接访问操作系统,操作系统不相信任何用户。可是操作系统又要为用户提供各种服务,所以操作系统就得提供接口让用户访问内部数据。这是怎么做到的?
操作系统为了保证自己的数据安全,又为了保证给用户提供服务,操作系统以接口的方式给用户提供调用的入口,来获取操作系统内部的数据。
拓展
操作系统是用C语言写的,接口就是操作系统提供的、用C实现的函数调用,这就是系统调用。
总结
所有访问操作系统的行为,都只能通过系统调用完成。
计算机的层状结构

- 操作系统是如何进行管理底层的软硬件资源?
(1)操作系统不直接访问底层的硬件,而是通过驱动程序进行管理的。
(2)操作系统是管理者,而硬件是被管理者。只要有被管理者的信息,就能对被管理者做管理。就像在大学,校长是管理者,而学生则是被管理者,校长不需要见学生就能对学生进行管理,他是通过学生的学号等各种信息进行管理的。同样,操作系统是对硬件的各种信息管理。
所以管理的本质是通过对数据的管理,而不是对人(硬件)的管理。
(3)操作系统中是有大量的数据,要如何对每份数据都进行管理?比如在大学中,要在整个年级中找出几名学生、新转学几名学生、退学几名学生,我们可以将每个学生描述成一个结构体,这个结构体中有学生的各种信息(如姓名,性别,学号,成绩等),然后用一个链表把每个结构体链接起来。这样,成功地将学生的管理工作转换成对链表的增删查改。
所以我们可以将底层设备构建成结构体(先描述),再用链表和其他数据结构链接起来(再组织)。
(4)操作系统中,管理任何对象最终都可以转化成对某种数据结构的增删查改。
(5)最终答案:先描述,再组织。
相关文章:
【Linux】操作系统的认识
操作系统 1. 冯诺依曼体系结构2. 操作系统 1. 冯诺依曼体系结构 冯诺依曼体系结构的介绍 冯.诺依曼结构消除了原始计算机体系中,只能依靠硬件控制程序的状况(程序作为控制器的一部分,作为硬件存在),将程序编码存储在…...
【论文阅读】(2023TPAMI)PCRLv2
目录 AbstractMethodMethodnsU-Net中的特征金字塔多尺度像素恢复多尺度特征比较从多剪切到下剪切训练目标 总结 Abstract 现有方法及其缺点:最近的SSL方法大多是对比学习方法,它的目标是通过比较不同图像视图来保留潜在表示中的不变合判别语义ÿ…...
大数据学习(17)-mapreduce task详解
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
HCIA --- DHCP服务、路由器、网络部署及基本配置
带宽计算公式: 速率 约等于 (带宽/8)*85% 网线分类: RJ-45双绞线 非屏蔽线 最佳距离100M; 民用 1000M/S 商用100000M/S 数字 光纤 光信号 RJ-11 电话线 模拟信号 同轴电缆 数字信号 光信号 数字信号--二进制 …...
手把手入门Node框架Egg.js
0.介绍 Egg.js 是一个面向企业级应用开发的 Node.js 框架,它建立在 Koa.js 之上,提供了一种更简单、灵活的开发方式。Egg.js 提供了一些默认约定和最佳实践,可以帮助开发者快速构建可靠、可扩展的应用程序。 基于 Koa.js:Egg.js …...
百度智能云推出,国内首个大模型全链路生态支持体系
在10月17日举行的百度世界2023上,百度智能云宣布,百度智能云千帆大模型服务平台已服务17000多家客户,覆盖近500个场景。 同时,新的企业和开发者还正在不断地涌入千帆,大模型调用量高速攀升。平台上既有年龄仅14岁的小…...
CUDA学习笔记(八)Branch Divergence and Unrolling Loop
Avoiding Branch Divergence 有时,控制流依赖于thread索引。同一个warp中,一个条件分支可能导致很差的性能。通过重新组织数据获取模式可以减少或避免warp divergence(该问题的解释请查看warp解析篇)。 The Parallel Reduction …...
Android MQTT连接阿里云使用Json解析数据
Android Studio 连接阿里云订阅主题然后使用JSON解析数据非常好用 导入MQTT的JAR包1、在项目中添加依赖然后使用Studio 去下载库2、直接下载JAR包,然后作为库进行导入 环境验证:给程序进行联网权限XML布局文件效果如下: MainActitive.java 主…...
生成二维码
Qt本地生成二维码-第三方库Libqrencode Chapter1 Qt本地生成二维码-第三方库Libqrencode一、功能简介二、本地生成二维码三、在线生成二维码 Chapter2 Qt生成二维码图片方法QRCode二维码简介如何选定QR码版本?主要方法(1) 下载qrencode源码(2) 将qrencode源码移植到…...
【C++入门 一 】学习C++背景、开启C++奇妙之旅
目录 1.什么是C2. C的发展史3. C的重要性3.1 语言的使用广泛度3.2 在工作领域1. 操作系统以及大型系统软件开发2. 服务器端开发3. 游戏开发4. 嵌入式和物联网领域5. 数字图像处理6. 人工智能7. 分布式应用 3.3 在校招领域3.3.1 岗位需求3.3.2 笔试题 4. 如何学习C4.1 别人怎么学…...
oracle 表空间详解以及配置操作
Oracle 数据库是由若干个表空间构成的。任何数据库对象在存储时都必须存储在某个 表空间中。表空间对应于若干个数据文件,即表空间是由一个或多个数据文件构成的。 1、常用表空间: 系统表空间 (system tablespace) 是每个 Oracle 数据库都必须具备的。…...
php判断是否是email格式
要判断一个字符串是否是有效的电子邮件地址,你可以使用正则表达式和PHP内置函数来完成。以下是一个示例代码: $email "exampleexample.com"; // 你要检查的电子邮件地址// 使用正则表达式检查电子邮件格式 if (filter_var($email, FILTER_VA…...
AJAX与JSON
1.AJAX 1.AJAX概述 AJAX(Asynchronous JavaScript And XML):异步的 JavaScript 和 XML 本身不是一种新技术,而是多个技术综合。用于快速创建动态网页的技术 一般的网页如果需要更新内容,必需重新加载个页面。 而 Ajax通过浏览器与服务器…...
1024常玩到的漏洞(第十六课)
1024常玩到的两个漏洞(第十六课) 漏洞扫描工具 1024渗透OpenVas扫描工具使用(第十四课)-CSDN博客 流程 一 ms12-020漏洞分析 MS12-020漏洞是一种远程桌面协议(RDP)漏洞。在攻击者利用该漏洞之前,它需要将攻击者的计算机连接到受害者的计算机上。攻击者可以通过向受害者计算…...
【Edabit 算法 ★★★★★★】【两个大整数相加】Recursion: Sum of Two Numbers (With A Twist!)
Recursion: Sum of Two Numbers (With A Twist!) Instructions This is an “expert” challenge!!! Why is a sum of two numbers an “expert” challenge!!! Well, the numbers can have 1000 digits or even beyond such count… So, what’s the twist? You have to do …...
电容屏物体识别手工制作
电容屏识别物体效果2 电容屏识别物体效果1 电容屏识别物体效果3 电容屏识别物体效果4 电容识别物理效果5 我们感兴趣的是找到让我们的平面屏幕与物理三维物体和表面交互的方法。 触摸屏无处不在,成千上万的应用程序中有多种设备和屏幕格式,但我们只找到…...
13JVM进阶
JVM内存模型 1、线程私有的数据区 1)、程序计数器 我们知道,线程是CPU调度的基本单位。在多线程情况下,当线程数超过CPU数量或CPU内核数量时,线程之间就要根据 时间片轮询抢夺CPU时间资源。也就是说,在任何一个确定的时刻&#…...
java与c++中的交换方法
最近在写算法的时候,遇到一个问题。 java中编写swap(交换)方法还需要传入一个数组,但是在c中则不需要。 可以看到,在没有传入数组进行交换数组元素的时候,交换前与交换后的值是一样的。 而在c中ÿ…...
OpenCV中world模块介绍
OpenCV中有很多模块,模块间保持最小的依赖关系,用户可以根据自己的实际需要链接相关的库,而不需链接所有的库,这样在最终交付应用程序时可以减少总库的大小。但如果需要依赖OpenCV的库太多,有时会带来不方便,此时可以使…...
IMX6ULL板开发——第一个应用程序
实现第一个应用程序:在IMX6ULL开发板上运行程序hello.c #include <stdio.h>/* 执行命令: ./hello weidongshan* argc 2* argv[0] ./hello* argv[1] weidongshan*/int main(int argc, char **argv) {if (argc > 2)printf("Hello, %s!\n", arg…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
