admin 管理员组

文章数量: 887021

Linux的学习并非一朝一夕可以学会,关键在于它的基础一定要打好。最近我看了鸟哥的Linux私房菜。不得不说这个确实对于我们这种刚入门的菜鸟来说,无疑是最好的学习资料。我目前看完了第一章节(计算机概论),来分享一下我的所得 ——

什么是计算机?计算机是什么?

答:所谓的计算机其实是:接受用户指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息就是计算机。简单概括就是有输入设备、输出设备使机器产出信息的就是一台计算机。

计算机的五大单元有哪些?流程顺序是什么样子?

答:五大单元有:输入单元、输出单元、CPU内部的控制单元、算数逻辑单元与内存。

五大单元的流程如图所示:


CPU的种类有哪些?计算机的运作流程是怎么样的?

答:1.CPU有两种类型,分别为精简指令集(RISC)与复杂指令集(CISC)系统。

*精简指令集——这种CPU的设计中,微指令集较为精简,每个指令的执行时间都很短,完成的操作也很单纯,指令的执行性能较佳。做复杂的指令,需要由多个指令来完成。常见的RISC主要有Sun公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列与ARM系列等。目前世界上使用范围最广的CPU可能就是ARM。

*复杂指令集——与RISC不同的,在CISC的微指令集中,每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度不同。因为指令执行较为复杂,所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。常见的CISC微指令集CPU主要有AMD、lntel、VIA等X86架构的CPU。x86架构的CPU被大量使用与个人计算机。

2.假设计算机是一个人体:

*CPU=大脑。内存=大脑中的记录区块。硬盘=大脑中的记忆区块。主板=神经系统。各项接口设备=人体与外界通信的手、脚、皮肤、眼睛等.显卡=脑袋中的影像。电源=心脏。具体如下图所示:


也就是说,整个人体最重要的地方就是大脑,同样,整台主机当中最重要的就是CPU与内存,而CPU的数据通通来自于内存,如果要由过去的经验来判断事情时,也要将经验(硬盘)挪到目前的记忆(内存)当中,再交由CPU来判断。

计算机上面常用的的计算单位有哪些?(大小、速度等)

答:1、大小单位——计算机理论上通常只认识0与1而已,0/1的单位我们称为bit。但bit实在太小了,并且在存储数据时每份简单的数据都会使用到8个bit的大小来记录,因此定义出Byte这个单位。它们之间的关系为:1Byte=8bit。

不过同样的,Byte还是太小了,在较大的容量情况下,使用Byte相当不容易判断数据的大小。比如1000000B看不出有几个零。所以后来就有了一些常见的简化单位表示法。例如K代表1024,M代表1024K等。这些单位在不同的进位制下有不同的数值表示。一些常见的单位与进位制对应表。如下图所示:

進位制KiloMegaGigaTeraPetaExaZetta
二進位10241024K1024M1024G1024T1024P1024E
十進位10001000K1000M1000G1000T1000P 1000E

2、速度单位——cpu的运算速度常使用MHz或者是GHz之类的单位,这个Hz其实就是秒分之一。在网络传输方面,由于网络使用的是bit为单位。因此网络常使用的单位为Mbit/s,即每秒多少Mbit。举例来说,大家常听到的8M/1M ADSL传输速度,如果转成文件容量的Byte时,其实理论最大传输值为:1MB/s/125KB/s的上传/下载速度。

个人计算机架构与接口设备有哪些?

1、一般消费者说的计算机通常指的就是x86的个人计算机架构。事实上,Linux最早在发展的时候,就是依据个人计算机的架构来发展的。因为两大主流x86开发商(lntel,AMD)的架构并不兼容,设计理念也有所区别,所以两大主流的CPU所需要的主板芯片组设计也就不太相同。

就如同之前说过的,整个主板上面最重要的就是芯片组了!而芯片组通常又分为两个桥接器来控制各组件的通信,分别是:(1)北桥负责连接速度较快的CPU、内存与显卡等组件;(2)南桥负责连接速度较慢的周边接口,包括硬盘、USB、网卡等。

下面是lntel的芯片架构图:


AMD与lntel不同的地方在于,内存是直接与CPU通信而不是通过北桥。CPU的数据都是来源于内存,因此AMD为了加速这两者的通信,将内存控制组件集成到CPU当中,理论上这样可以加速CPU与内存的传输速度。这是两者凑在架构上面主要的区别。目前我们主要以x86的CPU主要生产商lntel的主板架构来说明,下图是华硕的主板机:



主要的组件为CPU、内存、磁盘设备(IDE/SATA)\总线芯片组(南桥、北桥)、显卡接口(PCI-Express)与其他适配卡(PCI)。

CPU之间不同得是什么?用什么来进行比较?

答:CPU之间不同得就是频率不一样。频率就是CPU每秒可以进行的工作次数,所以频率越高表示CPU单位时间内可以做更多的事情。如:lntel的Core 2 Duo型号E8400的CPU频率为3.0GHz,表示这个CPU在一秒内可以进行3.0*109次方的工作。CPU之间的比较因为每个CPU的微指令不同,架构也不一样,每次频率能够进行的工作指令数也不同,所以频率只能用来比较同款CPU的速度!

什么是CPU的外频和倍频?超频又是什么?

