鸟哥的Linux私房菜 基础学习篇读书笔记(0):计算机概论

这是毕业前的最后一个学期了,以后工作非常有可能需要使用Linux,而自己之前完全没有接触过Linux,所以打算利用这个学期开始学习Linux。 因为Linux对于我来说完全是个陌生的概念,所以需要从最基础的知识开始学习,看到很多人推荐<<鸟哥的Linux私房菜>>作为学习Linux的入门教材,就花了70大洋买了<<鸟哥Linux私房菜 基础学习篇>>开始学习。
虽然这本书讲的是Linux操作系统,但是作者还是在Chapter 0介绍了计算机概论,因为很多学习Linux的人可能并非是计算机专业,所以作者非常贴心的在书的开始就介绍计算机的相关概念。

        计算机的定义:接受用户输入指令与数据,经过中央处理器的算术和逻辑单元运算处理后,以产生或存储成有用信息。 所以根据这个计算机的广义定义,生活中的很多设备都可以称为计算机,而不仅仅是我们的个人计算机。

      计算机的硬件五大单元: 从计算机的定义可以看出,计算机主要包含三部分:输入单元,中央处理器(CPU),输出单元。而CPU是最重要的部分,CPU作为具有特定功能的芯片,里面有微指令集。我们可以把CPU抽象地认为就是一个指令集。 CPU内部又可以分为两个单元:算术逻辑单元和控制单元。其中算术逻辑单元负责程序的运算和逻辑判断,控制单元负责协调计算机各组件和各单元的工作。而且值得注意的是:CPU读取的数据都是从内存中读取来的。CPU处理完的数据也必须要先写回内存中。所以计算机的五大硬件单元:输入单元,算术逻辑单元,控制单元,内存和输出单元。而其中CPU和内存又是计算机的最重要部件。


   CPU作为计算机内最主要的部件,可以抽象地认为就是一个指令集。而且指令集地设计可以分为精简指令集(RISC)和复杂指令集(CISC)。两者主要是在每条指令的复杂程度上有所区别。其中Intel 或AMD开发的x86框架的CPU就是复杂指令集,而且被大量的用于个人电脑上,所以pc也可以称为x86架构计算机。

       当然只有CPU是无法运作计算机的,还有很多接口设备,最重要的就是主板了,主板负责把所有设备连接在一起,让所有设备能够进行协调和通信。主板上最重要的部件就是主芯片组了,这个芯片组可以让所有设备汇聚在一起。


   计算机的分类:计算机可以按照运算能力和复杂度来分类,有:超级计算机,大型计算机,迷你计算机,工作站和个人计算机(微电脑)。


         计算机中常用的单位:这里需要注意计算机中K的定义,在二进制下,1K=1024,在十进制下,1k=1000,对于文件大小,采用的是二进制,所以1k=1024。

       个人计算机架构与接口设备:这里讨论的是个人计算机的架构,也就是x86架构的计算机。但是两大主流的x86芯片开发商:Intel 和AMD生产的CPU架构并不兼容,所以两大主流CPU所需要的主芯片设计也就有所不同。之前我们提到主板负责连接各个设备,负责各个组件间的协调和通信,主板上最重要的是主芯片组,它将主板上所有设备汇聚在一起。芯片组通常又分为两个桥连接器,北桥负责连接速度较快的CPU,内存与显卡等组件,南桥负责连接速度较慢的周边接口,包括硬盘,USB,网卡等。


