linux一阶段计算机相关概念(一)

linux一阶段计算机相关概念(一)

标签(空格分隔): linux


计算机概念

计算机是啥

就是输入,分析,输出就可以称为计算机。

计算机核心五单元(有啥)

输入单元:键盘,鼠标等
内存:输入输出的缓存,cpu与输入输出的交互的中间层
cpu的两大单元,cpu主要功能是用于流程控制和运算
1)逻辑计算单元:用于控制计算和流程
2)控制单元:协调各个组件资源
输出单元:显示屏之类的
cpu的处理数据都要经过内存获取,所以当内存不足的时候确实会严重影响性能。

电脑的最重要组成单元就是cpu,所以下面我们看下当前cpu架构都有哪几类

cpu类型和指令集(做啥的)

有复杂指令(CISC)和精简指令(RISC)
精简指令概念及使用场景:由于其指令较为简单,执行时间较短,指令执行的性能较好,你常使用的各厂牌手机、PDA、导航系统、网络设备(交换器、路由器等)等(ARM),当然还有就是一些金融银行领域用的工作站机器也是这方面的。
复杂指令概念及使用场景:主要是intel和amd,指令构建较复杂,执行时间较长,但同时也是可以执行较复杂的指令,所以在pc机的应用比较广,著名的x86架构就是,x86的由来是intel最开始给cpu的编号8086,后来陆续更新的80286,80386…。

cpu指令集主要包含的方面

多媒体微指令集:MMX, SSE, SSE2, SSE3, SSE4, AMD-3DNow!
虚拟化微指令集:Intel-VT, AMD-SVM
省电功能:Intel-SpeedStep, AMD-PowerNow!
64/32位相容技术:AMD-AMD64, Intel-EM64T

电脑的运行流程(怎么贯通电脑各个部件的流程)

引用鸟叔的话:

CPU=脑袋瓜子:每个人会作的事情都不一样(微指令集的差异),但主要都是通过脑袋瓜子来进行判断与控制身体各部分的
活动;
内存=脑袋中放置正在被思考的数据的区块:在实际活动过程中,我们的脑袋瓜子需要有外界刺激的数据 (例如光线、环境、
语言等) 来分析,那这些互动数据暂时存放的地方就是内存,主要是用来提供给脑袋瓜子判断用的信息。
硬盘=脑袋中放置回忆的记忆区块:跟刚刚的内存不同,内存是提供脑袋目前要思考与处理的信息,但是有些生活琐事或其他
没有要立刻处理的事情, 就当成回忆先放置到脑袋的记忆深处吧!那就是硬盘!主要目的是将重要的数据记录起来,以便未
来将这些重要的经验再次的使用;
主板=神经系统:好像人类的神经一样,将所有重要的元件连接起来,包括手脚的活动都是脑袋瓜子发布命令后, 通过神经
(主板)传导给手脚来进行活动啊!
各项周边设备=人体与外界沟通的手、脚、皮肤、眼睛等:就好像手脚一般,是人体与外界互动的重要关键!
显卡=脑袋中的影像:将来自眼睛的刺激转成影像后在脑袋中呈现,所以显卡所产生的数据来源也是CPU控制的。
电源供应器 (Power)=心脏:所有的元件要能运行得要有足够的电力供给才行!这电力供给就好像心脏一样,如果心脏不够
力, 那么全身也就无法动弹的!心脏不稳定呢?那你的身体当然可能断断续续的~不稳定!
由这样的关系图当中,我们知道整个活动中最重要的就是脑袋瓜子! 而脑袋瓜子当中与现在正在进行的工作有关的就是
CPU与内存!任何外界的接触都必须要由脑袋瓜子中的内存记录下来, 然后给脑袋中的CPU依据这些数据进行判断后,再发布命令
给各个周边设备!如果需要用到过去的经验, 就得由过去的经验(硬盘)当中读取啰!
也就是说,整个人体最重要的地方就是脑袋瓜子,同样的,整部主机当中最重要的就是CPU与内存, 而CPU的数据来源
通通来自于内存,如果要由过去的经验来判断事情时, 也要将经验(硬盘)挪到目前的记忆(内存)当中,再交由CPU来判断喔!
这点得要再次的强调啊! 

计算机分类(有什么类型)

按照计算能力来区分有
超级计算机
大型计算机
迷你电脑
工作站
pc(个人电脑)

相关单位介绍(速度及相关单位的概念)

容量单位

进位制介绍

|进位制|K|M|G|T|P|E|
|–|--|–|--|–|
|二进制|1024|1024K|1024M|1024G|1024T|1024P|
|十进制|1000|1000K|1000M|1000G|1000T|1000P|
计算机因为是二进制的所以换算单位都是1024,一般而言文件使用二进制,而速度则是使用10进制。