答:所谓的外频指的是CPU与外部组件进行数据传输/运算时的速度,倍频则是CPU内部用来加速工作性能的一个倍数,两者相乘才是CPU的频率。超频就是指:将CPU的倍频或者是外频通过主板的设定功能更改成较高频率的一种方式。这里特别注意,因为CPU的倍频通常在出厂时已经被锁定而无法修改,因此较常被超频的就是外频。有时因为频率并非正常速度,可能会造成死机等问题。

什么是32位于64位。

答:北桥的总线称为系统总线,因为是内存传输的主要通道,所以速度较快;南桥就是所谓的输入与输出(l/O)总线,主要用于联系硬盘、usb、网卡等接口设备。

北桥所支持的频率我们称为前端总线速度(Front Side Bus,FSB),而每次传送的位数则是总线宽度。所谓的总线频宽就是“FSB*总线宽度”既是每秒钟可传送的最大数据量。

与总线宽度相似,CPU每次能够处理的数据量称为字组大小,字组大小依据CPU的设计而有32位与64位。我们现在所称的计算机是32位或64位主要依据CPU解析的字组大小而来的!

内存是什么?CPU与内存有什么关系?

答:个人计算机的内存主要组件为动态随机访问内存(DRAM).随机访问内存只有在通电的情况下才可以被使用与记录,断电后就消失了,因此我们也称这种RAM为挥发性内存。对服务器而言,内存的容量有时比CPU的速度还要重要。

理论上,CPU与内存的外频应该要相同才好。不过因为技术方面的提升,这两者的频率速度不会相同,但外频应该是一致的最佳!

DRAN与SRAM——在计算机内,肯定不止一个内存存在。CPU的数据都是内存提供的,但内存的数据有都是得经过北桥才能到CPU内,如果我们把一些很常见的程序或者数据放入内存内部,那么CPU的读取速度不就不需要通过北桥,性能也就提升了。因为第二层缓存集成到CPU内部,所以这个内存的速度必须要与CPU的频率相同,使用DRAM则是无法达到这个要求。此时就需要静态随机访问内存(SRAM)。SRAM在设计上使用的晶体管数量较多,价格较高。不容易做成大容量,但是由于速度快,因此集成到CPU内部成为高速缓存以加快数据的访问是个不错的方式!

还要一个就是只读存储器(ROM)——主板上面的组件是非常多的,而每个组件的参数又具有可调整性。如,CPU与内存的频率是可调整的;主板上面如果有内置的网卡或者显卡时,该功能是否要启动与该功能的各项参数被记录到主板上面的一个称为CMOS的芯片上面,这个芯片需要额外的电源来发挥记录功能。

那么CMOS内的数据如何读取与更新呢?记得计算机刚开机的时候可以按下(DEL)按键来进入一个名为BIOS的界面吧?BIOS是一套程序,这套程序是写死到主板上面的一个内存芯片中,这个内存芯片在没有通电的时候也能够将数据记录下来,那就是只读存储器ROM。ROM是一种非挥发性的内存。另外BIOS对于个人计算机来说非常重要,它是系统开机的时候首先会去读取的一个小程序!BIOS是一个韧体,与我们日常操作计算机没什么大的关系,但是它却控制着开机时各项硬件参数的取得。很多的硬件上面都会有ROM来写入固件。BIOS原本使用的是无法改写的ROM,因此根本无法修改BIOS程序代码。为此,BIOS通常是写入内存或EEPROM中。

硬盘是什么?存储设备又是什么?

答:计算机总是需要记录与读取数据,这些数据不可能每次都经过用户打字来输入。所以就需要存储设备。计算机系统上面的存储设备有:硬盘、软盘、MO、CD、DVD、磁带机、U盘等。其中最常见的就是硬盘了!

硬盘的物理组成——硬盘依据桌面型与笔记本又分为3.5英寸及2.5英寸的大小。硬盘其实是由许多都的盘片、机械手臂、磁头与主轴马达所组成的,如下图所示:


实际的数据都是写在具有磁性物质的盘片上面,而读写主要是通过在机械手臂上的读取头来完成。实际运作时,主轴马达让盘片转动,然后机械手臂可伸展让读取头在盘片上面进行读写的操作。另外由于单一盘片的容量有限,因此有的硬盘内部可能有两个以上的盘片。

既然数据都是写在盘片上面的,那么盘片上面的数据又是如何写入的呢?其实盘片上面的数据有点像下图所示:


整个盘片上面好像有多个同心圆绘制出来的拼图,而由圆心以放射状的方式分割出磁盘的最小存储单位,那就是扇区,在物理组成分面,每个扇区的大小为512bytes,这个值是不会改变的。而扇区组成一个圆就成为磁道,如果是在多硬盘上面,在所有盘片上面的同一个磁道可以组成一个柱面,柱面也是一般我们分割硬盘时的最小单位了!

在计算整个硬盘的存储量时,简单的计算公式就是:header数量X每个header负责的柱面数量X每个柱面所含有的扇区数量X扇区的容量,单位换算为:headerXcylinder/headerXsecter/cylinderX512bytes/secter,简单的写法如下:Head X Cylinder X Sector X 512bytes。不过要注意的是,一般硬盘制造商在显示硬盘的容量时,大多是以十进制来编号,因此市售的500GB硬盘,理论上仅会有466GB的容量。算法为:500G*1000M*1000K*1000/1024/1024K/1024M=466GB。

传输的界面有哪些呢?

