计算机本身就是一堆硬件,这些硬件中最核心的就是CPU(运算器,控制器) 和存储器设备。
为了能够实现计算机获取数据,数据的输入输出等等需要输入设备和输出设备。
计算机体系内部:主要是通过桥接接入当前系统,通过南桥连接。
为了尽可能地利用计算机的计算能力,所以需要同时运行多个程序,每一个程序运行起来以后就需要一个协调器,即内核。内核本身管理硬件资源,并把硬件资源虚拟成其它样子,提供给上层所需要的运营程序。为什么这样做?一个程序如果直接运行在硬件上,那么这个程序本身就可以控制硬件的各种属性,内核其他程序要再想运行在硬件上,那这些程序很可能会互相干扰,一个恶意的应用程序可能会导致其它程序通通退出。所以需要一个统一的资源管理者。而且任何一个应用程序要想使用硬件必须通过内核来完成。内核也不会让程序直接访问硬件,而是通过一种系统调用(system call)。但是系统调用是繁琐的,底层的,通过调用接口,库(library,API,application program interface)库本身没有接口调用,不能自己调用。
能够跟硬件交互的:内核,内核必须要能够运行在CPU上
为了系统的稳定性:必须有一种机制:把内核和隔离开来。有四个级别,0级别:内核。内存是分成三段:上电自检;内核(kernel space);程序共享;
执行过程:shell(shell为我们提供与计算机交互的条件)--敲键盘--CPU---内核(知道指令是由哪个进程发出来的)--应用程序
shell:GUI(graphic user interface)图形界面接口 CLI(command line)命令行接口
操作系统本身也是程序,需要运行,运行就需要指令和数据。指令数据放在哪?内存。
内核功能:进程管理;内存管理;文件系统;网络功能;硬件驱动;安全机制;
原先:批处理系统:jobs1$$$$jobs2$$$$
GE,Bell,MIT准备研发多用户,多任务 用汇编语言在main frame上面研发。