计算机容量

计算机的容量以二进制存储,以bit为最基本单元,而这个值实在太小了所以Bit=8bit 用来换算,但是这个计数单位还是太小,所以用来进位制比如KB,MB等来表示存储容量。

速度单位

速度计算机速度为MHz,GHz(Hz是秒分之一)等。而网络传输则是使用Mbps Mbits per second 每s传输量为多少Mbit 所以我们日常说的带宽20M/5M 其实就是每秒传输 2.5MB/25KByte的量级。

以下是相关的一些架构组成

个人电脑架构

在主板上留各个接口,可以连接cpu,内存,磁盘等。主板是各个组件连接的基础设施。
早期主板上的芯片组设计分为南北桥,北桥连接计算速度较快组件,如cpu,内存,显卡等 南桥连磁盘,网路等。下图为主板结构
image.png-217.4kB

图1

而后来讲内存,cpu,显卡直接集成到cpu,所以只能看到cpu而看不到北桥。 ## cup(开始一个个电脑组件介绍) 我们常说的cpu,双核,四核其实是指一个cpu组件里面嵌入多个cpu运行单元。 而cpu与主板连接的脚位也多有不同所以升级的时候需要注意。还有就是cpu运行效率,除了我们前面介绍的微指令集有关之外,还有与频率有关,比如3.6Hz就是一秒内可以运行3.6*10的6次方工作次数。

cpu的频率值外频与倍频

由于早期北桥的设计,通过北桥完成cpu,内存,显卡的交互,而所有的组件运算速度不可能有cpu快,而北桥连接的每个工作设备频率要相同,所有有前端总线作为外频,但这样cpu就会被迫降低频率,所以在cpu内部完成加速,频率会是外频的几倍甚至几十倍,这就是倍频。
这样所有的数据传输速度回卡死在北桥上,所以后面的cpu升级将内存控制器集成到cpu中,这样cpu直接与内存或者显卡交互,这样就解决了这个问题,同时外频也不在需要同步频率,不需要再做过多关注。

32、64位cpu总线宽度

cpu的运行数据来源与内存,而与cpu一样内存也有其工作频率(内存控制器完成交互),这个工作频率主要就是受限于内存控制器,内存控制器的频率最高达1600MHz 也就是活1600MHz*8bit=12.8GByte/s,与总线相似,cpu每次能处理的数据大小称为字组大小,而32位的解析字组大小有限,所以32为的最高可用内存大约为4GBytes

cpu超线程

超线程是个什么东东,就是在cpu的寄存器上逻辑上分为两个群,实际上我们在运行过程中基本上不能保证完全使用cpu,通过这两个群,我们就算可以同时运行两个程序了(逻辑上),所以速度基本上还是有提升的。那么也就是说,假如有4核cpu我们其实可以利用超线程机制完成同时8个程序的运算。而如果线程过多就会出现一个上下文切换的消耗,所以线程过多其实会降低运算速度。

内存

常用的有DDR和SDR两种,但是各自又有不同的版本型号。

多通道内存

使用多通道内存同时完成读写,提高速度,但要求通道的内存大小是一致的。

高效缓存

由于cpu数据读写都需要经过内存,但内存频率是跟不上cpu的,如果有常用内存可通过与cpu一致频率去做缓存就能有效提高速度,这里就是第二层高速缓存的设计由来,采用的是静态随机内存 SARM,频率可与cpu一致,可有效提高速度。

显卡

显卡是用于做显示包括图像和影像的生成有至关重要的作用,而显卡的处理也与传输速度有关。

硬盘与存储设备(还是计算机的一个中类型组件介绍)

这些设备存储的数据是用于记录和存储数据用的,包括硬盘,软盘,DVD,CD,U盘等设备。
硬盘组成:磁头,盘片,主轴马达,机械手臂构成。
数据主要存储在盘片上,而单一盘片存储的数据量有限,所以硬盘可能有多个盘片。
盘片的数据分布:两个圆之间构成的区域为磁区,磁区再划分为一个个小块成为扇区,在同一个同心圆的扇区组成的同心圆成为磁道。多个盘面的统一磁道称为柱面。
目前主流的是传统磁盘,SSD,USB外接磁盘,传统磁盘需要马达转动到扇区,再通过磁头读取,而且如果有小文件较多的情况下转的圈数也多,严重影响性能,而SSD就没有这方面的限制。
image.png-246.2kB

磁盘接口

主板与磁盘的交互需要接口连接的,为了提高速度,所以接口也有不同的类型而且为了速度不断的再更新换代,主要包括SATA(主流)第三代可达600MByte/s,还有SAS但是由于比较贵一般主板没有需要外接卡,USB主要用于外接磁盘的接入,2.0和3.0速度差距很大,理论值3.0可达500M/s,2.0 60M/s实际肯定是比这值要小。