答:首先为了提升磁盘的速度,磁盘与主机板的连接界面也经过多次改版。因此有许多不同的界面!传统的界面包括有STAT,SAS,IDE与SCSI等待。若考虑外接式磁盘,那就还包括USB,eSATA等待界面。不过目前IDE已经被SATA取代,而SCSI则被SAS取代。因此我们主要介绍SATA,USB,SAS界面而已。

如下图所示:


右下方所示为SATA硬盘的连接介面的插槽。这种插槽所使用的排线比较窄小,而且每个装置需要使用掉一条SATA线。因为SATA线比较窄小的原因,所以对于安装与机壳内的通风都比较好。因此IDE被SATA取代。由于SATA一条排线连接一个硬盘,所以不需要调整跳针。不过每张主机板上面的SATA插槽的数量并不是固定的,且每个插槽都有编号,在连接SATA硬盘与主机板的时候,还是要留意一下。注意SATA传输界面时,当输入10位元编码时,仅有8位元为资料,其他2位元为检验之用。因此频宽的计算上面使用的换算为1:10,不是1byte=8bit。

SAS介面——这种介面的传输速度比SATA来的快,而且连接的SAS硬盘的磁盘转速与传输的速度也都比SATA硬盘好。缺点就是太贵了。而且一般个人电脑上面没有SAS连接介面,得要通过外接卡才可以。所以一般个人电脑还是使用SATA作为主要的磁盘连接介面。

USB介面——如果你的磁盘是外接式的界面,那么很有可能就是很主机板连接USB的界面。只是目前最常见的一种外接式磁盘界面。

为什么会发展固态硬盘!什么是固态硬盘?

答:传统硬盘有个很致命的弱点,就是需要驱动马达去转动磁盘。这会造成很严重的磁盘读取的延迟!因此后来就有厂家拿快闪记忆体去制作成高容量的设备,这些设备的连接界面也是通过SATA或者SAS。而且外形还做的跟传统磁盘一样!所以,虽然这种类型的已经不能称为是磁盘,(因为没有读写头与磁盘啊,都是记忆体!)。但是为了方便大家称呼,还是称为磁盘,只是跟传统磁盘不同,就称为固态硬盘。固态硬盘最大的好处就是,他没有马达不需要转动,而且通过记忆体直接读写的特性,因此除了没资料延迟且快速外,还很省电!

如果增加一个硬盘在主机里时,除了插槽界面,还要注意哪些?

答:1-HDD或SSD:毕竟两者之间价格与容量确实差了好多,相对而言速度也不一样。。因此现在大家大多数使用的方式是使用SSD作为系统盘,然后存储资料大多数都是放在HDD上面!这样系统运作起来快速(SSD),而资料储存量也大(HDD).

2-容量:现在资料的储存越来越大,所以现在购买磁盘首先要考虑的就是容量的问题!现在市场上HDD的容量已经达到2TB以上,甚至有的厂商生产高达8TB的产品。硬盘可能可以算是一种消耗品,所以重要的资料还是需要经常备份。至于SSD方面,目前的容量大概是在128~256GB之间!

3-缓冲记忆体:硬盘上头含有一种缓冲记忆体,这个记忆体主要可以将硬盘内常用的资料快速读取出来,以加速系统的读取效能,通常这种记忆体越大越好,因为缓冲记忆体的速度要比资料从硬盘中被找出来要快的多了!目前主流产品可达64MB左右的记忆体大小!

4-转速:因为硬盘主要利用主轴马达转动磁盘来存取,因此转速的快慢会影响到效能,主流的桌上型电脑硬盘每分钟7200转,笔记型电脑则是5400转,有的厂商也有推出10000转的硬盘,若有高效能的资料存取需求,可以考虑购买高转速的硬盘!

5-运转须知:由于硬盘内部机械手臂上的磁头与硬盘片的接触是很细微的空间,如果有抖动或者是脏污在磁头与硬盘片之间就会造成资料的损毁或者实体硬盘整个损毁。因此正确的使用电脑的方式,应该是在电脑通电之后,就绝对不要移动主机,避免抖动到硬盘,而导致整个硬盘资料发生问题。另外,也不要以为把插头拔掉就是顺利关机,因为机械手臂一定要归回原位,所以使用作业系统放入正确开关机方式,才能够有比较好的硬盘保养,因为他会让硬盘的机械手臂归回原位。

扩充卡与界面又是什么?

伺服器可能因为某些特殊的需求,因此需要使用主板机之外的其他介面卡,所以主板机上面一般会预留多个扩充介面的插槽,这些插槽依照历史沿革,包括PCI/AGP/PCI-X/PCLe等等,但是由于PCIe速度快到太好用了,因此所有的卡都是以PCIe来设计的。但是有些比较老旧的卡还在继续使用,因此一般主机板大多数还是会保留一两个PCI插槽,其他的则是以PCIe来设计