CPU作为计算机的大脑,需要大量的运算。CPU的频率就是CPU每秒钟工作的次数,CPU的频率越高,代表CPU单位时间内能够做的事情就越多。另外CPU还有两个参数外频和倍频:外频是指CPU与外部组件进行数据传输/运算时的速度,倍频是CPU内部加速工作性能的一个倍数,两者相乘才是CPU的频率

        32位与64位:CPU运算的数据都是内存中读取来的,内存与CPU的通信速度靠的是外部频率。之前我们谈过主芯片组有两个桥连接器,北桥和南桥,北桥是系统总线,是内存传输的主要信道,速到较快,南桥是I/0总线,联系USB,网卡等周边接口设备。北桥所支持的频率称为前端总线速度,而每次传送的位数就是就是总线宽度,所以总线频宽=总线频率*总线宽度。也称为每秒钟能够传输的最大数据量。总线宽度有32/64bit。CPU每次能够处理的数据量称为一个字组大小,也就是一个WORD,所以我们说CPU 有32位和64位之分,就是指CPU每次解析的字组大小。


  内存:CPU能够处理的数据都是来自内存,每次处理完数据也是写回到内存中。个人计算机的内存的主要部件为DRAM:动态随机访问内存。随机访问内存只有在通电时才能够正常工作。对于服务器而言,内存的容量有时比CPU的速度更重要。因为只有所有数据被加载到内存中才能被CPU处理。所以内存容量不大的话将导致某些大容量数据都无法被完整加载。理论上CPU与内存的外频应该相同才好。为了使性能提升,如果常用的数据能够直接放置在CPU内部,而不需要由内存通过北桥传输到CPU,又有了L2 Cache的概念(第二层缓存),L2内存的速度要与CPU的频率相同,使用DRAM是无法达到的,所以又有了SRAM(静态随机访问存储)。
        ROM(只读存储器):主板上有很多组件,而且组件的相关参数具有可调性。所以组件的各项参数是记录到主板上称为CMOS的芯片上,这个芯片需要额外的电源来工作。所以主板上有块电池。每次开机上,BIOS程序会被执行,用来读取或设置CMOS中的各项参数。BIOS是写死在主板上一个内存芯片中的,这个内存芯片就是ROM,在没有通电时也能够记录数据。 BIOS是开机时读取的第一个程序,它掌握了计算机硬件的详细信息和开机设备的选择等。 
     当然主板上还有显卡,硬盘,网卡等其它设备,这里不一一列举了。 当我们购买主机时,需要考虑的不仅仅是CPU的频率,速度的快慢与系统整体中最慢的那个设备有关。
    
    数据的表示方式:计算机只认识0和1,记录的数据也只能记录0和1,因此计算机常用的数据就是二进制。
    计算机的文字编码系统:编码系统可以想成“字码对照表”,常用的英文编码系统为ASCII,中文编码系统有gb2312, 以及由国际组织ISO/IEC制定的Unicode编码系统,也称为统一码。


    软件程序的运行 :如果没有软件的运行,计算机是无法发挥功能的。软件可以分为两类:系统软件和应用软件。
        机器程序和编译程序:我们要使计算机按我们的想法工作,就要参考CPU的微指令集,只要编写CPU能够读懂的指令码给CPU执行,CPU就能够工作。但是这样存在几个缺点:1,需要了解机器语言,因机器只认识0和1;2,需要了解所有硬件的相关功能函数;3,程序不具有可移植性。因此计算机科学家为了解决这个问题,设计了高级语言,同时又创造了编译器,把易于人类理解的程序语言转变成计算机能够看懂的代码,我们程序的编写就容易的多。但是我们还是得参考具体的硬件环境才能编写程序。因此又有了操作系统。
   操作系统: 操作系统内核就是一组程序,这组程序的目的在于管理所有计算机活动和驱动系统中的所有硬件
          系统调用:操作系统会提供一整组开发接口给软件开发者,也就是系统调用层,软件开发者只需要参考公认的系统调用参数来开发软件,就能够在该内核上运行。使得软件开发者编写程序不需要参考具体的硬件。
        操作系统的内核是参考具体的硬件规格写成的,所以同一操作系统不能够在不同的硬件架构上运行。
        操作系统是介于应用软件和底层硬件之间的系统软件,因此操作系统的主要功能: 1,提供系统调用接口,或者说API,2,程序管理,3,内存管理,4,文件系统管理,5,设备驱动(驱动程序的编写是由硬件厂商完成, 硬件厂商需要参考操作系统的驱动程序开发接口,编写相应的驱动程序)。

        

        应用程序的编写需要参考操作系统的开发接口。应用程序是让用户操作,以完成某项特定的功能。

   

你可能感兴趣的:(Linux)