本文主要是介绍《鸟哥的私房菜基础篇》第四版学习笔记——第0章 计算机概论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- http://linux.vbird.org/linux_basic/
- 一、计算机:辅助人脑的好工具
- 1.计算机硬件的五大单元
- 2.一切设计的起点: CPU 的架构
- 3.其它单元的设备
- 4.运作流程
- 5.计算机用途的分类
- 6.计算机上面常用的计算单位(容量、速度等)
- 二、个人计算机框架与相关设备组件
- 1.执行脑袋运算与判断的 CPU
- 2.内存
- 3.显示适配器
- 4.硬盘与存储设备
- 5.扩孔卡与界面
- 6.主板
- 7.电源供应器
- 8选购须知
- 三、数据表示方式
- 1.数字系统
- 2.文字编码系统
- 四、软件程序运作
- 1,机器程序与编译程序
- 2.操作系统
- 3.应用程序
- 五、重点回顾
鸟哥的linux私房菜的官网地址
http://linux.vbird.org/linux_basic/
一、计算机:辅助人脑的好工具
所谓的计算机就是一种计算器,而计算器其实是:『接受用户输入指令与数据,经由中央处理器的数学与逻辑单元运算处理后, 以产生或储存成有用的信息』。因此,只要有输入设备 (不管是键盘还是触摸屏) 及输出设备 (例如计算机屏幕或直接由打印机打印出来),让你可以输入数据使该机器产生信息的, 那就是一部计算器了。
1.计算机硬件的五大单元
(1)
说明:
(a)上面图标中的『系统单元』其实指的就是计算机机壳内的主要组件,而重点在于 CPU 与主存储器。
(b)特别要看的是实线部分的传输方向, 基本上数据都是流经过主存储器再转出去的! 至于数据会流进/流出内存则是 CPU 所发布的控制命令!
而 CPU 实际要处理的资料则完全来自于主存储器(内存)。
(c)CPU 为一个具有特定功能的芯片,里头含有微指令集。
CPU分为两个主要的单元,分别是: 算数逻辑单元与控制单元。 其中算数逻辑单元主要负责程序运算与逻辑判断,控制单元则主要在协调各周边组件与各单元间的工作。
2.一切设计的起点: CPU 的架构
(1)我们所使用的软件都要经过 CPU 内部的微指令集来达成才行。这就是目前世界上常见到的两种主要 CPU 架构, 分别是:精简指令集 (RISC) 与复杂指令集 (CISC) 系统
(2)精简指令集 (Reduced Instruction Set Computer, RISC): 特点是:
这种 CPU 的设计中,微指令集较为精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳; 但是若要做复杂的事情,就要由多个指令来完成。
常见的 RISC 微指令集 CPU 主要例如甲骨文 (Oracle) 公司的 SPARC 系列、 IBM 公司的 Power Architecture (包括 PowerPC) 系列、与arm公司 (ARM Holdings) 的 ARM CPU 系列等。
在应用方面, SPARC CPU 的计算机常用于学术领域的大型工作站中,包括银行金融体系的主服务器也都有这类的计算机架构; 至于 PowerPC 架构的应用上,例如新力(Sony)公司出产的 Play Station3(PS3)就是使用 PowerPC 架构的 Cell 处理器; 那安谋的 ARM 呢?你常使用的各厂牌手机、 PDA、导航系统、网络设备(交换器、路由器等)等,几乎都是使用 ARM 架构的 CPU 喔! 老实说, 目前世界上使用范围最广的 CPU 可能就是 ARM 这种架构的呢!
(3)复杂指令集(Complex Instruction Set Computer, CISC) 特点是:
ISC 在微指令集的每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂, 每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长, 但每条个别指令可以处理的工作较为丰富。常见的 CISC 微指令集 CPU 主要有 AMD、 Intel、 VIA 等的 x86 架构的 CPU。
由于 AMD、 Intel、 VIA 所开发出来的 x86 架构 CPU 被大量使用于个人计算机(Personal computer)用途上面, 因此,个人计算机常被称为 x86 架构的计算机!那为何称为 x86 架构(注 8)呢? 这是因为最早的那颗 Intel 发展出来的 CPU 代号称为 8086,后来依此架构又开发出 80286, 80386…, 因此这种架构的 CPU 就被称为 x86 架构了。
(4)所谓的位指的是 CPU 一次数据读取的最大量!
64 位 CPU 代表 CPU 一次可以读写 64bits这么多的数据, 32 位 CPU 则是 CPU 一次只能读取 32 位的意思。 因为 CPU 读取数据量有限制,因此能够从内存中读写的数据也就有所限制。所以,一般 32 位的 CPU 所能读写的最大数据量,大概就是 4GB 左右(2^32)。
3.其它单元的设备
(1)在主机机壳内的设备大多是透过主板 (mainboard) 连接在一块,主板上面有个连结沟通所有设备的芯片组,这个芯片组可以将所有单元的设备链接起来, 好让 CPU 可以对这些设备下达命令。
(2)其它单元主要有:
系统单元: 如图 0.1.2 所示,系统单元包括 CPU 与内存及主板相关组件。而主板上头其实还有很多的连接界面与相关的适配卡,包括鸟哥近期常使用的 PCI-E 10G 网络卡、 磁盘阵列卡、还有显示适配器等等。尤其是显示适配器,这东西对于玩 3D 游戏来说是非常重要的一环,他与显示的精致度、 色彩与分辨率都有关系。
记忆单元: 包括主存储器 (main memory, RAM) 与辅助内存,其中辅助内存其实就是大家常听到的『储存装置』啰!包括硬盘、软盘、光盘、磁带等等的。
输入、输出单元: 同时涵盖输入输出的设备最常见的大概就是触摸屏了。至于单纯的输入设备包括前面提到的键盘鼠标之外,目前的体感装置也是重要的输入设备喔! 至于输出设备方面,除了屏幕外,打印机、音效喇叭、 HDMI 电视、投影机、蓝芽耳机等等,都算喔!
4.运作流程
(1)
说明:
CPU=脑袋瓜子: 每个人会作的事情都不一样(微指令集的差异),但主要都是透过脑袋瓜子来进行判断与控制身体各部分的活动;
主存储器=脑袋中放置正在被思考的数据的区块: 在实际活动过程中,我们的脑袋瓜子需要有外界刺激的数据 (例如光线、环境、语言等) 来分析,那这些互动数据暂时存放的地方就是主存储器,主要是用来提供给脑袋瓜子判断用的信息。
硬盘=脑袋中放置回忆的记忆区块: 跟刚刚的主存储器不同,主存储器是提供脑袋目前要思考与处理的信息,但是有些生活琐事或其他没有要立刻处理的事情, 就当成回忆先放置到脑袋的记忆深处吧!那就是硬盘!
主要目的是将重要的数据记录起来,以便未来将这些重要的经验再次的使用;
主板=神经系统: 好像人类的神经一样,将所有重要的组件连接起来,包括手脚的活动都是脑袋瓜子发布命令后, 透过神经(主板)传导给手脚来进行活动啊!
各项接口设备=人体与外界沟通的手、脚、皮肤、眼睛等: 就好像手脚一般,是人体与外界互动的重要关键!
显示适配器=脑袋中的影像: 将来自眼睛的刺激转成影像后在脑袋中呈现,所以显示适配器所产生的数据源也是 CPU 控制的。
电源供应器 (Power)=心脏: 所有的组件要能运作得要有足够的电力供给才行!这电力供给就好像心脏一样,如果心脏不够力, 那么全身也就无法动弹的!心脏不稳定呢?那你的身体当然可能断断续续的~不稳定!
(2)整个人体最重要的地方就是脑袋瓜子,同样的,整部主机当中最重要的就是 CPU 与主存储器, 而 CPU 的数据源通通来自于主存储器, 如果要由过去的经验来判断事情时, 也要将经验(硬盘)挪到目前的记忆(主存储器)当中,再交由 CPU 来判断喔!
5.计算机用途的分类
6.计算机上面常用的计算单位(容量、速度等)
(1)容量单位
1 Byte = 8 bits
注意:假设你今天购买了 500GB 的硬盘一颗,但是格式化完毕后却只剩下 460GB 左右的容量,这是什么原因?(先换算成Byte)
(2)速度单位
(a)计算机的运算能力除了 CPU 微指令集设计的优劣之外,但主要还是由速度来决定的。
(b)CPU 的指令周期常使用 MHz 或者是 GHz 之类的单位,这个 Hz 其实就是秒分之一;
(c)在网络传输方面,由于网络使用的是 bit 为单位,因此网络常使用的单位为 Mbps 是 Mbits per second,亦即是每秒多少 Mbit。
eg: 20M/5M 光世代传输速度,转换成byte时,每秒 2.5Mbyte/ 每秒 625Kbyte 的下载/上传速度。(除以8即可,Mbit->Mbyte)
二、个人计算机框架与相关设备组件
(1)0.2.1
说明:
(a)主板是链接各组件的一个重要项目。
(b)早期的芯片组通常分为两个网桥来控制各组件的沟通, 分别是: (1)北桥:负责链接速度较快的 CPU、主存储器与显示适配器界面等组件; (2)南桥:负责连接速度较慢的装置接口, 包括硬盘、 USB、网络卡等等。
(c)不过由于北桥最重要的就是 CPU 与主存储器之间的桥接,因此目前的主流架构中, 大多将北桥内存控制器整合到 CPU封装当中了,这是因为早期芯片组分南北桥,北桥可以连接 CPU、主存储器与显示适配器。只是 CPU 要读写到主存储器的动作,还需要北桥的支持,也就是 CPU 与主存储器的交流, 会瓜分掉北桥的总可用带宽,真浪费!所以上图你只会看到 CPU 而没有看到以往的北桥芯片喔!
1.执行脑袋运算与判断的 CPU
(1)其一:前面谈到 CPU 内部含有微指令集,不同的微指令集会导致 CPU 工作效率的优劣。
其二:除了这点之外,CPU 效能的比较还有什么呢?那就是 CPU 的频率了!频率就是 CPU 每秒钟可以进行的工作次数。 所以频率越高表示这颗 CPU 单位时间内可以作更多的事情。举例来说,Intel 的 i7-4790 CPU 频率为 3.6GHz, 表示这颗 CPU 在一秒内可以进行 3.6x(10^9) 次工作。
注意:
不同的 CPU 之间不能单纯的以频率来判断运算效能喔!这是因为每颗 CPU 的微指令集不相同,架构也不见得一样,可使用的第二层快取及其计算器制可能也不同, 加上每次频率能够进行的工作指令数也不同!
所以,频率目前仅能用来比较同款 CPU 的速度!
(2)CPU 的工作频率:外频与倍频(注意频率计算的倍数)
早期的 CPU 设计中,
所谓的外频指的是 CPU 与外部组件进行数据传输时的速度,
倍频则是 CPU 内部用来加速工作效能的一个倍数, 两者相乘才是 CPU 的频率速度(=外频*倍数)。
例如 Intel Core 2E8400 的内频为 3.0GHz,而外频是 333MHz,因此倍频就是 9 倍啰!(3.0G=333Mx9, 其中 1G=1000M)
注意:超频的意思
所谓的超频指的是: 将 CPU 的倍频或者是外频透过主板的设定功能更改成较高频率的一种方式。但因为 CPU 的倍频(内频)通常在出厂时已经被锁定而无法修改, 因此较常被超频的为外频。
eg:举例来说,像上述 3.0GHz 的 CPU 如果想要超频, 可以将他的外频 333MHz 调整成为 400MHz,但如此一来整个主板的各个组件的运作频率可能都会被增加成原本的 1.333 倍(4/3), 虽然 CPU 可能可以到达 3.6GHz,但却因为频率并非正常速度,故可能会造成当机等问题。
新的 CPU 设计中,
为了解决所有的数据都被北桥卡死了,北桥又不可能比 CPU 更快的问题,已经将内存控制器整合到 CPU 内部,可以让 CPU 直接与主存储器、显示适配器等设备分别进行沟通,而不需要透过外部的链接芯片了。
注意:
**现在 Intel 的 CPU 会主动帮妳超频喔!**例如 i7-4790 这颗 CPU 的规格 中,基本频率为 3.6GHz,但是最高可自动超频到 4GHz 喔! 透过的是 Intel 的 turbo 技术。同时,如果你没有大量的运算需求,该 CPU 频率会降到 1.xGHz 而已,藉此达到节能省电的目的!所以,各位好朋友, 不需要自己手动超频了! Intel 已经自动帮妳进行超频了。
(3)32 位与 64 位的 CPU 与总线『宽度』
那如何知道主存储器能提供的数据量呢?
此时还是得要藉由 CPU 内的内存控制芯片与主存储器间的传输速度『前端总线速度(Front Side Bus, FSB) 来说明。
eg:
CPU 内建的内存控制芯片对主存储器的工作频率最高可达到1600MHz。这只是工作频率(每秒几次)。
一般来说,每次频率能够传输的数据量,大多为 64 位,这个 64 位就是所谓的 『宽度』 了!
因此, CPU 可以从内存中取得的最快带宽就是 1600MHz * 64bit = 1600MHz * 8 bytes = 12.8Gbyte/s。(这里的M->G还是用的1000,估计为了方便,1024更好)
注意:
得利于北桥整合到 CPU 内部的设计, CPU 得以『个别』跟各个组件进行沟通!
例如主存储器使用系统总线带宽来与 CPU 沟通。
而显示适配器则透过 PCI-E 的序列通道设计来与 CPU 沟通喔!
(4)CPU 等级
基本上,在 Intel Pentium MMX 与 AMD K6年代的 CPU 称为 i586 等级;
而 Intel Celeron 与 AMD Athlon(K7)年代之后的 32 位 CPU 就称为 i686等级;
至于目前的 64 位 CPU 则统称为 x86_64 等级。
不过,在 x86_64的硬件下倒是可以安装 386 的软件喔! 也就是说,这些东西具有向下兼容的能力啦!
(5)超线程 (Hyper-Threading, HT)
在每一个 CPU内部将重要的缓存器 (register) 分成两群, 而让程序分别使用这两群缓存器。也就是说,可以有两个程序『同时竞争 CPU 的运算单元』,而非透过操作系统的多任务切换! 这一过程就会让 CPU 好像『同时有两个核心』的模样!因此,虽然大部分 i7 等级的 CPU 其实只有四个实体核心,但透过HT 的机制, 则操作系统可以抓到八个核心!并且让每个核心逻辑上分离,就可以同时运作八个程序了。
2.内存
(1)前面提到 CPU 所使用的数据都是来自于主存储器(main memory),不论是软件程序还是数据,都必须要读入主存储器后 CPU 才能利用。
(2)个人计算机的主存储器主要组件为动态随机存取内存(Dynamic Random Access Memory, DRAM), 随机存取内存只有在通电时才能记录与使用,断电后数据就消失
了。因此我们也称这种 RAM 为挥发性内存。
在市场上,DRAM分为SDRAM 与 DDR SDRAM 两种。
这两种内存的差别除了在于脚位与工作电压上的不同之外,
DDR 是所谓的双倍数据传送速度(DoubleData Rate), 他可以在一次工作周期中进行两次数据的传送。
下表列出 SDRAM 与 DDRSDRAM 的型号与频率及带宽之间的关系
(3)主存储器除了频率/带宽与型号需要考虑之外,内存的容量也是很重要的喔!
所以,通常越大的内存代表越快速的系统,这是因为系统不用常常释放一些内存内部的数据。
以服务器来说,主存储器的容量有时比 CPU 的速度还要来的重要的!
(4)多通道设计
**双通道的设计理念:**由于所有的数据都必须要存放在主存储器,所以主存储器的数据宽度当然是越大越好。 但传统的总线宽度一般大约仅达 64 位,为了要加大这个宽度,因此芯片组厂商就将两个主存储器汇整在一起, 如果一支内存可达 64 位,两支内存就可以达到 128 位了,这就是双通道的设计理念。
两只内存的要求:容量大小要一致之外,型号也最好相同啦!
(5)DRAM 与 SRAM
CPU 内的第二层高速缓存作用: CPU数据的读取就不需要跑到主存储器重新读取了。因为第二层快取(L2 cache)整合到 CPU 内部,因此这个 L2 内存的速度必须要 CPU 频率相同。 使用DRAM 是无法达到这个频率速度的,此时就需要静态随机存取内存(Static Random Access Memory,SRAM) 的帮忙了。
SRAM 在设计上使用的晶体管数量较多,价格较高,且不易做成大容量,不过由于其速度快, 因此整合到 CPU 内成为高速缓存以加快数据的存取是个不错的方式喔!
第二层快取与主存储器及 CPU 的关系如下图所示:
(5)只读存储器(ROM)
主板上面如果有内建的网络卡或者是显示适配器时,该功能是否要启动与该功能的各
项参数, 是被记录到主板上头的一个称为 CMOS 的芯片上,这个芯片需要借着额外的电源来发挥记录功能, 这也是为什么你的主板上面会有一颗电池的缘故。
那 CMOS 内的数据如何读取与更新呢?
那就是BIOS:BIOS(Basic Input Output System)是一套程序,这套程序是写死到主板上面的一个内存芯片中, 这个内存芯片在没有通电时也能够将数据记录下来,那就是只读存储器(Read Only Memory, ROM)。 ROM 是一种非挥发性的内存。
BIOS 原本使用的是无法改写的 ROM ,因此根本无法修正 BIOS 程序代码!为此,现在的 BIOS 通常是写入类似闪存 (flash) 或 EEPROM 。
CMOS 主要的功能为 :记录主板上面的重要参数, 包括系统时间、 CPU 电压与频率、各项设备的 I/O 地址与 IRQ 等,由于这些数据的记录要花费电力,因此主板上面才有电池。
BIOS 为写入到主板上某一块 flash 或EEPROM 的程序,他可以在开机的时候执行,以加载 CMOS 当中的参数, 并尝试呼叫储存装置中的开机程序,进一步进入操作系统当中。
(6)韧体(firmware)
韧体就是绑在硬件上面的控制软件。例如 BIOS 就是一个韧体, BIOS虽然对于我们日常操作计算机系统没有什么太大的关系,但是他却控制着开机时各项硬件参数的取得!
所以我们会知道很多的硬件上头都会有 ROM 来写入韧体这个软件。
3.显示适配器
(1)显示适配器又称为 VGA(Video Graphics Array),他对于图形影像的显示扮演相当关键的角色。 一般对于图形影像的显示重点在于分辨率与颜色深度,因为每个图像显示的颜色会占用掉内存,
因此显示适配器上面会有一个内存的容量, 这个显示适配器内存容量将会影响到你的屏幕分辨率与颜色深度的喔!
(2)GPU的由来
除了显示适配器内存之外,现在由于三度空间游戏(3D game)与一些 3D 动画的流行,因此显示适配器的『运算能力』 越来越重要。所以后来显示适配器厂商直接在显示适
配器上面嵌入一个 3D 加速的芯片,这就是所谓的 GPU 称谓的由来。
(3)显示适配器主要也是透过 CPU 的控制芯片来与 CPU、主存储器等沟通。如前面提到的,对于图形影像(尤其是 3D 游戏)来说, 显示适配器也是需要高速运算的一个组件,所以数据的传输也是越快越好!
因此显示适配器的规格由早期的 PCI 导向 AGP, 近期 AGP 又被 PCI-Express (PCIe)规格所取代了。
这些PCI等等插槽最大的差异就是在数据传输的带宽了!
说明:管线越多(通常设计到 x16 管线)则总带宽越高。
(4)显示适配器是透过什么格式与计算机屏幕 (或电视) 连接的呢?
(a) D-Sub (VGA 端子):为较早之前的连接接口,主要为 15 针的连接,为模拟讯号的传输,当初设计是针对传统映像管屏幕而来。 主要的规格有标准的 640x350px @70Hz、 1280x1024px @85Hz 及 2048x1536px@85Hz 等。
(b) DVI:共有四种以上的接头,不过台湾市面上比较常见的为仅提供数字讯号的 DVI-D,以及整合数字与模拟讯号的 DVI-I 两种。 DVI 常见于液晶屏幕的链接, 标准规格主要有: 1920x1200px @60Hz、2560x1600px @60Hz 等。
(c)HDMI:相对于 D-sub 与 DVI 仅能传送影像数据, HDMI 可以同时传送影像与声音,因此被广泛的使用于电视屏幕中!计算机屏幕目前也经常都有支持 HDMI 格式!
(d) Display port:与 HDMI 相似的,可以同时传输声音与影像。不过这种界面目前在台湾还是比较少屏幕的支持!
4.硬盘与存储设备
(1)硬盘的物理组成
在硬盘盒里面其实是由许许多多的圆形磁盘盘、机械手臂、 磁盘读取头与主轴马达所组成的,整个内部如同下图所示:
过程:实际的数据都是写在具有磁性物质的磁盘盘上头,而读写主要是透过在机械手臂上的读取头(head) 来达成。 实际运作时, 主轴马达让磁盘盘转动,然后机械手臂可伸展让读取头在磁盘盘上头进行读写的动作。
另外,由于单一磁盘盘的容量有限,因此有的硬盘内部会有两个以上的磁盘盘喔!
(2)磁盘盘上的数据:磁盘盘上头的数据又是如何写入的呢?
过程:由于磁盘盘是圆的,并且透过机器手臂去读写数据,磁盘盘要转动才能够让机器手臂读写。因此,通常数据写入当然就是以圆圈转圈的方式读写啰!
所以,当初设计就是在类似磁盘盘同心圆上面切出一个一个的小区块,这些小区块整合成一个圆形,让机器手臂上的读写头去存取。
这个小区块就是磁盘的最小物理储存单位,称之为扇区 (sector),那同一个同心圆的扇区组合成的圆就是所谓的磁道(track)。
由于磁盘里面可能会有多个磁盘盘,因此在所有磁盘盘上面的同一个磁道可以组合成所谓
的磁柱 (cylinder)。
当磁盘盘转一圈时,外圈的扇区数量比较多,因此如果数据写入在外圈,转一圈能够读写的数据量当然比内圈还要多! 因此通常数据的读写会由外圈开始往内写的喔!这是默认值啊!
(3)传输界面
为了要提升磁盘的传输速度,磁盘与主板的连接界面也经过多次的改版,因此有许多不同的界面喔!
因此我们底下将仅介绍 SATA, USB 与 SAS 界面。
(a)SATA界面
SATA 的插槽示意图如下所示:
由于 SATA 一条扁平电缆仅接一颗硬盘,所以妳不需要调整跳针。不过一张主板上面 SATA 插槽的数量并不是固定的, 且每个插槽都有编号,在连接 SATA 硬盘与主板的时候,还是需要留意一下。
当前的SATA界面类型如下:
说明:
因为 SATA 传输界面传输时,透过的数据算法的关系,当传输 10 位编码时,仅有 8 位为数据,其余 2 位为检验之用。因此带宽的计算上面, 使用的换算 (bit 转 byte) 为 1:10 而不是 1byte=8bits喔!
不过目前传统的硬盘由于其物理组成的限制,一般极限速度大约在 150~200Mbyte/s 而已啦!
(b)SAS界面
串行式 SCSI (Serial Attached SCSI, SAS) ,这种接口的速度比 SATA 来的
快,而且连接的 SAS 硬盘的磁盘盘转速与传输的速度也都比 SATA 硬盘好! 只是…好贵喔!而且一般个人计算机的主板上面通常没有内建 SAS 连接接口,得要透过外接卡才能够支持。
因此一般个人计算机主机还是以 SATA 接口为主要的磁盘连接接口啰
eg:例如我们经常会听到的磁盘阵列卡的连接插槽,就是利用这种 SAS 接口开发出来的支持的 SFF-8087 装置等等的。
(c)USB界面
如果你的磁盘是外接式的界面,那么很可能跟主板连结的就是 USB 这种界面了!这也是目前 (2015)最常见到的外接式磁盘界面了。
这几代版本的带宽与速度制表如下:
说明:跟 SATA 界面一样,不是理论速度到达该数值,实际上就可以跑到这么高!USB 3.0 虽然速度很快,但如果妳去市面上面买 USB 的传统磁盘或快闪碟, 其实他的读写速度还是差不多在 100Mbytes/s而已啦!不过这样就超级快了!
(c)固态硬盘 (Solid State Disk, SSD)
后来就有厂商拿闪存去制作成高容量的设备,这些设备的连接界面也是透过SATA 或 SAS,而且外型还做的跟传统磁盘一样!
固态硬盘最大的好处是,它没有马达不需要转动,而是透过内存直接读写的特性,因此除了没数据延迟且快速之外,还很省电!
(4)如果你想要增加一颗硬盘在你的主机里头时,除了需要考虑你的主板可接受的插槽接口(SATA/SAS)之外,还有什么要注意的呢?
(a)HDD 或 SSD
毕竟 HDD 与 SSD 的价格与容量真的差很多!不过,速度也差很多就是了!因此,目前大家的使用方式
大多是这样的,使用 SSD 作为系统碟, 然后数据储存大多放置在 HDD 上面!这样系统运作快速 (SSD),
而数据储存量也大 (HDD)。
(b) 容量
毕竟目前数据量越来越大,所以购买磁盘通常首先要考虑的就是容量的问题!目前(2015)主流市场 HDD 容量已经到达 2TB 以上, 甚至有的厂商已经生产高达 8TB 的产品呢!硬盘可能可以算是一种消耗品,要注意重要资料还是得常常备份出来喔! 至于 SSD 方面,目前的容量大概还是在 128~256GB 之间吧!
(c)缓冲存储器
硬盘上头含有一个缓冲存储器,这个内存主要可以将硬盘内常使用的数据快取起来,以加速系统的读取效能。 通常这个缓冲存储器越大越好,因为缓冲存储器的速度要比数据从硬盘盘中被找出来要快的多了! 目前主流的产品可达 64MB 左右的内存大小喔。
(d)转速
因为硬盘主要是利用主轴马达转动磁盘盘来存取,因此转速的快慢会影响到效能。 主流的桌面计算机硬盘为每分钟 7200 转,笔记本电脑则是 5400 转。有的厂商也有推出高达 10000 转的硬盘, 若有高效能的资料存取需求,可以考虑购买高转速硬盘。
(e) 运转须知
由于硬盘内部机械手臂上的磁头与硬盘盘的接触是很细微的空间, 如果有抖动或者是脏污在磁头与硬盘盘之间就会造成数据的损毁或者是实体硬盘整个损毁~
因此,正确的使用计算机的方式,应该是在计算机通电之后,就绝对不要移动主机,并免抖动到硬盘, 而导致整个硬盘数据发生问题啊!另外,也不要随便将插头拔掉就以为是顺利关机!因为机械手臂必须要归回原位, 所以使用操作系统的正常关机方式,才能够有比较好的硬盘保养啊!因为他会让硬盘的机械手臂归回原位啊!
5.扩孔卡与界面
(1)包括 PCI/AGP/PCI-X/PCIe 等等,但是由于 PCIe速度快到太好用了,因此几乎所有的卡都以 PCIe 来设计了!
(2)PCIe 有不同的信道数,基本上常见的就是 x1, x4, x8, x16 等,个人计算机主板常
见是 x16 的,一般中阶服务器则大多有多个 x8 的界面, x16 反而比较少见。
(3)多通道卡 (例如 x8 的卡) 安装在少通道插槽 (例如 x4 的插槽) 的可用性。
再回头看看图 0.2.1 的示意图,你可以发现 CPU 最多最多仅能支持 16 个 PCIe 3.0 的信道数,因此在图标当中就明白的告诉你, 你可以设计(1)一个 x16 (2)或者是两个 x8 , (3)或者是两个 x4 加上一个 x8 的方式来增加扩充卡!
但是,因为要让所有的扩充卡都可以安插在主板上面,所以在比较中高阶的主板上面,他们都会做出 x16 的插槽,但是该插槽内其实只有 x8 或 x4 的通道有用! 其他的都是空的没有金手指 (电路的意思)。
那如果我的 x16 的卡安装在 x16 的插槽,但是这个插槽仅有 x4 的电路设计,那我这张卡可以运作吗? 当然可以!这就是 PCIe 的好处了!它可以让你这张卡仅使用 x4 的电路来传送数据,而不会无法使用!只是…你的这张卡的极限效能,就会只剩下 4/16 = 1/4 啰
因为一般服务器惯用的扩充卡,大多数都使用 PCIe x8 的界面 (因为也没有什么装置可以将 PCIe 3.0的 x8 速度用完啊!), 为了增加扩充卡的数量,因此服务器级的主板才会大多使用到 x8 的插槽说!反正,要发挥扩充卡的能力,就得要搭配相对应的插槽才行啦!
6.主板
(1)发挥扩充卡效能须考虑的插槽位置
如同图 0.2.1 所示,其实系统上面可能会有多个 x8 的插槽,那么到底你的卡插在哪个插槽上面效能最好? 我们以该图来说,如果你是安插在左上方跟 CPU 直接联机的那几个插槽,那效能最佳!
如果你是安插在左侧由上往下数的第五个 PCIe 2.0 x8 的插槽呢? 那个插槽是与南桥连接,所以你的扩充卡数据需要先进入南桥跟大家抢带宽,之后要传向 CPU 时,还得要透过 CPU 与南桥的沟通管道, 那条管道称为 DMI 2.0。
根据 Intel 方面的资料来看, DMI 2.0 的传输率是 4GT/s,换算成文件传输量时,大约仅有 2GByte/s的速度, 要知道, PCIe 2.0 x8 的理论速度已经达到 4GByte/s 了,但是与 CPU 的通道竟然仅有 2GB,效能的瓶颈就这样发生在 CPU 与南桥的沟通上面! 因此,卡安装在哪个插槽上面,对效能而言也是影响很大的!所以插卡时,请详细阅读您主板上面的逻辑图标啊 (类似本章的 Intel 芯片示意图)!
尤其 CPU 与南桥沟通的带宽方面,特别重要喔。
注意:
因为鸟哥的 Linux 服务器,目前很多都需要执行一些虚拟化技术等会大量读写数据的服务,所以需要额外的磁盘阵列卡来提供数据的存放!
同时得要提供 10G 网络让内部的多部服务器互相透过网络链接。过去没有这方面的经验时,扩充卡都随意乱插,反正能动就好!但实际分析过效能之后, 哇!现在都不敢随便乱插了!效能差太多!每次在选购新的系统时,也都会优先去查看芯片逻辑图~确认效能瓶颈不会卡住在主板上,这才下手去购买!
(2)设备I/O地址与IRQ中断信道
I/O 地址有点类似每个装置的门牌号码,每个装置都有他自己的地址;
**IRQ 中断(Interrupt)**这个咚咚,IRQ 就可以想成是各个门牌连接到邮件中心(CPU)
的专门路径啰! 各装置可以透过 IRQ 中断信道来告知 CPU 该装置的工作情况,以方便 CPU 进行工作分配的任务。
(3)连接接口设备的接口
7.电源供应器
电源供应器相当于你的心脏, 心脏差的话,活动力就会不足了!尽量不要使用太差的电源供应器喔!
8选购须知
(1)如果你的公司需要一部服务器的话,建议不要自行组装,买品牌计算机的服务器比较好!
eg:在效能方面并非仅考虑 CPU 的能力而已,速度的快慢与『整体系统的最慢的那个设备有关!』,如果你是使用最快速的 Intel i7 系列产品,使用最快的 DDR3-1600 内存, 但是配上一个慢慢的过时显示适配器,那么整体的 3D 速度效能将会卡在那个显示适配器上面喔!所以,在购买整套系统时,请特别留意需要全部的接口都考虑进去喔!尤其是当您想要升级时,要特别注意这个问题, 并非所有的旧的设备都适合继续使用的。
(2)系统不稳定的可能原因
(a)系统超频:这个行为很不好!不要这么做!
(b) 电源供应器不稳: 这也是个很严重的问题,当您测试完所有的组件都没有啥大问题时,记得测试一下电源供应器的稳定度!
(c)内存无法负荷:现在的内存质量差很多,差一点的内存,可能会造成您的主机在忙碌的工作时, 产生不稳定或当机的现象喔!
(d)系统过热:『热』是造成电子零件运作不良的主因之一,如果您的主机在夏天容易当机, 冬天却还好,那么考虑一下加几个风扇吧!有助于机壳内的散热,系统会比较稳定喔!
三、数据表示方式
1.数字系统
(1)二进制->十进制:乘
(2)十进制->二进制:除
2.文字编码系统
(1)事实上文本文件也是被记录为 0 与 1 而已。
当我们要写入文件的文字数据时,该文字数据会由编码对照表将该文字转成数字后,再存入文件当中。
同样的,当我们要将文件内容的数据读出时,也会经过编码对照表将该数字转成对应的文字后,再显示到屏幕上。
(2)常用的英文编码表为 ASCII 系统,这个编码系统中, 每个符号(英文、数字或符号等)都会占用 1bytes的记录, 因此总共会有 2^8=256 种变化。
中文字当中的编码系统早期最常用的就是 big5 这个编码表了。 每个中文字会占用 2bytes,理论上最多可以有 2^16=65536,亦即最多可达 6 万多个中文字。目前 big5 仅定义了一万三千多个中文字,很多中文利用 big5 是无法成功显示的~所以才会有造字程序说。
为了解决读出数据的对照表时,出现的乱码问题,由国际组织 ISO/IEC 跳出来制订了所谓的 Unicode 编码系统, 我们常常称呼的UTF8 或万国码的编码就是这个咚咚。
四、软件程序运作
1,机器程序与编译程序
(1)一般来说,目前的计算机系统将软件分为两大类,一个是系统软件,一个是应用程序。
(2)程序->机器码(也就是,高级程序语言->机器语言)
说明:从上面的图示我们可以看到高阶程序语言的程序代码是很容易察看的!
在设计程序时,得要考虑整体的硬件系统来设计程序。
2.操作系统
(1)来源:
在早期,想要让计算机执行程序就得要参考一堆硬件功能函数, 并且学习机器语言才能够撰写程序。 同时每次写程序时都必须要重新改写,因为硬件与软件功能不见得都一致之故。那如果我能够将所有的硬件都驱动, 并且提供一个发展软件的参考接口来给工程师开发软件的话,那发展软件不就变的非常的简单了?那就是操作系统啦!
(2)操作系统核心(Kernel)
操作系统(Operating System, OS)其实也是一组程序, 这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件。
操作系统的功能就是让 CPU 可以开始判断逻辑与运算数值、 让主存储器可以开始加载/读出数据与程序代码、让硬盘可以开始被存取、让网络卡可以开始传输数据、 让所有周边可以开始运转等等。
**操作系统核心作用:**因为核心主要在管控硬件与提供相关的能力。这些管理的动作是非常的重要的,如果使用者能够直接使用到核心的话,万一用户不小心将核心程序停止或破坏, 将会导致整个系统的崩溃!
因此核心程序所放置到内存当中的区块是受保护的! 并且开机后就一直常驻在内存当中。
(3)系统呼叫(System Call)
(a)从原本的参考硬件函数变成参考核心功能->,因为麻烦,为了解决这个问题,操作系统通常会提供一整组的开发接口给工程师来开发软件!
(b)整个计算机系统的相关软/硬件绘制成图
说明:
(a)为了保护核心,并且让程序设计师比较容易开发软件,因此操作系统除了核心程序之外,通常还会提供一整组开发接口, 那就是系统呼叫层。
(b)只要硬件不同(如 x86 架构与 RISC 架构的 CPU),核心就得要进行修改才行。
所以你可以发现,软件与核心有比较大的关系,与硬件关系则不大!硬件也与核心有比较大的关系! 至于与用户有关的,那就是应用程序啦!
(c)所以说, 操作系统其实就是核心与其提供的接口工具。
(d)操作系统的核心层直接参考硬件规格写成, 所以同一个操作系统程序不能够在不一样的硬件架构下运作。 举例来说,个人计算机版的 Windows 8.1 不能直接在 ARM 架构 (手机与平板硬件) 的计算机下运作。
(e)操作系统只是在管理整个硬件资源,包括 CPU、内存、输入输出装置及文件系统文件。 如果没有其他的应用程序辅助,操作系统只能让计算机主机准备妥当(Ready)而已!并无法运作其他功能。 所以你现在知道为何 Windows 上面要达成网页影像的运作还需要类似 PhotoImpact 或 Photoshop 之类的软件安装了吧?
(f)应用程序的开发都是参考操作系统提供的开发接口, 所以该应用程序只能在该操作系统上面运作而已,不可以在其他操作系统上面运作的。 现在您知道为何去购买在线游戏的光盘时,光盘上面会明明白白的写着该软件适合用于哪一种操作系统上了吧? 也该知道某些游戏为何不能够在 Linux 上面安装了吧?
(4)核心功能
既然核心主要是在负责整个计算机系统相关的资源分配与管理,那我们知道其实整部计算机系统最重要的就是 CPU 与主存储器。其它功能如下:
(a)系统呼叫接口(System call interface)
刚刚谈过了,这是为了方便程序开发者可以轻易的透过与核心的沟通,将硬件的资源进一步的利用, 于是需要有这个简易的接口来方便程序开发者。
(b)程序管理(Process control)
总有听过所谓的『多任务环境』吧?一部计算机可能同时间有很多的工作跑到 CPU 等待运算处理, 核心这个时候必须要能够控制这些工作,让 CPU 的资源作有效的分配才行!另外, 良好的 CPU 排程机制(就是CPU 先运作那个工作的排列顺序)将会有效的加快整体系统效能呢!
(c)内存管理(Memory management)
控制整个系统的内存管理,这个内存控制是非常重要的,因为系统所有的程序代码与数据都必须要先存放在内存当中。 通常核心会提供虚拟内存的功能,当内存不足时可以提供内存置换(swap)的功能哩。
(d) 文件系统管理(Filesystem management)
文件系统的管理,例如数据的输入输出(I/O)等等的工作啦!还有不同文件格式的支持啦等等, 如果你的核心不认识某个文件系统,那么您将无法使用该文件格式的文件啰!例如: Windows 98 就不认识 NTFS 文件格式的硬盘;
(e) 装置的驱动(Device drivers)
就如同上面提到的,硬件的管理是核心的主要工作之一,当然啰,装置的驱动程序就是核心需要做的事情啦! 好在目前都有所谓的『可加载模块』功能,可以将驱动程序编辑成模块,就不需要重新的编译核心啦!
(5)操作系统与驱动程序
操作系统通常会提供一个开发接口给硬件开发商, 让他们可以根据这个接口设计可以驱动他们硬件的『驱动程序』,如下图
说明:
(a)操作系统必须要能够驱动硬件,如此应用程序才能够使用该硬件功能;
(b)一般来说, 操作系统会提供开发接口,让开发商制作他们的驱动程序;
(c)要使用新硬件功能,必须要安装厂商提供的驱动程序才行;
(d)驱动程序是由厂商提供的,与操作系统开发者无关。
3.应用程序
(1)应用程序是与操作系统有关系的,看看该软件是否能够支持你的操作系统啊!
五、重点回顾
(1)计算器的定义为:『接受用户输入指令与数据,经由中央处理器的数学与逻辑单元运算处理后,以产生或储存成有用的信息』;
(2) 计算机的五大单元包括:输入单元、输出单元、控制单元、算数逻辑单元、记忆单元五大部分。其中 CPU占有控制、算术逻辑单元,记忆单元又包含主存储器与辅助内存;
(3)数据会流进/流出内存是 CPU 所发布的控制命令,而 CPU 实际要处理的数据则完全来自于主存储器;
(4)CPU 依设计理念主要分为:精简指令集(RISC)与复杂指令集(CISC)系统;
(5) 关于 CPU 的频率部分:外频指的是 CPU 与外部组件进行数据传输时的速度,倍频则是 CPU 内部用来加速工作效能的一个倍数, 两者相乘才是 CPU 的频率速度;
(6)新的 CPU 设计中,已经将北桥的内存控制芯片整合到 CPU 内,而 CPU 与主存储器、显示适配器沟通的总线通常称为系统总线。 南桥就是所谓的输入输出(I/O)总线,主要在联系硬盘、 USB、网络卡等接口设备;
(7)CPU 每次能够处理的数据量称为字组大小(word size),字组大小依据 CPU 的设计而有 32 位与 64 位。
我们现在所称的计算机是 32 或 64 位主要是依据这个 CPU 解析的字组大小而来的!
(8) 个人计算机的主存储器主要组件为动态随机存取内存(Dynamic Random Access Memory, DRAM), 至于 CPU内部的第二层快取则使用静态随机存取内存(Static Random Access Memory, SRAM);
(9)BIOS(Basic Input Output System)是一套程序,这套程序是写死到主板上面的一个内存芯片中, 这个内存芯片在没有通电时也能够将数据记录下来,那就是只读存储器(Read Only Memory, ROM);
(10) 目前主流的外接卡界面大多为 PCIe 界面,且最新为 PCIe 3.0,单信道速度高达 1GBytes/s
(11) 常见的显示适配器连接到屏幕的界面有 HDMI/DVI/D-Sub/Display port 等等。 HDMI 可同时传送影像与声音
(12)传统硬盘的组成为:圆形磁盘盘、机械手臂、 磁盘读取头与主轴马达所组成的,其中磁盘盘的组成为扇区、磁道与磁柱;
(13) 磁盘连接到主板的界面大多为 SATA 或 SAS,目前桌机主流为 SATA 3.0,理论极速可达 600Mbytes/s。
(14) 常见的文字编码为 ASCII,繁体中文编码主要有 Big5 及 UTF8 两种,目前主流为 UTF8
(15) 操作系统(Operating System, OS)其实也是一组程序, 这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件。
(16) 计算机主要以二进制作为单位,常用的磁盘容量单位为 bytes,其单位换算为 1 Byte = 8bits。
(17) 最阳春的操作系统仅在驱动与管理硬件,而要使用硬件时,就得需要透过应用软件或者是壳程序(shell)的功能, 来呼叫操作系统操纵硬件工作。目前称为操作系统的,除了上述功能外,通常已经包含了日常工作所需要的应用软件在内了。
这篇关于《鸟哥的私房菜基础篇》第四版学习笔记——第0章 计算机概论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!