Linux操作系统概念
绪论:
“心灵纯洁的人,生活充满甜蜜和喜悦。——列夫·托尔斯泰”,本章的主要内容是介绍了硬件的组成结构冯诺依曼体系结构以及操作系统的概念和操作系统的作用,本章的内容主要是理论他起到承上启下的作用只有理解了操作系统的运行逻辑,我们才能更好的去了解一些软硬件的运行逻辑!下一章是初步了解进程,大多数人可能都听过但可能并不深刻,敬请期待(早关注不迷路!)。
话不多说安全带系好,发车啦(建议电脑观看)。
1.冯诺依曼体系结构
冯诺依曼体系结构是当今计算机组成的基本框架结构,是由输入设备、输出设备、存储器、运算器、控制器(一般把运算器和控制器看成CPU)五个部分组成。
下面是冯诺依曼体系结构的知识大概总结:
- 存储器指的并不是磁盘(硬盘),而是内存。
- CPU一般是不和外设(输入输出设备)直接交互的,而是CPU优先通过内存直接打交道的。
- 这是因为CPU本身的运算是很快的,这样就会要求磁盘的读取速度,但是因为CPU的速度要远远快于磁盘,所以这样就会导致计算机速率的降低,对此为了优化这种情况我们会在CPU和输入输出设备之间会加上内存(其中包含许多寄存器和高速缓存所以速度会快于磁盘的)
- 那为什么不全用内存的,在速度的情况下肯定价格就会比较的高,因为为了计算机能够给老百姓也能使用,所以存储是分级的,这样就能把价格平均下去,大部分用磁盘(固态ssd),小部分用内存(将要用的磁盘内容先逐步加载进内存中缓存起再交给CPU处理).存储的分级结构:
(网上找的图若侵权联系立删)
在上图中:越往上面(越接近CPU)的存储介质越贵且速度越快(相较于同样大小的硬盘),反之越向下的则是越便宜且更慢。- 硬盘就是外设,它属于永久存储介质。内存则是掉电易失性存储单元(当机器电源关闭时,存于其中的数据就会丢失)。
- 其实各种外设其实都是有一定的存储能力的(只不过比较小)
- 通过上面的总结不难看出:内存可以和外设以及CPU交互信息(所以整机的效率是由内存决定)
- 我们的程序 = 代码 + 数据,最终通过内存传递给CPU来运行,所以注定了进程(程序)在运行之前必须得先加载到内存,然后才能交给CPU处理。当CPU要读取这些代码和数据时,因为CPU只和内存层面进行交互,而我们编译形成的.exe(可执行程序)本质就是个文件所以就会保存的磁盘(外设)中,由于体系结构决定,那么要若要运行的话就需要从磁盘中加载进内存,在经过内存到CPU处理运行最后返回到输出设备。
- 那么总结来说:当我们进行信息的传递的过程本质上就还是肯定要通过冯诺依曼体系结构的输入设备、输出设备、存储器、中央处理器,如下在网络通信大概能概括成如下图(硬件逻辑):
2.操作系统
操作系统是一款软硬件资源管理的软件,它是在开机时第一个加载的软件。
操作系统的作用是他将上层的软件和下层的硬件进行管理,为用户提供良好的(稳定、高效、安全)的使用环境。
计算机软硬件框架:
操作系统管理的本质就是管理数据!,所以操作系统管理的就是底层硬件所有的数据。
在底层的硬件其实都是一个个对象(所以说硬件都是被先描述再组织的),其内部封装了许多硬件的信息和方法,我们通过操作系统就能通过管理这些对象结构来管理这些硬件(其底层使用链表链接起来的那么管理硬件也就相当于对链表进行操作)。
具体如:管理硬盘的文件系统的数据时,操作系统是通过驱动程序来帮他到其硬盘内部的找到某个数据,而在操作系统中是将这些使用驱动程序的过程写成了一个个函数调用,当我们要去管理某个硬件就去调用驱动程序(函数)就能得到其对应的数据。一般来说所有的硬件对象其内部都会有一个next指针来链接起来所有硬件(就类似于一个链表,为了方便找到要使用的硬件),这样操作系统就相当于可以通过链表来管理结构来管理所有硬件。总结来说管理一个硬件就是首先硬件是一个结构体对象,然后再用链表将这些对象链接起来进行管理。
操作系统所要管理的核心是进程管理、内存管理(磁盘)、文件/IO管理(文件)、驱动管理,而这些硬件的管理底层同样的还是先描述再组织
虽然操作系统已经将底层管理好了,但是用户是并不能直接的使用操作系统来访问底层硬件,而是要通过系统调用来间接的使用它(这里的主要原因是避免自身信息被不法分子容易的调用计算机信息),而这些系统调用接口就相当于一个个函数,若要用户想获取操作系统内的信息(或访问硬件)就只能通过这些接口。(可以理解为银行以及银行的窗口),总结来说就是必须从上往下逐一的进行(上图!)
操作系统的示意图:
本章完。预知后事如何,暂听下回分解。
如果有任何问题欢迎讨论哈!
如果觉得这篇文章对你有所帮助的话点点赞吧!
持续更新大量Linux细致内容,早关注不迷路。
相关文章:

Linux操作系统概念
绪论: “心灵纯洁的人,生活充满甜蜜和喜悦。——列夫托尔斯泰”,本章的主要内容是介绍了硬件的组成结构冯诺依曼体系结构以及操作系统的概念和操作系统的作用,本章的内容主要是理论他起到承上启下的作用只有理解了操作系统的运行…...

