Linux操作系统概念

绪论​:
“心灵纯洁的人,生活充满甜蜜和喜悦。——列夫·托尔斯泰”,本章的主要内容是介绍了硬件的组成结构冯诺依曼体系结构以及操作系统的概念和操作系统的作用,本章的内容主要是理论他起到承上启下的作用只有理解了操作系统的运行逻辑,我们才能更好的去了解一些软硬件的运行逻辑!下一章是初步了解进程,大多数人可能都听过但可能并不深刻,敬请期待(早关注不迷路!)。
请添加图片描述
话不多说安全带系好,发车啦(建议电脑观看)。


1.冯诺依曼体系结构

在这里插入图片描述

冯诺依曼体系结构是当今计算机组成的基本框架结构,是由输入设备、输出设备、存储器、运算器、控制器(一般把运算器和控制器看成CPU)五个部分组成。
下面是冯诺依曼体系结构的知识大概总结:

  1. 存储器指的并不是磁盘(硬盘),而是内存。
  2. CPU一般是不和外设(输入输出设备)直接交互的,而是CPU优先通过内存直接打交道的
  3. 这是因为CPU本身的运算是很快的,这样就会要求磁盘的读取速度,但是因为CPU的速度要远远快于磁盘,所以这样就会导致计算机速率的降低,对此为了优化这种情况我们会在CPU和输入输出设备之间会加上内存(其中包含许多寄存器和高速缓存所以速度会快于磁盘的)
  4. 那为什么不全用内存的,在速度的情况下肯定价格就会比较的高,因为为了计算机能够给老百姓也能使用,所以存储是分级的,这样就能把价格平均下去,大部分用磁盘(固态ssd),小部分用内存(将要用的磁盘内容先逐步加载进内存中缓存起再交给CPU处理).存储的分级结构:在这里插入图片描述(网上找的图若侵权联系立删)
    在上图中:越往上面(越接近CPU)的存储介质越贵且速度越快(相较于同样大小的硬盘),反之越向下的则是越便宜且更慢。
  5. 硬盘就是外设,它属于永久存储介质。内存则是掉电易失性存储单元(当机器电源关闭时,存于其中的数据就会丢失)。
  6. 其实各种外设其实都是有一定的存储能力的(只不过比较小)
  7. 通过上面的总结不难看出:内存可以和外设以及CPU交互信息(所以整机的效率是由内存决定)
  8. 我们的程序 = 代码 + 数据,最终通过内存传递给CPU来运行,所以注定了进程(程序)在运行之前必须得先加载到内存,然后才能交给CPU处理。当CPU要读取这些代码和数据时,因为CPU只和内存层面进行交互,而我们编译形成的.exe(可执行程序)本质就是个文件所以就会保存的磁盘(外设)中,由于体系结构决定,那么要若要运行的话就需要从磁盘中加载进内存,在经过内存到CPU处理运行最后返回到输出设备。
  9. 那么总结来说:当我们进行信息的传递的过程本质上就还是肯定要通过冯诺依曼体系结构的输入设备、输出设备、存储器、中央处理器,如下在网络通信大概能概括成如下图(硬件逻辑)在这里插入图片描述

2.操作系统

