操作系统的组成
CPU ( 中央处理器): 运算器 控制器 高级缓存(cache)
内存 : 存储器
I/O :磁盘 输出设备 输入设备
而三者是通过总线将其串联起来。
总线:数据(传递数据)、地址(寻址)、控制(0/1控制数据流向)
为了屏蔽底层I/O的差异,操作系统通过 VFS(虚拟文件系统)来统一管理
为了屏蔽内存与I/O(VFS)的区别,作为资源分配的管理单位,提供了虚拟内存
为了屏蔽CPU、内存、I/O在底层的差异,作为这三个部件的资源调度单位,操作系统提供了进程的概念
操作系统内核将底层的硬件都屏蔽起来了,那么只要有操作系统在,我们写的代码生成的可执行文件是不可能直接被加载到物理内存上去的,他会被加载到虚拟内存上。虚拟内存的大小,与CPU的位数有关,在x86
32bit的Linux内核上CPU是32位;那么它的虚拟内存的大小就是2的32次方也就是4G;
- 32的CPU,它的数据总线和地址总线都是32条;
- 16位的CPU,数据总线16条,地址总线20条;
- 8位CPU数据总线8条,地址总线16条。CPU的位数与地址总线的条数无关。
CPU主要是用来运算数据的,CPU的位数是指它一次性能加以运算的最长的整数的宽度,CPU是在算术逻辑单元ALU中运算的,那么CPU的位数也就是算术逻辑单元的宽度,运算的数据是从数据总线来的,那么CPU的位数也就是数据总线的条数。程序都是运行在虚拟内存上,那么虚拟内存在哪里?虚拟内存这个概念是IBM提出的,为了给大家普及虚拟内存的概念,IBM提出了几句话:它存在,你能看得见,它是物理的;它存在,你看不见,它是透