由于各元件的价格直落,现在主机板上面已经整合了相当多的设备元件了,常见整合到主机板的包括音效卡,网络卡,USB控制卡,显示卡,磁盘阵列卡等等,你可以在主机板上面发现很多方形的晶片,那通常是一些个别的设备晶片。

 不过因为一些特殊的需求,有时你还会需要增加额外的扩充卡,举例来说,我们需要一部个人电脑连接多个网域时(Linux伺服器用途),恐怕就得要有多个网络卡,当你想要买网络卡时,大卖场上面有好多。而且速度一样都是giga网卡(Gbit/s)。但是价格相差很多,观察规格,主要有PCIe x1以及PCI界面的。

 使用后我们才会发现PCI界面的理论传输率最高只到133Mbyte/s而已,而PCIe2.0 x1就高达500Mbyte/s的速度。购买设备时,还需要查清楚连接界面才行。

 PCIe有不同的通道数,基本上常见的就是x1x4x8x16等,个人电脑常见的主机板是x16的,一般中级伺服器则大多有多个x8的界面,x16反而比较少见,这些界面在主机板上面的设计,主要是以插槽的长度来分辨的,例如华硕主板机的示意图上,左侧有2PCI界面,其他的则是3x16的插槽,以及2x1的插槽,看长度就知道了。

1-多通道卡 (例如 x8 的卡) 安裝在少通道插槽 (例如 x4 的插槽) 的可用性:

我们观察有的发现CPU最多最多仅能支持16PCIe3.0的通道数,所以你可以设计一个x16或者两个x8,或者是两个x4加上一个x8的方式来增加扩充卡。这是可以直接连接到CPU的通道。那为什么我们发现有别的主机可以有3X16的插槽呢?原因是前两个属于CPU支援,后面两个可能就是南桥提供的PCIe2.0的界面了。那明明仅能支持一个x16的界面,怎么可能涉及3x16呢?

因为要让所有的扩充卡都可以安插在主机板上面,所以比较中高级的主机板上面,他们都会做出x16的插槽,但是该插槽内其实只有x8x4的通道有用。其他的都是空的没有金手指(电路的意思)。那我的x16的卡安插在x16的插槽,但是这个插槽仅有x4的电路设计,那我这张卡可以运作吗?当然可以,这就是PCIe的好处,它可以让你这张卡仅使用x4的电路来传送资料。而不会无法使用。只是你的这张卡的极限效能就只会剩下4/16=1/4

 因为一般伺服器惯用的扩充卡,大多数都使用PCIe x8的界面(因为也没有什么装置可以将PCIe3.0x8速度用完),为了增加扩充卡的数量,因此伺服器的主机板才会大多使用到x8的插槽。反正,要发挥扩充卡的能力,就得搭配相对应的插槽才行。

什么是主板机?

1- 发挥扩充卡效能需考虑的插槽位置:系统上面一般会有多个插槽,你的卡插在哪个上面至关重要。如果你是安插在左上方跟CPU直接连接的那几个槽,效能最佳。如果你是安插在跟南桥连接的那个插槽,那扩充卡资料需要先进入南桥跟大家抢频宽,之后再转向CPU时,得透过CPU与南桥的那个通道,那条通道成为DMI2.0.

2- 设备I/O位址与IRQ中断通道:主机板是负责各个电脑元件之间的通道,但是电脑元件实在太多了,有输出/输入/不同的储存装置等等,主机板晶片组怎么知道如何负责沟通呢?这个时候就需要用到所谓的I/O位址与IRQ啦!

I/O位址有点类似每个装置的门牌号码,每个装置都有他自己的位址,一般来说,不能有两个装置使同一个I/O位址,否则系统就不会晓得该如何运作这两个装置了,而除了I/O位址之外,还有个IRQ中断这个东西。

如果I/O位址想成是各装置的门牌号码的话,那么IRQ就可以想成是各个门牌连接到邮件中心(CPU)的专门路径。各装置可以透过IRQ中断通道来告知CPU该装置的工作情况,以方便CPU进行工作分配的任务,老式的主机板晶片组IRQ只有15个,如果你的周边界面太多时可能会不够用,这个时候你可以选择将你周边一些没有用到的界面给关掉,以空出一些IRQ来给真正需要使用的介面,当然也有所谓的sharing IRQ的技术就是了。

3- CMOSBIOSCMOS主要的功能为记录主机板上面的重要参数,包括系统时间,CPU电压与频率,各项设备的I/O位址与IRQ等,由于这些资料的记录要花费电力,因此主机板上面才会有电池。BIOS为写入到主机板上某一块flashEEPROM的程式,他可以在开机的时候执行,以载入CMOS当中的参数,并尝试呼叫储存装置中的开机程式,进一步进入作业系统当中,BIOS程式也可以修改CMOS中的资料,每种主机板呼叫BIOS程式的按键都不同,一般桌上型电脑常见的是使用{del}按键进入BIOS的设定画面。

4- 连接周边设备的介面:主机板与各项输出/输入设备的连结主要都是在主机板机的后方。主要有:

1- PS/2介面:这原本是常见的键盘与鼠标的介面,不过目前渐渐被USB介面取代,甚至较新的主机板可能就不再提供PS/2界面;

2- USB介面:通常只剩下USB2.0USB3.0,为了方便区分,USB3.0为蓝色的插槽颜色。

3- 声音输出·输入与麦克风:这个是一个圆形的插孔,而必须你的主机板上面有內建的音效晶片时,才会有这三个东西。

4- RJ-45网络头:如果有內建网络晶片的话,那么就会有这种接头出现,这种接头有点类似电话接头,不过内部有八芯线哦,接上网络线后在这个接头上会有灯号亮起才对!

5- HDMI :如果有內建显示晶片的话,可能就会提供这个荧幕连接界面了,这种介面可以同时传输声音与影像,目前也是电视机荧幕的主流连接介面

我们以华硕主板机连接界面来看的话,主要有这些:


什么是电源供应器?它的内容又有哪些?

电源供应器的差价非常大!贵一点的300W可以到4000NT,便宜一点的300W只要500NT不到!为什么会差这么多呢?因为Power的用料不一样,电源供应器的稳定性就会差很多。像前面说过的,电源供应器就相当于你的心脏,心脏差的话,活动力就会不足!所以稳定性差的电源供应器说不定就是造成电脑不稳定的元凶呢。所以尽量不要去买稳定性差的电源供应器!

2-能源转换率:电源供应器本省也会吃掉一部分电力,如果你的主机系统需要300W的电力时,那你最好要挑选400W以上的电源供应器。电源供应器一般出厂前会有一些测试数据,最好挑选转换率高的,所谓高转换率是指{输出的功率/输入的功率},意思是说假如你的主机电量为250W,但是电源供应器其实已经使用掉320W的电力了,则转换率为250/320=0.78的转换率。这个数值越高表示被电源供应器吃掉的电力就越少,最符合能源效应了!

那么我们一般在选购主机的时候都需要注意些什么呢?

答:在购买主机的时候应该进行一个整体的考量,很难依照某一项标准来选购。老实说,如果你的公司需要一部伺服器的话,建议不要自行安装,买品牌电脑的伺服器比较好!这是因为自行组装的电脑虽然便宜,但是每项设备之间的适应性是否完美还需要进一步观察。

另外,在效能方面并非仅考量CPU的能力而已,速度的快慢与整体系统最慢的那个设备有很大的关系。举例,如果你是使用最快速的lntel i7系列的产品,使用最快的DDR3-1600记忆体,但是配上一个慢慢的过时显示卡,那么整体的3D速度效能将会卡在那个显示卡上面哦!所以在购买整套系统的时候,需要注意把全部的界面都要考虑进去!尤其是当你想要升级的时候,要特别注意这个问题,并非所有的旧的设备都适合使用!

系统不稳定的原因有哪些呢?

答:1-系统超频:这个行为很不好,不建议这样做。

2-电源供应器不稳定:这个也是一个很严重的问题,当你测试完所有的元件都没有什么大问题的时候,记得测试一下电源供应器的稳定度。

3-记忆体无法负荷:现在的记忆体品质差很多,差一点的记忆体,可能会在你的主机忙碌工作的时候,产生不稳定或当机的现象。

4-系统过热:{热}是造成电子元件不良的原因之一,如果你的电脑在夏天容易当机,冬天的时候却还好,那么可以考虑价格风扇。有助于机壳内的散热,系统比较稳定!这个问题也是很常见的系统当机的元凶之一。

资料的表示方式有哪些呢?

答:事实上我们的电脑只认识0与1,记录的资料也是只能记录0与1而已,所以电脑常用的资料是二进位的,但是我们常用的数值运算时十进位的,文字方面则有非常多的语言,一般常用的语言就有英文,中文(又分正体与简体中文)。那么电脑如何记录与显示这些文字呢?就得要透过一系列的额转换才可以。下面我们就来说一说数值与文字的编码系统;

1-数字系统:早期的电脑使用的是利用通电与否的特性的真空管,如果通电就是1,没有通电就是0.后来沿用至今,我们称这种只有0/1的环境为二进位制,英文称为binary。所谓的十进位就是逢十进一位,因此在个位数归为零而十位数为1.所以所谓的二进位就是逢二就进一位的意思。

那么二进位怎么用的?我们先以十进位来解释好了,如果以十进位来说,3456的意义为:

3456=3*10³+4*10³+5*10³+6*10³

特别注意{任何数值的零次方为1}所以10º结果就是1,同样的,将这个原理带入二进位的环境中,我们来解释一下1101010的数值转为十进位的话,结果如下:

1101010=1x26 + 1x25 + 0x24 + 1x23 + 0x22 + 1x21 + 0x20
= 64 + 32 + 0x16 + 8 + 0x4 + 2 + 0x1 = 106

这样你了解二进位的意思了吧。二进位是电脑基础中的基础哦。了解了二进位后,八进位,十六进位就以此类推啦。那么知道二进位转成十进位后,那如果有十进位转成二进位的环境时,该如何计算呢?刚刚是乘法,现在是除法就对啦,我们同样使用十进位的106转成二进位来测试一下:


最后的写法就如同上面的红色箭头,由最后的数值向上写,因此可以的到1101010的数字哦!这些数字的转换系统是非常重要的,因为电脑的加减乘除都是按照这些机制来处理的。

2-文字编码系统:既然电脑都只有记录0与1而已,甚至记录的资料都是使用byte/bit等单位来记录的,那么文字该如何记录啊?事实上文字档案也是被记录为0与1而已,而这个档案的内容要被取出来查阅时,必须有经过一个编码系统的处理才行,所谓的编码系统可以想成一个{字码对照表},他的概念有点像下面的示意图:


当我们要写入档案的文字资料时,该文字资料会由编码对照表将该文字转成数字后,再存入档案当中。同样的,当我们要将档案内容的资料读出时。也会经过编码对照表将该数字转成对应的文字后,再显示到荧幕上面。现在你知道为何浏览器上面如果编码写错时,会出现乱码了吗?这是因为编码对照表写错,导致对照的文字产生误差之故啦!