操作系统是一款软硬件资源管理的软件,它是在开机时第一个加载的软件。
操作系统的作用是他将上层的软件和下层的硬件进行管理,为用户提供良好的(稳定、高效、安全)的使用环境
计算机软硬件框架:
在这里插入图片描述
操作系统管理的本质就是管理数据!,所以操作系统管理的就是底层硬件所有的数据。
在底层的硬件其实都是一个个对象(所以说硬件都是被先描述再组织的),其内部封装了许多硬件的信息和方法,我们通过操作系统就能通过管理这些对象结构来管理这些硬件(其底层使用链表链接起来的那么管理硬件也就相当于对链表进行操作)。
具体如:管理硬盘的文件系统的数据时,操作系统是通过驱动程序来帮他到其硬盘内部的找到某个数据,而在操作系统中是将这些使用驱动程序的过程写成了一个个函数调用,当我们要去管理某个硬件就去调用驱动程序(函数)就能得到其对应的数据。一般来说所有的硬件对象其内部都会有一个next指针来链接起来所有硬件(就类似于一个链表,为了方便找到要使用的硬件),这样操作系统就相当于可以通过链表来管理结构来管理所有硬件。总结来说管理一个硬件就是首先硬件是一个结构体对象,然后再用链表将这些对象链接起来进行管理。
操作系统所要管理的核心是进程管理、内存管理(磁盘)、文件/IO管理(文件)、驱动管理,而这些硬件的管理底层同样的还是先描述再组织
虽然操作系统已经将底层管理好了,但是用户是并不能直接的使用操作系统来访问底层硬件,而是要通过系统调用来间接的使用它(这里的主要原因是避免自身信息被不法分子容易的调用计算机信息),而这些系统调用接口就相当于一个个函数,若要用户想获取操作系统内的信息(或访问硬件)就只能通过这些接口。(可以理解为银行以及银行的窗口),总结来说就是必须从上往下逐一的进行(上图!)
操作系统的示意图:
在这里插入图片描述


本章完。预知后事如何,暂听下回分解。

如果有任何问题欢迎讨论哈!

如果觉得这篇文章对你有所帮助的话点点赞吧!

持续更新大量Linux细致内容,早关注不迷路。

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

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

相关文章

rs3568芯片,hdmi输出 无声音

rs3568芯片,hdmi in输入 hdmi输出 无声音,如果高手请联系。谢谢!

【硅谷甄选】stylelint

配置 stylelint stylelint 为 css 的 lint 工具。可格式化 css 代码,检查 css 语法错误与不合理的写法,指定 css 书写顺序等。 以下使用 scss 作为预处理器为例,安装以下依赖: pnpm add sass sass-loader stylelint postcss po…

SAP创建资产号码和分配资产价值

文章目录 1 Creat new asset2 View asset3 Create old asset4 Transfer value5 Summary 1 Creat new asset T-code(AS01) 2 View asset T-CODE : AS03 3 Create old asset T-code(as91) 4 Transfer value T-code(ABLDT) If there is following information a…

python sqlite3 线程池封装

1. 封装 sqlite3 1.1. 依赖包引入 # -*- coding: utf-8 -*- #import os import sys import datetime import loggingimport sqlite31.2. 封装类 class SqliteTool(object):#def __init__(self, host, port, user, password, database):def __init__(self, host, database):s…

Typora + PicGo + GitHub搭建图床

Typora PicGo GitHub搭建图床 1. Typora下载破解 这一步自行百度 2. PicGo下载 PicGo is Here | PicGo 自行下载安即可 3. GitHub仓库设置 gitHub注册略过,如果不能访问请科学上网 创建仓库 生成访问token 点击右上角头像 -> setting -> 点击左边最…

Hotspot源码解析-第25章-类的初始化

第25章-类的初始化 这一章主要是讲类的初始化操作,后续类加载章节中也会用到这一章的知识,只不过,这里就讲,是因为虚拟在初始化过程中,需要对基础类,比如System/Thread等类进行初始化操作,所以…

第三季《乐队风暴》全国总决赛圆满落幕

2024年1月21日,由广东珠江、盛娱星汇海选联合主办的第三季《乐队风暴》全国海选歌手赛道全国总决赛在广州罗格镇MUSIC LIVE(太古仓店)正式打响,第三季《乐队风暴》全国海选开启以来共有超8000人报名渴望登上绚丽舞台,从…

二叉搜索树、二叉排序树(查找、插入和删除)——Java版本

1. 概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别…

Rsync服务

一、Rsync概述 rsync英文称为 remote synchronizetion,rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,功能类似于ssh带的scp命令,优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增…

