学习linux前先来了解一下计算机概念,如果了解相关内容,可跳过本章节。
1.1 电脑
电脑是一种计算机,计算机实际是:接受用户输入的命令与数据,经由中央处理器的算术和逻辑单元运算后,产生或存储成有用的信息。
1.1.1 电脑硬件的五大单元
CPU(中央处理器):具有特定功能的芯片,里面含有指令集。
CPU内分为两个主要的单元:算术逻辑单元和控制单元。
内存:CPU读取的数据是从内存中来的,处理完毕的数据也是先写到内存,再到输出单元。内存相当于输入输出单元与CPU之间的中介。
电脑的五大单元:输入单元,输出单元,算术逻辑单元,控制单元,内存
1.1.2 CPU的架构
因为软件都需要经过CPU内部指令集完成。而指令集分为两种:精简指令集(RISC)和复杂指令集(CISC)
(1)精简指令集(RISC):指令精简,指令数据多而复杂。ARM架构。
(2)复杂指令集(CISC):每条指令长而复杂,但每个指令都很丰富。X86架构。
1.1.3 其他单元的设备
(1)系统单元:包括CPU与内存及主板相关组件
(2)存储单元:内存与辅助内存
(3)输入输出单元
1.1.4 运作流程
(1)CPU:脑袋。判断与控制各部分活动
(2)内存:脑袋中存放正在被思考的数据的区域。用来提供给脑袋判断用的信息
(3)硬盘:脑袋中存放回忆的记忆区域
(4)主板:神经系统。脑袋发布命令,通过神经系统传导给手脚
(5)各项接口设备:手脚皮肤眼睛等
(6)显卡:脑袋中的影像。
(7)主机电源:心脏
所以,最重要的是CPU和内存,CPU的数据源都来自于内存。不管是记忆,还是经验,都需要先放到内存中,CPU才能处理。
1.1.5 电脑的分类
超级计算机,大型计算机,迷你计算机,工作站,微电脑(我们平常用的电脑)
1.1.6 电脑上面常用的计算单位
(1)容量单位
1字节 = 8比特位
进制 = 1024
(2)速度单位
Hz:次数/秒
2.个人电脑架构与相关设备组件
我们常用的电脑通常指的是X86的个人电脑架构。X86的CPU主要提供商是Intel
早期芯片组通常分为两个网桥来控制各组件的通信,分别是北桥和南桥。
北桥:负责连接速度较快的CPU,内存,显卡等组件
南桥:负责连接速度较慢的设备接口,包括硬盘,USB,网卡等
现在主流架构中,大多将北桥的内存控制器整合到了CPU当中。
2.1 执行脑袋运算与判断的CPU
CPU频率:CPU每秒可以进行的工作次数。
3.6GHz = CPU 1秒可以进行3.6*10^9次工作
(注:因为CPU的指令集,架构不同,可使用的二级缓存及运算机制不同,不能光看频率比较CPU性能。只有同款CPU才有意义)
(1)CPU的工作频率:外频和倍频
外频:CPU与外部组件进行数据传输时的速度
倍频:CPU内部用来加速工作性能的一个倍数
外频 * 倍频 = CPU频率速度
因为现在北桥已经被整合到CPU中,CPU的频率设计就不需要考虑要同步的外频,只需要考虑整体的频率即可
(2)32位和64位的CPU与总线“位宽”
因为CPU里的数据都来自内存,因此内存能提供的数据量越大,系统性能越快。
如何知道内存能提供的数据量呢?通过CPU中的内存控制芯片与内存键的传输速度“前端总线速度”来说明。
内存工作频率来自于CPU由内存控制器决定,也就是每秒工作多少次由内存控制器决定。那每次工作量是多少呢?这由位宽决定,分为32位和64位,也就是我们常说的电脑是32位还是64位,就是说,CPU每次处理内存中的数据,32位一处理或者64位一处理。显然,64位速度更快。
(3)CPU等级
i3,i5,i7
(4)超线程(HT)
因为现在CPU大多是多个内核,每个内核会将寄存器分成两组,形成逻辑上的分离,这样,可以同时处理多个任务。这就是超线程。
2.2 内存
已知CPU所有数据来自于内存。个人电脑的内存主要组件为动态随机存取内存(DRAM),它只有在通电时才能记录使用,断电后数据消失,这叫RAM的挥发性内存。
内存要保证自己空间比要处理的数据大,因此一些用不到的会被释放,因此内存越大一般表示电脑速度越快,因为释放频率低。
(1)多通道设计
内存的数据位宽一般是64位,为了加大位宽,芯片厂商将两个内存集合在一起,形成双通道,位宽达到128位。
(2)DRAM和SRAM
因为内存往CPU传送数据的时候要通过内存控制器,这很影响速度,所以CPU内部有一个二级缓存Cache。
Cache整合到CPU内部,且频率与CPU相同,这需要通过静态随机读取内存(SRAM)帮忙
(3)只读存储器(ROM)
主板上组件参数可以调整,内置网卡或显卡的各项参数也会被记录到一个叫CMOS的芯片中。
BIOS:是一个写死到主板存储芯片上的一个程序,该存储芯片在没有电时也能记录数据,这就是只读存储器。
(就是我们开机按DEL进的那个页面)
2.3 显卡
显卡又叫VGA,对于图形影像的显示扮演着关键角色。图形影像的分辨率和颜色深度都会占用内存,因此显卡上面有集成内存也叫显存,显存容量影响分辨率和颜色深度。
显卡上除了显存还有一个3D加速的芯片,叫GPU。显卡主要也是通过GPU的控制芯片来与CPU,内存等通信的。
2.4 硬盘与存储设备
存储设备一般有:硬盘,软盘,MO,CD,DVD,U盘等
(1)硬盘物理组成
硬盘由圆形碟片,机械手臂,磁头和主轴马达组成。
数据都是写在碟片上的,读写通过机械手臂上的磁头完成。实际运行中,主轴马达让碟片转动,然后机械手臂可伸展让磁头在碟片上面进行读写的操作。
(2)碟片上的数据
碟片是一个圆形,由一个个同心圆构成,每个同心圆就是一个磁道,每个磁道上由一块块被称为扇区最小物理单元组成。而磁盘有可能有多个碟片,因此所有碟片同一个磁道组合成一个柱面。
(3)传输接口
磁盘与主板连接接口主要有SATA,USB,SAS接口。
(4)固态硬盘
传统硬盘需要马达去转动磁盘,这造成磁盘读取延迟。后来厂商拿闪存去只做高容量的设备,但是外形还是跟传统磁盘一样,这就叫固态硬盘,大大提高速度。
2.5 扩展卡与接口
常见集成到主板的组件包括声卡,网卡,USB控制器,显卡,磁盘阵列卡等
2.6 主板
(1)设备I/O地址与IRQ中断请求
主板负责电脑组件的通信,它怎么知道哪个设备在哪里呢?通过I/O地址与IRO。
I/O地址相当于每个设备门牌号,IRO中断请求用于把设备的工作情况告诉CPU。
(2)CMOS和BIOS
CMOS:记录主板上重要参数,包括系统时间,CPU电压与频率,各项设备I/O地址与IRO等,因为这些都需要电,所以主板上有电池。
BIOS:写入到主板上的一个程序。在计算机启动时执行,加载CMOS中的参数,并尝试调用存储设备中的引导程序,进一步进入操作系统当中。
3 数据表示方式
众所周知,电脑是二进制,只认识0和1。那我们10进制,各种语言它是怎么识别的呢,这就需要转换,把我们人类的语言转换成计算机看得懂的语言。
现在常用的英文编码表是ASCII系统,这个编码表中,每个符号(英文,数字,符号)都会占用一个字节记录。每个汉字会用2个字节记录。
中文编码系统一开始是GBK,但是呢,GBK有问题,很多字会被编码成单引号双引号。
后来,我们国际组织统一制定了编码UTF-8,所以我们现在很多时候都用UTF-8。
4.软件程序运行
4.1 机器语言程序与编译型程序
电脑只认识0和1,CPU有一个指令集,我们需要编写CPU能看得懂的脚本它才能执行。但是这有问题,这需要了解机器语言,了解硬件相关的函数,程序不可移植,有专一性。程序员表示:打扰了。。。
我们写一些我们好理解的(比如java,python)程序,通过操作系统编译成CPU看得懂的。
4.2 操作系统
(1)操作系统内核
操作系统(OS)其实也是一组程序,这组程序的重点在于管理电脑的所有活动以及驱动系统中的所有硬件。它让CPU,内存,硬盘等从一个物件变的可以有秩序工作。硬件的所有操作都通过操作系统的内核实现。
内核主要是管理硬件以及提供相应功能,但是用户直接操作内核不小心做了什么误操作,那就完了。因此内核程序放置到内存当中受保护的区域,并且启动后就一直常驻在内存当中。
(2)系统调用
有了内核之后,程序员是不是就要从研究硬件函数到研究内核提供的函数了?还是麻烦。为了简化,操作系统提供了一套应用程序编程接口(API),程序员遵循这个API开发就可以了。
由上述我们知道,最底层是硬件,然后是内核,然后是系统调用,再然后就是高级编程语言(java,C,python)
(3)内核功能
因为电脑最重要是CPU和内存,内核又是负责整个电脑的资源分配和管理,因此他具有以下功能:
系统调用接口,进程管理,内存管理,文件系统管理,设备驱动
(4)操作系统与驱动程序
4.3 应用程序
咱程序员干的就是应用程序
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)