常用的英文编码表为ASCII系统,这个编码系统中,每个符号(英文、数字或符号等)都会占用1bytes的记录,因此总共会有28=256种变化。至于中文当中的编码系统早期最常用的就是big5这个编码表了。每个中文字会占用2bytes,理论上最多可以有216=65536,即最多可达6万多个中文字。但是因为big5编码系统并非将所有的位元都拿来运用成为对照,所以并非有这么多的中文字码。目前big5仅定义了一万三千多个中文字,很多中文利用big5是无法成功显示的,所以才会有造字程式说。

big5码的中文字编码对于某些资料库来说是很有问题的,某些字码例如:许,盖,功等字,因为这些个字的内部编码会被误以为是单/双引号,在写入还不成问题,在读出资料的对照表时,常常就会变成乱码,不只中文字,其他非英语系国家也会出现类似的问题!

为了解决这个问题,,由国际组织ISO/IEC跳出来制定了所谓的Unicode编码系统,我常常称呼的UTF8或者万国码的编码就是这个东西。因为这个编码打破了所有国家的不同编码,因此现在国际网络社会大多朝着这个编码系统在走。

软件程式运作是怎么样的一种形式?

开玩笑的说:我们知道没有插电的电脑是一堆废铁,那么插了电的电脑又是什么呢?答案是一堆会电人的废铁。这是因为没有软件的运作,电脑的功能就没有发挥的地方。就好像没有灵魂的躯体。重点在于软件/灵魂。所以我们来了解什么是软件?
一般来说,目前电脑系统将软件分为两大类,一个是系统软件,一个是应用程式。现在我们应该了解一下什么是程式,尤其是机器程式。了解之后再来讨论为什么现金的电脑系统需要作业系统这个!
1- 机器程式与编译程式:我们前面谈到电脑只认识0与1而已,而且电脑最重要的运算和逻辑判断在CPU内部,而CPU是具有微指令集的。我们需要CPU帮忙工作时,就得要参考微指令集的内容,然后拽写让CPU能够看懂的指令码给CPU执行。这样就能够让CPU工作啦。
不过这样的流程有个很麻烦的地方,包括:1-需要了解机器语言,机器只认识0与1,因此你必须学习直接写给机器看的语言11这个相当的难呢。
2- 需要了解所有硬件的相关功能函数:因为你写的程式必须要给机器看,当然你就得参考机器本身的功能,然后根据该功能去拽写程序码。例如:你要让DVD影片能够正常放映,那就得要参考DVD光碟机的硬件资讯才可以。万一你的机器有比较冷门的硬件,光是参考技术手册就得昏倒!
3- 程式不具有容性:每个CPU都有独特的微指令集,同样的,每个硬件都有其功能函数,因此你为A电脑写的程式,理论上在B电脑上是无法运作的。而且程式码的修改非常困难,因为是机器码并非是人类看的懂得机器语言!
4- 程式具有专一性:因为这样的程式必须要针对硬件功能函数来拽写,如果已经开发了一种浏览器程式,想要再开发档案管理程式码,还是得从头再来参考硬件的功能函数来撰写!

那怎么解决这个问题呢?电脑科学家们设计出一种让人看得懂的程式语言,然后创造一种{编译器},来将人类能够写的程式语言转译成为机器能够看得懂的机器码,如此一来我们修改与撰程式就变得容易多了!目前常见的编译器有C,C++,Java,Fortan等等,机器语言与高阶程式语言的差别如下图所示:




从上面的图示我们可以看到高阶程式语言的程式码是很容易查看的!在这样的环境下,我们还是得要考量整体的硬件系统来设计程式!
举例来说,当你需要将运作的资料写入记忆体中,你就得自行分配一些记忆体的区域出来让自己的资料能够填上去,所以你还是的了解到记忆体的位址是如何定位的、

为了要克服硬件方面老是需要重新撰写控制码的问题,所以就有作业系统(Operating System,OS)的出现了。

那什么是作业系统呢?它又包括哪些?

答:如同前面提到的,在早期想要电脑执行一些程式就得先要参考一堆硬件的功能函数,并且学习机器语言才能撰写程式。同时每次写程式时都需要重新改写,因为硬件与软件的功能都不一致。那如果我能将所有的硬件都驱动,并且提供一个发展软件的参考界面来给工程师开发软件的话,那发展软件不就变得非常简单了,那就是作业系统。

1-作业系统核心:作业系统(Opsating System,OS)其实也是一组程式,这组程式的重点在于管理电脑的所有活动以及驱动系统中的所有硬件。我们刚刚谈到电脑没有软件就是一堆废铁,那么作业系统的功能就是让CPU可以开始判断逻辑与运算数值,让记忆体可以载入/读出资料与程式码,让硬盘可以开始存取,让网络卡可以开始传输资料,让所有周边可以开始运转等等,总之,硬件的所有动作都得要透过这个作业系统来达成。

上述的功能就是作业系统的核心(Kernel)了!你的电脑能不能做到某些事情都与核心有关。只有核心有相应的功能,你的电脑才能完成你给的任务。举例来说,你的核心并不支持TCP/IP的网络协定,那么无论你购买了什么样的网卡,这个核心都无法提供网络能力。

但是单有核心,也不行。因为核心在于管控硬件并提供相应的功能(例如存取影碟与网络功能、CPU资源的取得等等),这些管理的动作是非常重要的,如果使用者能够直接使用到核心的话,万一使用者不小心将核心程式停止或破坏,将会导致整个系统的崩溃!因此核心程式所放置到记忆体当中的区块是受保护的!并且开机后就一直常驻在记忆体中。所以整部系统只有核心的话,我们就只能看着已经准备好运作的电脑系统,但是无法操作他!好像有点望梅止渴的那种感觉!这个时候就需要软件的帮忙了!

