基础知识
目录
计算机
计算机其实是:接收用户输入指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息。因此,只要有输入设备(不管是键盘还是触摸式屏幕)及输出设备(屏幕或直接打印出来),让你可以输入数据使该机器产生信息的,那就是一台计算机。
计算机硬件的五大单元
- 输入单元
- 内存
- 中央处理器
- 算术逻辑单元, 负责程序运算与逻辑判断
- 控制单元, 主要协调各组件与各单元间的工作
- 输出单元
CPU的种类
CPU内部已经含有一些小指令集,软件都要经过CPU内部的微指令集来完成才行。
精简指令集(Reduced Instruction Set Computing, RISC)
这种CPU的设计中,微指令集较为精简,每个指令的执行时间都很短,完成的操作也很单纯,指令的执行性能较佳;但是若要做复杂的事情,就要由多个指令来完成。
常见的RISC微指令集CPU主要有Sun公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列与ARM系列等。
SPARC 架构的计算机常用于学术领域的大型工作站中,包括银行金融体系的主要服务器也都有这类的计算机架构;
至于 PowerPC架构的应用上,例如 Sony公司出产的 Play Station 3(PS3)就是使用 PowerPC 架构的 Cell 处理器;
那 ARM呢?你常使用的各品牌手机、PDA、导航系统、网络设备(交换机、路由器)等,几乎都是使用ARM架构的CPU。老实说,目前世界上使用范围最广的CPU可能就是ARM呢!
复杂指令集(Complex Instruction Set Computer, CISC)
在CISC的微指令集中,每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂,所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。
常见的CISC微指令集CPU主要有AMD、Intel、VIA等x86架构的CPU。
AMD、Intel、VIA 所开发出来的 x86 架构 CPU 被大量使用于个人计算机(Personal Computer)用途上面,因此,个人计算机常被称为x86架构的计算机。
那为何称为x86架构 [5]呢?这是因为最早的那个 Intel 发展出来的 CPU 代号称为 8086,后来依此架构又开发出 80286, 80386 等,因此这种架构的 CPU 就被称为 x86 架构了。
在2003年以前由Intel所开发的x86架构CPU由8位升级到16、32位,后来AMD依此架构修改新一代的CPU为64位,为了区别两者的不同,因此64位的个人计算机CPU又被统称为x86_64的架构!
接口设备
除了前面稍微提到的输入/输出设备以及 CPU 与内存之外, 还有其他接口设备。
其中最重要的接口设备是主板,因为主板负责将所有的设备连接在一起,让所有的设备能够进行协调与通信。
而主板上面最重要的组件就是主板芯片组,这个芯片组可以将所有的设备汇集在一起。
其他重要的接口设备还有
- 存储设备:包括硬盘、软盘、光盘、磁带等。
- 显示设备:显卡与显示的精度、色彩与分辨率都有关系。
- 网络设备
运作流程
- CPU=大脑:每个人会做事情都不一样(微指令集的区别),但主要都是通过大脑来进行判断与控制身体各部分的活动。
- 内存=大脑中的记录区块:在实际活动过程中,我们的大脑能够将外界的互动暂时记录起来,提供CPU来进行判断。
- 硬盘=大脑中的记忆区块:将重要的数据记录起来,以便未来再次使用这些重要的经验。
- 主板=神经系统:好像人类的神经一样,将所有重要的组件连接起来,包括手脚的活动都是大脑发布命令后,通过神经(主板)传输给手脚来进行活动。
- 各项接口设备=人体与外界通信的手、脚、皮肤、眼睛等:就好像手脚一般,是人体与外界互动的关键部位。
- 显卡=脑袋中的影像:将来自眼睛的刺激转成影响后在脑袋中呈现,所以显卡所产生的数据来源也是CPU控制的。
- 电源(Power)=心脏:所有的组件要能运作,得要有足够的电力供给才行。这电力供给就好像心脏一样,如果心脏不够强,那么全身也就无法动弹的!心脏不稳定呢?那你的身体当然可能断断续续地不稳定!
个人计算机架构与接口设备
CPU
- 多核:在一个CPU封装当中嵌入了两个以上的运算内核
- 脚位:不同的CPU型号大多具有不同的脚位(CPU上面的插脚),能够搭配的主板芯片组也不同
- 频率:CPU每秒钟可以进行的工作次数
不同的CPU之间不能单纯以频率来判断运算性能。这是因为每个CPU的微指令集不相同,架构也不一样,每次频率能够进行的工作指令数也不同,所以频率目前仅能用来比较同款CPU的速度。 - CPU的“外频”与“倍频”:外频指的是CPU与外部组件进行数据传输/运算时的速度,倍频则是CPU内部用来加速工作性能的一个倍数,两者相乘才是CPU 的频率。
- “超频”:将CPU的倍频或者是外频通过主板的设定功能更改成较高频率的一种方式。但因为CPU的倍频通常在出厂时已经被锁定而无法修改,因此较常被超频的为外频。
32位与64位
- 总线:CPU运算的数据都是由内存提供的,内存与CPU的通信速度靠的是外部频率,每次工作可以传送的数据量则由总线决定。
- 北桥总线(系统总线):内存传输的主要信道,速度较快;
- 南桥总线(输入输出(I/O)总线):主要用于“联系”硬盘、USB、网卡等接口设备。
- 总线频宽:FSB x 总线宽度,每秒钟可传送的最大数据量
- 前端总线速度(Front Side Bus, FSB):北桥所支持的频率
- 总线宽度:每次传送的位数,目前常见的总线宽度有32/64位(bit)
- 字组大小(word size)CPU每次能够处理的数据量称为字组大小, 字组大小依据CPU的设计而有32位与64位。
- 字组大小与总线宽度可以不相同
Linux文件系统
ext2/3
- data block
数据读取时会一次读取多个扇区(sector, 大小为512bytes, 即0.5 KB), 这些扇区就叫block
用来放置文件内容的地方, 格式化时可以选择大小。data block 的大小会影响文件系统支持的最大磁盘容量和最大单一文件容量。
某些程序对单一文件的大小也会有限制, 这与文件系统无关。 - inode table
inode table就是储存inode的区段
inode记录文件属性(包括位置), 但不包括文件名。inode的大小一般为128字节或256字节。其中的内容至少有:- 文件的访问模式(r、w、x)
- 文件所有者和所属组
- 文件的大小
- 文件的时间戳
- ctime: 最近一次文件创建或状态改变的时间
- atime: 最近一次的读取时间
- mtime: 最近修改的时间
- 定义文件特性的标志(flag), 如SetUID、SetGID、SBIT
- 该文件真正内容的指针(pointer)
- super block
第一个以后的block group不一定有super block
记录文件系统的相关信息, 其中的内容至少有:- block和inode的总量
- 未使用与已使用的block/inode数量
- block/inode的大小
- 时间戳
- 文件系统的挂载时间
- 最近一次写入数据的时间
- 最近一次检验磁盘(
fsck
)的时间 - ...
- validbit, 若文件系统被挂载, 值为0, 若未被挂载, 则为1
- File System Description(文件系统描述说明)
这个区段可以描述每个block group以及每个区段的开始与结束的block号码 - block bitmap(块对照表)
记录block的使用情况(是否为空) - inode bitmap(inode对照表)
记录inode的使用情况(是否已被使用)