x86架构
最早的Intel发展出来的CPU代号称为8086,后来依此架构又开发出了80286、80386等,因此这种架构的CPU被称为x86架构,64位的CPU又被统称为x86_64架构。两大主流x86开发商(Intel,AMD)的CPU架构并不兼容,设计理念也有所区别,所以CPU所需要的主板芯片组与设计也就不太相同。
芯片组
主板上面最重要的就是芯片组,芯片组通常分为两个桥接器来控制各组件的通信
北桥负责连接速度较快的CPU、内存与显卡等组件
南桥负责连接速度较慢的周边接口,包括硬盘、USB、网卡等
微指令集
CPU内部包含有一些微指令集,我们所使用的软件都要经过CPU内部的微指令集来完成。这些微指令集的设计主要被分为两种设计理念,这就是目前世界上常见到的两种主要CPU种类,分别是精简指令集与复杂指令集。
精简指令集(ReducedInstruction Set Computing,RISC)
微指令集较为精简,每个指令的执行时间都很短,完成的操作也很单纯,指令的执行性能较佳;但是要做复杂的事,就要由多个指令来完成。常见的RISC微指令集的CPU主要有Sun公司的SPARC系列、IBM的PowerArchitecture(包括PowerPC)系列与ARM系列等。
复杂指令集(ComplexInstruction Set Computing,CISC)
CISC中,每条指令可以执行一些较低阶的硬件操作,指令书目多而且复杂,每条指令的长度并不相同,每条指令花费的时间较长,但每个指令可以处理的工作较为丰富。常见的CISC微指令集CPU主要有AMD、Intel、VIA等x86架构的CPU。
CPU的性能
不同的微指令集会导致CPU工作效率的优劣。
频率是指CPU每秒钟可以进行的工作次数(3.0GHz表示CPU在一秒内可以进行3.0*10^9次工作,每次工作都可以进行少数的指令运行,不同的CPU之间不能单纯以频率来判断运算性能,因为CPU的微指令集不相同,架构也不一样,每次频率能够进行的工作指令数也不同,所以频率目前仅能用来比较同款CPU速度)。
外频与倍频,所谓外频指的是CPU与外部组件进行数据传输/运算时的处理速度,倍频则是CPU内部用来加速工作性能的一个倍数,两者相乘才是CPU的频率(3.0GHz,外频是333MHz,因此倍频就是9倍3.0G=333M*9,其中1G=1000M)。
超频是指将CPU的倍频或是外频通过主板的设定功能更改成较高频率的一种方式,但倍频通常在出厂时已经被锁定而无法更改,因此较常被超频的为外频,超频并非正常速度,故可能死机。
CPU与内存通信速度靠的是外频,每次工作传送的数据量大小靠的是总线功能,一般芯片组分为北桥与南桥,北桥的总线称为系统总线,因为是内存传输的主要信道,所以速度较快;南桥就是所谓的输入输出(I/O)总线,主要用于联系硬盘、USB、网卡等接口设备。
字组大小是CPU每次能处理的数据量,字组大小依据CPU的设计有32位和64位,我们现在所称的计算机是32位或64位主要是依据CPU解析度字组大小而来,早期的32位CPU中,因为CPU每次能够解析的数据量有限,因此由内存传来的数据量就有所限制了,这也导致32位CPU最多支持最大到4GB的内存。
内存
内存主要组件为动态随机访问内存(DynamicRandom Access Memory,DRAM),只有在通电时才能记录与使用,断电后数据就消失了。
DRAM根据技术更新分好几代,使用广泛的有SDRAM与DDR SDRAM,DDR(DoubleData Rate)是双倍数据传送速度,它可以在一次工作周期中进行两次数据传送,类似CPU的倍率,DDR SDRAM依据技术的发展,有DDR,DDRII,DDR III等。
操作系统
操作系统是一组程序,这组程序的重点是管理计算机的所有活动以及驱动系统中的所有硬件。
内核
内核的作用在于让计算机所有硬件都可以运转,计算机能不能做到某些事情,都与内核有关。如果内核不支持TCP/IP协议,那么无论用什么网卡,内核都无法提供网络功能。内核程序所放置到内存中的区块是受保护的,并且开机后就一直常驻内存中。
既然硬件是由内核管理,那么如果想要开发软件的话,自然要去参考内核的相关功能。如此一来就是从原本的参考硬件函数变成参考内核功能。操作系统会提供一组开发接口给工程师来开发软件。操作系统就是内核与其提供的接口工具。
操作系统的内核层直接参考硬件规格写成,所以同一个操作系统不能够在不一样的硬件架构下运行。
操作系统只是在管理整个硬件资源。应用程序的开发都是参考操作系统提供的开发接口,所以该应用程序只能在该操作系统上运行。
内核功能
系统调用接口:方便开发者通过与内核的通信来利用硬件资源
程序管理:有效分配CPU资源
内存管理:通常内核会提供虚拟内存功能,当内存不足时可以提供内存交换功能
文件系统管理:数据输入输出等工作,文件格式的支持,Windows98不识别NTFS格式的磁盘
设备驱动:驱动程序
分区
数据的写入时在磁盘的盘片上面,盘片上又可细分出扇区(sector)与柱面(cylinder)两种单位(柱面是分区的最小单位),其中扇区每个为512bytes那么大。整块磁盘的第一个扇区特别重要,主要记录了两个重要信息:
主引导分区(MasterBoot Record, MBR):可以安装引导加载程序的地方,有446bytes
分区表(Partitiontable):记录整块磁盘分区的状态,有64bytes
在分区表所在的64bytes容量中,总共分为四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。如果磁盘设备名为/dev/hda时,那么这四个分区文件名为/dev/hda[1-4],数字与分区所在的位置有关,分区就是对64bytes的分区表进行设置,磁盘默认分区表仅能写入四组分区信息,这四组分区信息称为主(Priamry)或者扩展(Extended)分区。
通过扩展分区将硬盘分区成四个以上,既然第一个扇区所在的分区表只能记录四条数据,那我们可以利用额外的扇区来记录更多的分区信息。由扩展分区继续切割出来的分区被称为逻辑分区(logicalpartition),逻辑分区的设备名称从5号开始(/dev/had5)。
主分区与扩展分区最多有四个(磁盘的限制)
扩展分区最多有一个(操作系统限制)
逻辑分区由扩展分区切割出来
主分区与逻辑分区可以被格式化,扩展分区无法被格式化
逻辑分区的数量依操作系统而不同,linux中,IDE硬盘最多有59个逻辑分区(5-63号),SATA硬盘则有11个(5-15号)
BIOS和CMOS
BIOS是一套程序,这套程序是写死到主板上面的一个内存芯片中,这个内存芯片在没有通电时也能将数据记录下来,那就是只读存储器ROM。
CMOS是记录各项硬件参数且嵌入在主板上面的存储器,BIOS则是一个写入到主板上的一个韧体(韧体就是写入到硬件上的一个软件程序),BOIS就是在开机的时候计算机会主动执行的第一个程序了。接下来BOIS会分析计算机里面有哪些存储设备,以硬盘为例,BOIS会依据用户设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区的主引导分区(MBR)位置,MBR这个仅有446bytes的硬盘容量里面会放置最基本的引导加载程序(Bootloader),此时BOIS功成圆满,接下来就是MBR内的引导加载程序的工作了。这个引导加载程序的目的是在加载内核文件,由于引导加载程序是操作系统在安装的时候提供的,所以它会识别硬盘内的文件系统格式,因此就能够读取内核文件,接下来就是内核文件的工作,引导加载程序也功成圆满。
Boot loader
BOIS和MBR都是硬件本身会支持的功能,至于Bootloader则是操作系统安装在MBR上面的一套软件了,由于MBR仅有446bytes,因此这个Bootloader是非常小而完美的。
Boot loader的主要任务:
提供菜单:用户可以选择不同的开机选项,这也是多重引导的重要功能。
载入内核文件:直接指向可开机的程序区段来开始操作系统。
转交其他loader:将引导加载功能转交给其他loader负责。(表示计算机系统里面可能具有两个以上的引导加载程序,硬盘只有一个MBR,但是引导加载程序出了可以安装在MBR之外,还可以安装在每个分区的引导扇区(bootsector),这个特色造就了多重引导功能。例如MBR内安装的是可同时识别Windows和Linux操作系统的引导加载程序,那么它将提供两个菜单,菜单一可直接加载Windows的内核文件开机,菜单二则是将引导加载工作交给第二个分区的启动扇区,也就是交给了第二个分区的引导加载程序,第二个分区的引导加载程序启动后,该引导加载程序内仅有一个开机菜单,因此就能够使用Linux的内核文件开机)
每个分区都拥有自己的启动扇区(bootsector);实际可开机的内核文件时放置到各分区内的;loader只会认识自己的系统分区内的可开机内核文件,以及其他loader;loader可直接指向或者是间接将管理权转交给另一个管理程序。
最好先安装Windows再安装Linux
Linux在安装的时候,可以选择将引导加载程序安装在MBR或个别分区的启动扇区,而且Linux的loader可以手动设置菜单,所以可以在Linux的bootloader里面添加Windows的开机选项。
Windows在安装的时候,它的安装程序会主动覆盖掉MBR以及自己所在分区的启动扇区,你没有选择的机会,而且它没有让我们自己选择菜单的功能。
如果先装Linux再安装Windows的话,那MBR的引导加载程序就会只有Windows的选项,原本在MBR内的Linux的引导加载程序就会被覆盖掉,但是不需要重新装Linux,只要用尽方法来处理MBR的内容即可(例如使用spfdisk软件,或者Linux的救援模式来挽救MBR)。