鸟哥的Linux私房菜 基础学习篇(第0章)

1)     目前世界上常见到的两种主要CPU种类:分别是精简指令集(RISC)与复杂指令集(CISC)系统。底下我们就来谈谈这两种不同CPU种类的差异啰

l        精简指令集:这种CPU的设计中,微指令集较为精简,每个指令的执行时间都很短,完成的动作也很单纯,指令的执行效能较佳;但是若要做复杂的事情,就要由多个指令来完成。常见的RISC微指令集CPU主要例如升阳(Sun)公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列、与ARM系列等。

l        复杂指令集:与RISC不同的,CISC在微指令集的每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。常见的CISC微指令集CPU主要有AMDIntelVIA等的x86架构的CPU

2)      一般来说,档案容量使用的是二进制的方式,所以 1 GBytes 的档案大小实际上为:1024x1024x1024 Bytes 这么大!速度单位则常使用十进制,例如 1GHz 就是 1000x1000x1000 Hz 的意思。而在网络传输方面,由于网络使用的是 bit 为单位,因此网络常使用的单位为 Mbps Mbits per second,亦即是每秒多少 Mbit。举例来说,大家常听到的 8M/1M ADSL 传输速度,如果转成档案容量的 byte 时,其实理论最大传输值为:每秒 1Mbyte/ 每秒125Kbyte的上传/下载容量喔!(这也就是为什么我们申请了10M的带宽,实际下载文件时显示1.25M/s的原因,带宽除以8=实际所得)。

一般硬盘制造商会使用十进制的单位,所以500GByte代表为500*1000*1000*1000Byte之意。转成档案的容量单位时使用二进制(1024为底),所以就成为466GB左右的容量了。硬盘厂商并非要骗人,只是因为硬盘的最小物理量为512Bytes,最小的组成单位为扇区(sector),通常硬盘容量的计算采用『多少个sector』,所以才会使用十进制来处理的。

3)      整个主机板上面最重要的就是芯片组了!而芯片组通常又分为两个桥接器来控制各组件的沟通,分别是:(1)北桥:负责连结速度较快的CPU、主存储器与显示卡等组件;(2)南桥:负责连接速度较慢的周边接口,包括硬盘、USB、网络卡等等。AMD的芯片组架构与Intel不同的地方在于主存储器是直接与CPU沟通而不透过北桥!从前面的说明我们可以知道CPU的资料主要都是来自于主存储器提供,因此AMD为了加速这两者的沟通,所以将内存控制组件整合到CPU当中,理论上这样可以加速CPU与主存储器的传输速度!这是两种CPU在架构上面主要的差异点。

4)      CMOS主要的功能为记录主机板上面的重要参数, 包括系统时间、CPU电压与频率、各项设备的I/O地址与IRQ等,由于这些数据的记录要花费电力,因此主机板上面才有电池。BIOS为写入到主机板上某一块 flash EEPROM 的程序,他可以在开机的时候执行,以加载CMOS当中的参数,并尝试呼叫储存装置中的开机程序,进一步进入操作系统当中。BIOS程序也可以修改CMOS中的资料, 每种主机板呼叫BIOS设定程序的按键都不同,一般桌上型计算机常见的是使用[del]按键进入BIOS设定画面。BIOS(Basic Input Output System)是一套程序,这套程序是写死到主机板上面的一个内存芯片中,这个内存芯片在没有通电时也能够将数据记录下来,那就是只读存储器(Read Only Memory, ROM) ROM是一种非挥发性的内存。另外,BIOS对于个人计算机来说是非常重要的,因为他是系统在开机的时候首先会去读取的一个小程序喔!

5)      一些3D的运算早期是交给CPU去运作的,但是CPU并非完全针对这些3D来进行设计的,而且CPU平时已经非常忙碌了呢! 所以后来显示卡厂商直接在显示卡上面嵌入一个3D加速的芯片,这就是所谓的GPU称谓的由来。显示卡主要也是透过北桥芯片与CPU、内存条等沟通。如前面提到的,对于图形影像(尤其是3D游戏)来说, 显示卡也是需要高速运算的一个组件,所以数据的传输也是越快越好!因此显示卡的规格由早期的PCI导向AGP,近期AGP又被PCI-Express规格所取代了。