Speech | 人工智能中关于语音务必需要了解的基础知识(信号处理)及代码
语音是指人们讲话时发出的话语,是一种人们进行信息交流的声音,是由一连串的音组成语言的声音,我们可以理解为语音(speech)声音(acoustic)语言(language)。 目录 0.声音的基本属性 0.1.音高(pitch) 0.2.音量(Volume) 0.3.音色(Timbre) 0…...
c# 单例模式实现
方式一: 在C#中,可以使用单例模式来确保一个类只有一个实例,并提供一个全局访问点。 public class Singleton {private static Singleton instance;private static readonly object lockObject new object();private Singleton(){// 私有构…...

万字长文详解Java线程池面试题
王有志,一个分享硬核 Java 技术的互金摸鱼侠 加入 Java 人的提桶跑路群:共同富裕的Java人 今天是《面霸的自我修养》第 6 篇文章,我们一起来看看面试中会问到哪些关于线程池的问题吧。数据来源: 大部分来自于各机构(J…...

【jQuery入门】链式编程、修改css、类操作和className的区别
文章目录 前言一、链式编程二、修改css2.1 获取css的值2.2 设置单个css属性2.3 设置类样式添加类移除类切换类 三、类操作与className的区别总结 前言 jQuery是一个流行的JavaScript库,广泛用于简化DOM操作和处理事件。在jQuery中,链式编程是一种强大的…...

使用的uview 微信高版本 头像昵称填写能力
<template><view><button class"cu-btn block bg-blue margin-tb-sm lg" tap"wxGetUserInfo">一键登录</button><view><!-- 提示窗示例 --><u-popup :show"show" background-color"#fff">&…...

Hadoop3完全分布式搭建
一、第一台的操作搭建 修改主机名 使用hostnamectl set-hostname 修改当前主机名 关闭防火墙和SELlinux 1,使用 systemctl stop firewalld systemctl disable firewalld 关闭防火墙 2,使用 vim /etc/selinux/config 修改为 SELINUXdisabled 使用N…...

中断——外部中断EXIT
前期疑问:中断可以分成外部中断和内部中断吗 文章目录 前言一、中断知识二、中断编程三、EXIT外部中断/事件控制器 3.1 中断事件线3.2 EXTI初始化结构体详解 四、软件设计 4.1 编程要点 五、代码回顾实现六、补充中断知识总结 前言 野火中断章节有这样一句话 【F…...

Kafka-服务端-副本机制
Kafka从0.8版本开始引入副本(Replica)的机制,其目的是为了增加Kafka集群的高可用性。 Kafka实现副本机制之后,每个分区可以有多个副本,并且会从其副本集合(Assigned Replica,AR)中选出一个副本作为Leader副本,所有的读写请求都由…...

银行数据仓库体系实践(4)--数据抽取和加载
1、ETL和ELT ETL是Extract、Transfrom、Load即抽取、转换、加载三个英文单词首字母的集合: E:抽取,从源系统(Souce)获取数据; T:转换,将源系统获取的数据进行处理加工,比如数据格式转化、数据精…...

云计算入门——Linux 命令行入门
云计算入门——Linux 命令行入门 前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 介绍 如今,我们许多人都熟悉计算机(台式机和笔记本电…...
自然语言处理(NLP)的发展
自然语言处理的发展 随着深度学习和大数据技术的进步,自然语言处理取得了显著的进步。人们正在研究如何使计算机更好地理解和生成人类语言,以及如何应用NLP技术改善搜索引擎、语音助手、机器翻译等领域。 方向一:技术进步 自然语言处理&…...

让uniapp小程序支持多色图标icon:iconfont-tools-cli
前景: uniapp开发小程序项目时,对于iconfont多色图标无法直接支持;若将多色icon下载引入项目则必须关注包体,若将图标放在oss或者哪里管理,加载又是一个问题,因此大多采用iconfont-tools工具,但…...
丹麦公司注册优势 丹麦公司注册条件 丹麦公司注册注意事项
丹麦公司注册优势 1、开-放的商业环境,拥有公平透明的商业法律和制度。 2、简化的注册流程,无需繁琐的审批程序和复杂的材料准备。 3、全球认可的声誉,有助于提升贵公司的国际形象。 4、该国的政-府在坚持适度紧缩的财政政策,…...

C++PythonC# 三语言OpenCV从零开发(4):视频流读取
文章目录 相关链接视频流读取CCSharpPython 总结 相关链接 C&Python&Csharp in OpenCV 专栏 【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程(附带课程课件资料课件笔记) OpenCV 教程中文文档|OpenCV中文 OpenCV教程中文文档|W3Csc…...

vue element MessageBox.prompt this.$prompt组件禁止显示右上角关闭按钮,取消按钮,及点击遮罩层关闭
vue element MessageBox.prompt this.$prompt组件禁止或取消显示右上角关闭按钮,取消按钮,及点击遮罩层关闭 实现效果: 实现代码 MessageBox.prompt(请先完成手机号绑定, 系统提示, {confirmButtonText: 提 交,showClose: false,closeOnClic…...
Oracle 日常健康脚本
文章目录 摘要常用脚本 摘要 保持 Oracle 数据库的良好健康状况对于系统的可靠性和性能至关重要。本文将介绍一些常用的 Oracle 日常健康脚本,帮助您监控数据库并及时识别潜在的问题,以保证数据库的稳定运行。 常用脚本 1.查询数据库实例和实例级别的…...
leetcode670最大交换
给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。 注意: 给定数字的范围是 [0, 108] int maximumSwap(int num) {…...
XML 注入漏洞原理以及修复方法
漏洞名称:XML注入 漏洞描述:可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具 有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XM…...

x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具
目录 简介首次用户快速实验指南基本功能性能特点竞品进一步探索 简介 dasel,是数据(data)和 选择器(selector)的简写,该工具使用选择器查询和修改数据结构。 支持 JSON,YAML,TOML&…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...