Rust Web小项目

Rust 第26节 Web小项目 监听TCP链接 use std::net::TcpListener;fn main() {let listener TcpListener::bind("127.0.0.1:7887").unwrap(); //监听7887端口,成功后,就创建一个linstenerfor stream in listener.incoming() { // listener.…

2024年mongodb自建三节点副本集详细教程

环境说明 系统centos7.9 自建服务器或云服务器,硬件要求不低于2核2G内存,20G硬盘,文件系统默认是ext4即可。 生产环境最好单独一个磁盘存放数据库,方便数据备份和还原,避免干扰到其他磁盘的运作。 mongodb 4.4.27 …

HTML-表格

表格 1.基本结构 一个完整的表格由:表格标题、表格头部、表格主体、表格脚注,四部分组成 表格涉及到的标签: table:表格 caption:标题 thead:表格头部 tbody:表格主体 tfoot:表格注…

android:persistent和android:priority的区别,对进程优先级有什么影响?

前言:写的apk因为系统busy给我kill了,(adj 900): kill all background,在AndroidManifest.xml添加android:persistent"true"后,被甲方要求不能这样做,还是得从adj改,把 priority改成1000 android…

可Pin to Pin兼容DRV8837的国产H桥电机驱动芯片,具大电流,短gnd,短电源保护功能

在国产牙刷,电子锁设计中,以前方案很多采用TI的DRV8837做直流电机驱动,随着中美贸易战和牙刷,电子锁等产品价格平民化普及,很多大厂在做国产化替代设计方案,GLOBALCHIP 的电机驱动芯片GC8837,价…

解读Android进程优先级ADJ算法

本文基于原生Android 9.0源码来解读进程优先级原理,基于篇幅考虑会精炼部分代码 一、概述 1.1 进程 Android框架对进程创建与管理进行了封装,对于APP开发者只需知道Android四大组件的使用。当Activity, Service, ContentProvider, BroadcastReceiver任一组件启动时,当其所…

YOLOv8改进 | Conv篇 | 2024.1月最新成果可变形卷积DCNv4(适用检测、Seg、分类、Pose、OBB)

一、本文介绍 本文给大家带来的改进机制是2024-1月的最新成果DCNv4,其是DCNv3的升级版本,效果可以说是在目前的卷积中名列前茅了,同时该卷积具有轻量化的效果!一个DCNv4参数量下降越15Wparameters左右,。它主要通过两个方面对前一版本DCNv3进行改进:首先,它移除了空间聚…

Python 流静态文件过滤、端口过滤、同域过滤(host过滤)、代理拦截

目录 静态文件过滤 需求 代码 端口过滤 需求 代码 同域过滤(host过滤) 需求 代码 静态文件过滤 需求 流量中的url包含大量静态文件请求信息,过滤掉 代码 def __is_static(self, flow: http.HTTPFlow) -> bool:static_ext [.j…

探讨Go语言中的HTTP代理模式:看Go如何玩转网络中转站

在互联网的海洋中,HTTP代理服务器像一座灯塔,为我们的网络冲浪提供了指引。而当Go语言遇上HTTP代理,会碰撞出怎样的火花呢?今天,让我们一起探讨Go语言中的HTTP代理模式,看看它如何玩转这个网络中转站&#…

三:C语言-输入与输出

三:输入与输出 一:输出 1.printf(): ​ 将参数文本输出到屏幕上,它名字里的 f 代表 format(格式化),表示可以定制输出文本的格式 ​ printf()不会在行尾自动添加换行符,待运行结…

IDEA(十)2022版本 Services中服务窗口不显示端口号解决

目录 一、问题描述二、问题分析三、解决方案3.1 设置启动参数【生效】3.2 方法二:设置环境变量【不生效】3.3 方法三:删除缓存【不生效】 四、补充:如何手动控制端口显示 一、问题描述 我们在使用 IDEA 的过程中,会发现在 Servic…