例:假设你的桌面使用1024x768分辨率,且使用全彩(每个像素占用3bytes的容量),请问你的显示卡至少需要多少内存才能使用这样的彩度?

答:因为1024x768分辨率中会有786432个像素,每个像素占用3bytes,所以总共需要2.25MBytes以上才行!但如果考虑屏幕的更新率(每秒钟屏幕的更新次数),显示卡的内存还是越大越好!

6)      由于硬盘内部机械手臂上的磁头与硬盘盘的接触是很细微的空间,如果有抖动或者是脏污在磁头与硬盘盘之间就会造成数据的损毁或者是实体硬盘整个损毁~因此,正确的使用计算机的方式,应该是在计算机通电之后,就绝对不要移动主机,并免抖动到硬盘,而导致整个硬盘数据发生问题啊!另外,也不要随便将插头拔掉就以为是顺利关机!因为机械手臂必须要归回原位,所以使用操作系统的正常关机方式,才能够有比较好的硬盘保养啊!因为他会让硬盘的机械手臂归回原位啊!

7)      操作系统(Operating System, OS)其实也是一组程序, 这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件。我们刚刚谈到计算机没有软件只是一堆废铁,那么操作系统的功能就是让CPU可以开始判断逻辑与运算数值、 让内存条可以开始加载/读出数据与程序代码、让硬盘可以开始被存取、让网络卡可以开始传输数据、让所有周边可以开始运转等等。总之,硬件的所有动作都必须要透过这个操作系统来达成就是了。上述的功能就是操作系统的核心(Kernel)了!你的计算机能不能做到某些事情,都与核心有关!只有核心有提供的功能,你的计算机系统才能帮你完成!举例来说,你的核心并不支持TCP/IP的网络协议,那么无论你购买了什么样的网卡,这个核心都无法提供网络能力的!但是单有核心我们使用者也不知道能作啥事的~因为核心主要在管控硬件与提供相关的能力(例如网络功能),这些管理的动作是非常的重要的,如果使用者能够直接使用到核心的话,万一使用者不小心将核心程序停止或破坏,将会导致整个系统的崩溃!因此核心程序所放置到内存当中的区块是受保护的!并且开机后就一直常驻在内存当中。

系统呼叫(System Call) :既然我的硬件都是由核心管理,那么如果我想要开发软件的话,自然就得要去参考这个核心的相关功能!唔!如此一来不是从原本的参考硬件函数变成参考核心功能,还是很麻烦啊!有没有更简单的方法啊!为了解决这个问题,操作系统通常会提供一整组的开发接口给工程师来开发软件!工程师只要遵守该开发接口那就很容易开发软件了!举例来说,我们学习C程序语言只要参考C程序语言的函式即可,不需要再去考虑其它核心的相关功能,因为核心的系统呼叫接口会主动的将C程序语言的相关语法转成核心可以了解的任务函数,那核心自然就能够顺利运作该程序了!计算机系统主要由硬件构成,然后核心程序主要在管理硬件,提供合理的计算机系统资源分配(包括CPU资源、内存使用资源等等),因此只要硬件不同(x86架构与RISC架构的CPU),核心就得要进行修改才行。 而由于核心只会进行计算机系统的资源分配,所以在上头还需要有应用程序的提供,使用者才能够操作系统的。为了保护核心,并且让程序设计师比较容易开发软件,因此操作系统除了核心程序之外,通常还会提供一整组开发接口,那就是系统呼叫层。软件开发工程师只要遵循公认的系统呼叫参数来开发软件,该软件就能够在该核心上头运作。所以你可以发现,软件与核心有比较大的关系,与硬件关系则不大!硬件也与核心有比较大的关系!至于与使用者有关的,那就是应用程序啦!

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值