CPU:
CPU内部可以分为两个主要单元:算数逻辑单元和控制单元。
算数逻辑单元主要用于程序运算和逻辑判断,控制单元主要用于协调各个组件和各单元的工作。
CPU基本可以分为两种:
精简指令集和复杂指令集系统。
精简指令集:
每个指令都较为精简,执行时间比较短,完成的操作也比较简单。指令的性能较佳,但是要实现复杂的功能,需要多个指令来完成。常见的微指令集CPU有Sun公司的SPARC系列,IBM的Power Architecture系列和ARM系列。
我们经常使用的手机,交换机。路由器,导航设备的CPU基本都是ARM系列的。而SPARC常用于大型工作站中,如银行金融体系的主要服务器。
复杂指令集:
AMD、Intel等X86架构的CPU。
关于X86:因为Intel初期开发这个CPU的型号较8086,80286,80386,所以后来就叫X86架构。64位的X86又叫X86_64.
操作系统
操作系统内核(Kernel):操作系统内核用于管理CPU,内存,硬盘,网络,其他各种输入输出设备等的一组复杂程序。
系统调用(System Call):内核提供的调用内核功能的API。
内核功能:
- 系统调用接口(就是上面的System Call)
- 程序管理:进程管理 CPU调度
- 内存管理:内存管理 虚拟内存 内存交换
- 文件系统管理:文件系统的格式(如NTFS),输入输出。
- 设备驱动
关于设备驱动:
- 对于显卡,硬盘,网卡等,操作系统都需要驱动程序才能够使用该硬件。
- 一般来说,操作系统提供接口,开发商按照接口制作他们的驱动程序。
- 驱动程序又开发商提供,跟操作系统开发者无关。
linux
操作系统需要支持不同指令集的CPU,linux在刚开发的时候,只能驱动386相关的硬件。
window系统是开发在386架构之上的系统,早期的苹果系统是建立在IBM的Power Architecture基础上的,所以早期的苹果系统是无法安装Windows系统的。2006之后苹果使用了Intel的X86架构。
unix
unix是贝尔实验室的一个员工Thompson开发出来的,目的是满足自己的工作需求。第一版是以汇编语言编写的。然后在贝尔实验室内部广为流传,后来Thompson和伙伴Ritchie准备将unix以高级的语言重新编写,第一版使用了B语言(也是Thompson编写的),不过性能表现不太好,所以Ritchie改进并且精简了B语言,改写成了后来的C语言。然后以C语言重新编写了unix系统。
BSD是unix的基础上构建起来的,增加了很多工具软件和编译程序,是unix的重要分支。
GNU项目
GNU项目是Stallman成立的开源软件项目,在c的圈子,类似于java的apache。
GUN的license叫GPL。
GCC是一款c程序编译软件,是Stallman的编写的。全名叫GNU C Compailer。
Stallman创立GNU的一个重要目的就是为了开发一个自由的unix操作系统。因为当时unix操作系统已经有了版权的纠纷。
linux
芬兰人linux Torvalds利用GNU的bash工作环境以及GCC编译程序等自由软件,编写了linux的第一版。只支持386平台的操作系统内核。
后来经过一个虚拟团队的维护,才渐渐有了现在的linux。
distribution
linux kernel + Software + tools + Ducumentation = distribution
比如 Redhat,Ubuntu就是linux的distribution。
我们说linux版本和distribution的版本的时候要注意,这两者是不一样的。
linux版本是linux内核的版本。