2-系统呼叫(System Call):既然我的硬件都是由核心管理,那么如果我想要开发软件的话,自然就得要去参考这个核心的相关功能!如此一来不是从原本的参考硬件函数变成参考核心功能,还是很麻烦啊!

为了解决这个问题,作业系统通常会提供一整组的开发界面给工程师来开发软件!工程师只要遵守该开发界面那就很容易开发软件了。举例来说,我们学习C程式语言只要参考C程式语言的相关函数即可,不需要再去考量其他核心的相关功能,因为核心的系统呼叫界面会主动将C程式语言的相关语法转成核心可以理解的任何函数。那核心就自然能够顺利运作该程式了

如果我们将整个电脑系统的相关软/硬件绘制成图的话,他的关系有点像这样:


电脑系统主要由硬件构成,然后核心程式主要在管理硬件,提供合理的电脑系统资源分配(包括CPU资源‘记忆体使用资源等等’),因此只要硬件不同(如x86架构与RISC架构的CPU),核心就得要进行修改才行,而由于核心只会进行电脑系统的资源分配,所以上头还需要有应用程式的提供,使用者才能够操作系统的。

为了保护核心,并且让程式设计师能够比较容易开发软件,因此作业系统除了核心程式之外,通常还会提供一整组开发界面,那就是系统呼叫层。软件开发工程师只要遵循公认的系统呼叫参数来开发软件,该软件就能够在该核心上头运作。所以你可以发现,软件与核心有比较大的关系,与硬件关系不大。硬件也与核心有比较大的关系。至于与使用者有关的,那就是应用程式了

在定义上,只要能够让电脑硬件正常无误的运作,那个就算是作业系统了。所以说,作业系统其实就是核心与其提供的界面工具,不过就如同上面所说的,因为核心最缺乏了与使用者沟通的亲和界面,所以在目前,一般我们提到的{作业系统}都会包含核心与相关的使用者应用软件。

简单来说,上面的图示可以带给我们底下的概念:

1-作业系统的核心层直接参考硬件规格写成,所以同一个作业系统程式不能够在不一样的硬件架构下运作,举例说,个人电脑版的Windows8.1不能直接在ARM架构(手机与平板硬件)的电脑下运作。

2-作业系统只是在管理整个硬件资源,包括CPU,记忆体,输入输出装置以及档案系统档。如果没有其他的应用程式辅助,作业系统只能让电脑主机准备妥当而已。并无法运作其他功能。所以你现在知道为何Windows上面要达成网页影像的运作还需要类似PhotoLmpact或Photoshop之类的软件安装了吧!

3-应用程式的开发都是参考作业系统提供的开发界面,所以该应用程式只能在该作业系统上面运作而已,不可以在其他作业系统上面运作,现在你知道为何去购买线上游戏光碟时,光碟上面会明明白白的写着该软件适合用于哪一种作业系统上面了吧!也该知道某些游戏为何不能够在linux上面安装了吧!

所谓的核心功能有哪些?

答:既然核心主要是在负责整个电脑系统相关的资源分配与管理,那我们知道其实整部电脑系统最重要的就是CPU与主记忆体,因此,核心至少也要有这些功能:

1-系统呼叫界面(System call interface):刚刚谈过了,这是为了方便程式开发者可以轻易的透过与核心的沟通,将硬件的资源进一步的利用,于是需要有这个简易的界面来方便程式开发者。

2-程式管理(Proccess control):总有听过所谓的多工环境吧,一部电脑可能同时有很多的工作跑到CPU等待运算处理,核心这个时候必须要能够控制这些工作,让CPU的资源做有效的分配才行!另外,良好的CPU排程机制(就是CPU先运作那个工作的排列顺序)将会有效的加快整体系统效能。

3-内存管理(Memory management):控制整个系统的内存管理,这个内存控制是非常重要的,因为系统所有的程式码与资料都必须要先存放在内存中,通常核心会提供虚拟内存的功能,当内存不足时可以提供内存交换(swap)的功能。

4-文件系统的管理(Filesystem management):文件系统的管理,例如资料的输入输出(I/O)等等的工作啦!还有不同档案格式的支援啦等等,如果你的核心不认识某个档案系统,那么你将无法使用该档案格式的档案。例如Windows 98就不认识NTES档案格式的硬盘。

5-设备的驱动:(Device drivers):就如同上面提到的,硬件的管理是核心的主语功能之一,当然,设备的驱动程式就是核心需要做的事情。好在目前都有哦所谓的可载入模组功能,可以将驱动程式编辑成模组,就不需要重新的编译核心。

Tips:事实上。驱动程式的提供应该是硬件厂商的事情!硬件厂商要推出硬件时,应该要自行参考操作系统的驱动程式开发界面,开发完毕后将驱动程式连同硬件一同贩卖给用户才对。举例来说,当你购买显卡时,显卡包装盒都会附上一张光盘,让你可以在进入windows之后进行驱动程式的安装。

那作业系统与驱动程式又有什么关系呢?

