Linux操作系统概念

news2024/11/23 22:24:23

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


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.coloradmin.cn/o/1406093.html

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

相关文章

基于SpringBoot Vue宠物领养系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

了解面试必会算法Sliding Window 模式的前世今生

大家好,今天我们来聊一聊sliding window pattern。又是给有个机会给班花讲题的好机会,不能错过! Sliding Window Pattern,中文名字叫滑动窗口模式,是一种常见的算法思想。它可以用来解决很多问题,比如&am…

STATA DEA代码说明及样本数据

STATA_DEA代码说明及样本数据 含DEA模型代码和malmquist指数stata代码 包含具体说明 数据包络分析(Data envelopment analysis,DEA)是运筹学和研究经济生产边界的一种方法。该方法一般被用来测量一些决策部门的生产效率。 DEA是一个线性规…

苹果眼镜(Vision Pro)的开发者指南(5)-主要工具

主要工具有:Xcode、Reality Composer Pro、Unity 第一部分:【用Xcode进行开发】 开始使用Xcode为visionOS进行开发。将向你展示如何在你现有的项目中添加一个visionOS目标,或者构建一个全新的应用,在Xcode预览中创建原型,以及从Reality Composer Pro中导入内容。还将分享…

七八分钟快速用k8s部署springboot前后端分离项目

前置依赖 k8s集群,如果没有安装,请先安装 kubectl ,客户端部署需要依赖 应用镜像构建 应用镜像构建不用自己去执行,相关镜像已经推送到docker hub 仓库,如果要了解过程和细节,可以看一下,否…

从零学Java MySQL

MySQL 文章目录 MySQL初识数据库思考:1 什么是数据库?2 数据库管理系统 初识MySQLMySQL卸载MySQL安装1 配置环境变量2 MySQL目录结构及配置文件 连接MySQL数据库基本命令MySQL基本语法:1 查看MySQL服务器中所有数据库2 创建数据库3 查看数据库…

C++ 之LeetCode刷题记录(十六)

😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 100. 相同的树 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在…

DophineScheduler通俗版

1.DophineScheduler的架构 ZooKeeper: AlertServer: UI: ApiServer: 一个租户下可以有多个用户;一个用户可以有多个项目一个项目可以有多个工作流定义,每个工作流定义只属于一个项目;一个租户可…

深入了解WPF控件:常用属性与用法(七)

掌握WPF控件:熟练常用属性(七) Menu 用于为应用程序指定命令或选项的项列表。它允许用户通过选择不同的菜单项来执行不同的命令或操作。 每个 Menu 可以包含多个 MenuItem 控件。 每个 MenuItem 都可以调用命令或调用 Click 事件处理程序。…

5G-A:“繁花”盛开在2024

2019年,我国正式发牌5G,开启5G商用新时代。通信技术十年一代,五年过去了,5G是否要进入“半代更迭”阶段? 2024年被视为5G-A商用元年,是5G走向6G的关键一跃。5G-A以R18为演进起点,在连接速率、网…

机械臂雅可比矩阵的矢量积理解和matlab实现

雅可比矩阵的第Ji列: 关于一些基本概念可以参考博客,部分细节如下: 每个移动关节,Ji可以这样计算: 每个旋转关节,Ji这样计算: 有时候要求按照末端执行器坐标系{n}来执行一些位移旋转之类的…

[Linux]HTTP状态响应码列举

1xx:信息响应类,表示接收到请求并且继续处理 2xx:处理成功响应类,表示动作被成功接收、理解和接受 3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理 4xx:客户端错误&#x…

什么是线段树?

线段树是用于储存区间信息的数据结构。 线段树将区间划分为左右子区间进行递归求解,便形成了树形结构。并通过合并两区间信息从而取得任意区间信息 例如对于数组a{10, 11, 12, 13, 14},那么就可以构建以下线段树 构建 以数组作为线段树的基本结构&…

残差连接是什么意思

残差连接是深度神经网络中一种用于缓解梯度消失问题的技术。它的核心思想是通过将网络的输入直接传递到网络的输出,从而构建了一条直达路径,使得梯度更容易通过整个网络传播。这有助于在训练深层网络时避免梯度消失或梯度爆炸的问题。 在残差连接中&…

linux|操作系统|centos7物理机安装网卡驱动8188gu(内核升级,firmware固件,USB设备管理,module管理)

前言: 目前服务器领域centos7基本是主流的操作系统,而linux相对于Windows来说,软硬件方面的支持是差很多的,在硬件方面来说,以一个免驱的网卡为例,window xp可能不会自动识别到,但Windows10基本…

数据库中的经纬度数据如何在QGIS中显示

思路:必须先将经纬度数据转换成POINT,MULTILINESTRING等格式才能在QGIS中展示 步骤 1、首先在postgresql数据中建一张包括经纬度数据的表 **注意:**如果是新建数据库,一定要执行如下代码,否则后面的函数ST_GeomFrom…

使用fastapi和apifox实现后端接口

使用python文件import fastapi和uvicorn编写接口脚本 格式例: from pydantic import BaseModel from fastapi import FastAPI import uvicorn import jsonappFastAPI()class Response_data(BaseModel):re: strclass YourService():def __init__(self):passdef f(s…

【centos7安装docker】

背景: 学习docker,我是想做一个隔离环境,并且部署的话,希望实现自动化,不为安装软件而烦恼,保证每个人的环境一致。 2C4G内存 50G磁盘的虚拟机事先已经准备完毕。 1.查看下centos版本,docker要…

pytest自动化测试框架—基础篇

Pytest是一种基于Python编程语言的自动化测试框架,它提供了丰富的功能和灵活的扩展性,可以用于单元测试、集成测试、功能测试、端到端测试等多种场景。本文将介绍Pytest框架的基础知识,包括安装、配置、运行测试、断言和参数化等方面。 一、安…

shell脚本概念与命令

一、shell的作用 Shell 是一个特殊的应用程序,它介于操作系统内核与用户之间,充当 了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执 行的操作传递给内核执行,…