首页 > 系统相关 >Linux:操作系统简介

Linux:操作系统简介

时间:2025-01-11 16:04:25浏览次数:3  
标签:操作系统 简介 学生 冯诺 Linux print CPU 内存

前言:

        在本片文章,小编将带大家理解冯诺依曼体系以及简单理解操作喜欢,并且本篇文章将围绕什么以及为什么两个话题进行展开说明。

冯诺依曼体系:

        是什么:

                冯诺依曼体系(Von Neumann architecture)是一种计算机体系结构模型,由数学家约翰·冯·诺依曼提出。该模型是现代计算机设计的基础。

        在理解冯诺依曼前,我们先认识一下上图冯诺依曼体系的结构分别是什么。

        输入设备:

                键盘,鼠标,网卡,磁盘,摄像头....

        输出设备:

                显示器,磁盘,打印机...

        CPU:

                首先CUP=运算器+控制器。CPU简而言之就是对数据进行计算控制等操作的设备。而CPU的获取、写入数据等操作必须依赖于存储器。

        存储器:

                存储器就是内存。

        为什么:

                一个软件运行的时候,是需要先将软件加载到内存的。为什么呢?因为体系结构规定。而在运行之前,我们的软件是存储在磁盘的。

                当我们点击一个程序比如qq,首先qq在磁盘中,需要将qq文件拷贝到内存,再通过CPU对qq执行代码来访问我们的数据,接着再拷贝输出到我们的显示器上。 

                由此我们可以得出结论,数据的输出本质是从一个设备 "拷贝" 到另一个设备上,而拷贝的效率是由设备进行决定。并且CPU在数据层面上之和内存打交道,而外设只和内存打交道。

                而这时候可能有同学问那么我们是否可以不要存储器,只需要CPU进行运算,这样效率是不是会快很多。

                答案是可以的,但这样效率其实也快不了多少,并且造价会非常高。输入设备以及输出设备的拷贝速率是毫秒级别,而cpu的拷贝速率是微秒级别。参考上图,我们知道越靠近cpu计算速度越快,但存储容量更小而且更贵。而越远离cpu计算速度就越慢,存储空间就越大,价格就耕地。

        这里会提到一个木桶原理

        一个木桶所能存储的容量,不是由最高的那个木板决定,而是由最低的那个木板决定。

        那么在冯诺依曼体系中也是如此,如果不要存储器,效率也不会提高多少,因为在你拷贝数据的时候CPU就在处理了,而可能CPU都将现有的数据处理完成后,你输入设备都还没拷贝完,CPU还得在那么等着数据流入。

        有了内存,那么文件中的数据就可以提前先存储到内存,再由cpu进行处理。

        所以当代计算机其实是性价比的产物。虽然冯诺依曼体系看着简单,但是其意义是非常重大的,这会让计算机的价格更加亲民,也就有更多的网民。才会大大推动互联网的发展以及创新。

简单理解操作系统:

        是什么:

                操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的系统软件,它为计算机上的各种应用程序提供支持和服务。

                操作系统包括:内核(进程/线程/任务管理,文件管理,以及内存管理等等)与其他程序(函数库,shell程序等)。

                就比如我们以前经常听说,安卓的底层用的就是Linux,那么其实意思是安卓系统的内核用的是Linux的内核。只是在外壳上做了相关的改变。

        为什么:

                

         上图简单展示了计算机系统从用户操作到硬件控制的整个流程,每个层次都有其特定的功能和责任,共同协作以实现系统的正常运行。

        假设我在编写代码,正在输出一个print函数,那么这个print函数是怎么调用的呢?

        首先print函数是C语言的库函数,我们会先进入到用户操作接口层,去调用print函数,接着print函数里面封装了系统调用函数接口(write),而write就会调用操作系统的驱动管理,在通过分类去找是显示器的驱动,接着由驱动去调用硬件显示器去写入我们需要向显示器写入的语句。

        print的本质就是将数据写入到硬件,显示器中。

        那么通过上图以及例子我们可以得出一些结论:

                1.软硬件体系结构采用层状结构,这体现了计算机系统具有高内聚、低耦合的特性。这样大大提高了操作系统的健壮性以及可维护性。

                高内聚指的是同一层内部的功能高度相关,层内的组件紧密协作,彼此之间的依赖性强,从而提高了每一层的独立性和功能专注性。

                低耦合则意味着各层之间的依赖性较弱。每一层通过标准化的接口与其他层进行交互,而不直接依赖于其他层的具体实现。

                  2.访问操作系统必须使用系统调用,而系统调用其实就是函数,基本上是用C语言封装的。而不让用户直接访问操作系统,也是为了确保系统数据以及自身的安全性。比起用户,操作系统更相信自己。

                3.我们的程序只要你判断出它访问了硬件,比如print,那么它就必须贯穿整个操作系统。        

                4.设计操作系统的目的,对上层,为用户或程序,提高良好的执行环境。对下层,与硬件交互,管理所有软硬件。

        再次重谈是什么:

                在整个计算机结构体系中,操作系统的定位:就是做管理。对于一件事情的管理,我们又分为决策以及执行。比如我要吃饭,这是决策。我正在吃饭,这是执行。

                理解管理:

                        

         现在将场景切换到校园,我们假设操作系统是校长,驱动程序是辅导员,硬件是学生。

        校长对学生做管理,需不需要校长与学生进行见面?如果需要见面那学生有几千几万个的时候等校长见完所有学生都猴年马月了。所以管理者和被管理者见面不是必要条件。

        那么校长与学生不见面应该如何管理?其实是根据"数据"进行管理。我们学生都有学号,身高,体重,成绩等信息,都拥有共同条件,只是数据不同,那么在系统中,我们将这些数据想要进行整合应该怎么整合?答案是struct(结构体).

        此时每一个学生都是一个节点,而学生节点中有next指针指向下一个学生(节点),那么此时就将对学生的管理转化成对链表的管理。

        如果需要筛选出排名前10名的学生,就通过算法进行获取,而如果要劝退一名成绩最差的学生,就将尾节点进行删除,刚开学要录入新生信息就新增节点。所以,校长对学生的管理工作本质上就转化为对链表的增删查改。而这中间做的工作,比如什么提交信息,获取信息,就是驱动程序做的工作。

                                                                                                

                                                                        那么本篇文章到这里就结束了,感谢各位观看!!!