答:老实说,驱动程式可以说是作业系统里面相当重要的一环了。不过硬件可是持续在进步当中的!包括主机板、显示卡、硬盘等。那么比较晚推出的较新的硬件,例如显示卡,我们的作业系统当然就不认识咯!那么作业系统该如何驱动这块新的显示卡呢?为了克服这个问题,作业系统通常会提供一个开发界面给硬件开发商,让他们可以根据这个界面设计可以驱动他们硬件的驱动程式,如此一来,只要使用者安装驱动程式后,自然就可以在他们的作业系统上面驱动这块显示卡了。


由上图我们可以得到几个小重点:

1:作业系统必须要能够驱动硬件,如此应用程式才能够使用该硬件功能;

2:一般来说,作业系统会提供开发界面。让开发商制作他们的驱动程式;

3:要使用新硬件功能,必须要安装厂商提供的驱动程式才行;

4:驱动程式是由厂商提供的,与作业系统开发者无关。

所以,如果你想要在某个作业系统上面安装一张新的显示卡,那么请要求该硬件厂商提供适当的驱动程式。为什么要强调适当的驱动程式呢?因为驱动程式仍然是依靠作业系统而开发的,所以,给windows用的驱动程式当然不能使用与linux的环境下!

什么是应用程式?

应用程式是参考作业系统提供的开发界面所开发出来的软件,这些软件可以让使用者操作,以达到某些电脑的功能利用。举例来说,办公软件(office)主要是用来让使用者办公用的,影像处理软件主要是让使用者用来处理影音资料的,浏览器软件主要是让使用者上网浏览用的等等。

需要注意的是,应用程式是与作业系统有关系的,因此你想要购买新的软件,请务必参考软件上面的说明,看看该软件是否能够支持你的作业系统,举例来说,如果你想要购买线上游戏光碟,务必参考一下该光碟是否支持你的作业系统,例如是否支持Windows XP/Windows Vista/MAC/Linux等等。不要购买了该软件才发现无法安装在你的作业系统上面。
我们拿常见的微软公司的产品来举例说明。你知道Windows 8.1 Office 2013之间的关系吗?
1- Windows 8.1是一套作业系统,他必须先安装到作业系统上面,否则电脑无法开机运作:
2- Windows 7余Windows 8.1是两套不同的作业系统,所以可以在win7上安装的软件不见得就可以在win8.1上面安装。
3- Win8.1安装好后,就只能拥有很少的功能,并没有办公室软件。
4- Office2013是一套应用程式,要安装他前需要了解他可以在那些作业系统上面运行。

重点回顾:

1- 计算机的定义为:接受使用者输入指令与资料,经过中央处理器的数学和逻辑单元运算处理后,以产生或储存成有用的资讯。
2- 电脑的五大单元包括:输入单元,输出单元,控制单元,算数逻辑单元,记忆单元五大部分。在其中CPU占有控制,算数逻辑单元;记忆单元又包括主记忆体与辅助记忆体;
3- 资料会流进/流出记忆体是CPU所发布的控制命令,而CPU实际要处理的资料则完全来自与主记忆体(内存)。
4- CPU依据设计理念主要分为:精简指令集(RISC)与复杂指令集(CISC)系统;
5- 关于CPU的速度部分,外频指得是CPU与外部元件进行资料传输时的速度;倍频则是CPU内部用来加速工作效能的一个倍数,两者相乘才是CPU的传输速度。
6- 新的CPU设计中,已经将北桥的内存控制晶片整合到CPU当中,而CPU与内存.显示卡沟通的流排通常称为系统区流排。南桥就是所谓的输入/输出(I/O)流排,主要在联系硬盘,USB,网络卡等周边设备。
7- CPU每次能够处理的资料量称为字组大小,字组大小依据CPU的设计而又32位元与64位元。我们现在所称的电脑是32位或64位元主要依据CPU解析字组的大小而来的。
8- 个人电脑的内存主要元件为:动态随机存取内存(DRAM),至于CPU内部第二层快取则使用静态随机存取内存(SRAM).
9- BIOS是一套程式,这套程式是写死在主机板上面的一个内存晶片中,这个内存晶片在没有通电的情况下也可以将资料记录下来,那就是唯读内存(ROM).
10- 目前主流的外接卡界面大多为PCIe界面,且最新为PCIe3.0,单通道速度高达1GBytes/s。
11- 常见的显示卡连接到荧幕的界面大多有HDMI/DVI/D-Sub/Display port等等。HDMI可同时传送影像与声音。
12- 传统硬盘的组成为:圆形磁碟盘,机械手臂,磁碟读取头与主轴马达所组成,其中磁碟盘的组成为磁区,磁轨与磁柱。
13- 磁碟连接到主机板的界面大多为SATA或SAS,目前桌面主流为SATA3.0,理论速度可达600Mbytes/s。
14- 常见的文字编码为ASCII,繁体中文编码主要有Big5及UTF8两种,目前主流是UTF8
15- 作业系统其实也是一组程式,这组程式的重点在于管理电脑的所有活动以及驱动系统中的所有硬件。
16- 电脑主要以二进位作为单位,常用的磁碟容量单位有bytes,其单位换算为1Byte=8bits。
17- 作业系统仅在驱动及管理硬件,而要使用硬件时,就得要透过应用程式或者是杀程式的功能;来呼叫作业系统来操作硬件工作,目前称为作业系统的,除了上诉功能之外,通常已经包含了日常工作所需要的应用软件在内了。







本文标签: 概论 新手入门 计算机