SSD固态硬盘(硬盘升级)

还是为了速度而战,传统磁盘需要获取数据所在扇区,磁头定位之后去读取,如果数据分布较广磁盘就得扫描范围较广,严重影响速度,所以就有了闪盘升级做磁盘用SATA,SAS做接口,速度提升的不是一星半点,而且吧人家已经不能叫做磁盘了,因为木有磁头啥的都是内存读写。但是SSD寿命木有磁盘长有写入读取次数的限制。

扩展卡与接口

在一些情况下可能存在主板设备不够用需要引入其他相关设备卡的时候,所以主板在设计之初就预留了拓展卡接口插槽有Pcle,pci插槽。
比如存在这么个场景,一太电脑连接多个网域的时候就需要额外买网卡。

主板结构

插槽位置的考虑

主板上虽然预留了扩展卡接口插槽,但是插在不同的位置也是有讲究的,如果我们追求系能的话,同样是Pcle*8 我们插在cpu旁边和插在连接南桥的旁边的效率是差很多的。因为南桥与主板之间还存在一个通道,而这个通道称为DMI,速度最高才能达到2GB/s,这里的带宽将会称为你这个接入组件的性能瓶颈。
主板逻辑图传送门

I/O地址和IRQ中断通道

主板需要和各个组件进行通信,包括读取/写入。那么主板芯片组怎么知道和各个组件进行通信呢,这个时候就得用到I/O地址和IRQ通道。这里的I/O地址可以认为是住户地址,那有了I/O地址(设备唯一),我们传输就需要IRQ就想快递员,快递员是有限的所以就需要进行协调,让不用的接口关掉也就是快递员不送货,只有快递到的住户我们才去送货。

bios和cmos

这两个在属内存模块,CMOS主要记录主板上的重要参数,包括cpu电压,系统时间,设备的I/O地址等信息。BIOS为写入主板上的某一块的flash或者EEPROM程序,开机执行,主要是载入CMOS并调用存储设备的开机程序,相当于一个开机程序引导项。

选购须知

我们的机器不一定cpu高就一定快,在所有组件中,计算机的性能肯定是卡在最慢的那个组件上。

计算机编码(光有硬件还不行我们再从软件层面看看如何运行)

数字编码

计算机只认识0,1 但是我们在使用的时候有很多不同的语言,那么什么怎么才能让计算机认识我们的文字呢。那就需要转换了。我们在日常生活中通常使用的是10进制,但是计算机识别的是2进制,所谓几进制就是逢几进一位。10进制是逢10进1 比如101=10^2 *1 + 10^1 *0 + 10^0 *1 同理二进制也是如此。

字符编码

由于计算机只认识二进制,所以我们需要一个编码(密码),将对应的文字转换为计算机认识的二进制,读取的时候需要编码将二进制转换成我们能看懂的文字,所以英文就有一个ASCII码可以做对照,而其他文字后来又unicode称为UTF-8或者万国码帮我们完成这个事。

简便推动发展(操作系统与应用程序)

早期呢,我们假如要开发一个软件,那么我们就得需要了解cpu溦指令集,硬件的函数调用通过机器语言完成相关硬件调用达到程序的可用性。但是机器语言真不是人看的东东,太底层而且由于硬件和cpu的不同换一台电脑就可能需要改程序,所以后期我们就有了高级语言,java,python,c++等 这些程序通过编译程序编译成机器识别的机器码,但是虽然程序好改了,但还是需要改是不是只不过改起来不像机器语言那么变态。
随着时代的发展,就有了操作系统,操作系统就是提供硬件的调度对不同的cpu如果支持会做封装(内核),我们只需要做系统调用就可以达到程序运行的目的,操作系统就是管理电脑的所有活动驱动所有的硬件。这里操作系统也分为几个模块,一个是内核:提供设备交互,让设备处于可运行的状态。还有一个就是系统调用:因为内核态核心了如果被用户吓搞瘫痪了就不好了,所以内核之上有一个系统调用的包装层,这样通过系统调用接口我们就能完成程序的开发运行。运用程序 根据不同的操作系统会执行不同的系统调用函数,所以我们在安装的时候需要注意支持的os。另外就是机器的硬件与内核交互,但是硬件可能会升级换代啊,这个时候我们就需要让内核支持新硬件的交互操作,通常不同的操作系统内核会提供不同的接口,让硬件厂商提供对应的驱动,有了驱动安装之后我们才能真正的完成硬件调用。(驱动根据的是操作系统提供的接口厂商完成开发)。 以上就是操作系统,编译程序,内核,系统调用,硬件,应用程序,驱动之间的大体关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值