标签:操作系统,简介,学生,冯诺,Linux,print,CPU,内存
From: https://blog.csdn.net/2301_80894970/article/details/145073873

相关文章

  • linux定时计划任务之crontab
    linux定时计划任务crontab是一个精确到分钟的定时计划任务,可以在指定的时间点运行任务。适应那些需要在确定时间点执行的任务。1.crontab安装命令:yumprovidescrontabyuminstall-ycronie[root@patrolagentcron]#yumprovidescrontabLoadedplugins:product-id,s......
  • 【Linux权限提升】如何通过密码搜寻在 Linux 系统中实现权限提升
    前言1密码搜寻–文件名和文件内容1.1寻找有趣的文件名1.2寻找有趣的字符串2密码搜寻–Web文件/Config文件2.2.1使用Hashcat破解密码2.1Config文件中的密码2.2Web文件中的密码3密码搜寻–隐......
  • 【小白向超详细】使用 VSCode 远程连接 Linux 服务器详细教程
    使用VSCode远程连接Linux服务器详细教程前提条件已安装VSCode。已在VSCode中安装Remote-SSH插件。目标Linux服务器开启了SSH服务,并可以通过SSH访问。本地电脑已安装SSH客户端(Linux和macOS自带,Windows用户可以安装OpenSSH)。一、安装Remote-S......
  • 【初涉Python】Linux的一些简单介绍
        在实际开发的时候,很多的代码都来自于经验、思考和搜索,所以不用觉得自己一定要从零开始创造才是合格的,事实上很多时候,使用已有的东西可以大大提高效率,在编程学习中不用太过苛求自己。Linux    这里介绍一些Linux的内容是因为笔者学习Python的时候是在Linu......
  • Linux(Centos 7.6)命令详解:split
    1.命令作用Linux系统中的一个用于拆分文件的命令。它可以将一个大文件拆分成多个小文件,以便于传输、存储或处理2.命令语法Usage:split[OPTION]...[INPUT[PREFIX]]Usage:split[选项]... [输入文件][输出文件前缀]3.参数详解OPTION:-a,--suffix-length=N,生成分裂......
  • 《操作系统真相还原》实验记录2.4——内存管理系统
    一、位图bitmap及其函数的实现1.1位图简介位图,也就是bitmap,广泛用于资源管理,是一种管理资源的方式、手段。“资源”包括很多,比如内存或硬盘,对于此类大容量资源的管理一般都会采用位图的方式。位是指bit,即字节中的位,1字节中有8个位;图是指map,地图本质上就是映射的意思,映......
  • 如何对Linux进行网络性能的峰值测试?
    在Linux中,进行网络性能的峰值测试是一个重要的环节,可以帮助您了解系统在网络高负载下的性能表现。以下是进行网络性能峰值测试的详细步骤:1.确定测试目标和场景明确测试目标:确定您想要测试的网络性能指标,如带宽、吞吐量、延迟、抖动等。设定测试场景:考虑测试环境的实际情况,如......
  • 如何对Linux进行系统性能的峰值测试?
    在Linux中进行系统性能的峰值测试,也称为压力测试或极限测试,是为了确定系统在极端条件下的表现和稳定性。这种测试可以帮助识别系统的瓶颈和故障点。以下是进行系统性能峰值测试的步骤:1.确定测试目标明确你想要测试的性能指标,如CPU、内存、磁盘I/O、网络带宽等。2.选择压力测......
  • 《Linux设备驱动开发详解(第3版)》 第17章 Linux设备驱动开发综合实例
    17.1开发板硬件介绍假设我们使用的是一款基于ARM架构的开发板,板上集成了多种设备,如串口、GPIO、SPI、I2C等接口,以及网卡、USB控制器、PCI插槽等设备。不同的开发板硬件特性会有所不同,这里以通用的硬件配置为例进行说明。17.2字符设备驱动开发实例字符设备是一种以字节......
  • 《Linux设备驱动开发详解(第3版)》 第18章 Linux驱动移植
    18.1驱动移植概述驱动移植是指将为某个特定硬件平台或内核版本编写的设备驱动程序,经过修改和适配,使其能够在另一个硬件平台或内核版本上正常运行。这一过程需要深入了解目标平台的硬件特性、内核架构以及驱动接口的差异。驱动移植通常涉及到硬件相关代码的调整、内核接口......