计算机结构大概分为四层:
操作系统是一类系统软件,调度硬件资源,合理分配管理软件(因此操作系统又被称作资源管理器(resource manager))。
程序要运行首先要被放到内存中,然后才能被 CPU 处理;运行中的程序叫进程。
双击打开 QQ.exe,对应进程就会被放到内存中;
QQ 正常运行过程中,对应进程被 CPU 处理。
QQ 若想调用摄像头等,操作系统会把相应硬件分配给他。
计算机还会提供用户和硬件之间的接口。主要分为三种:GUI 接口,命令接口,程序接口。
联机/交互式命令接口:用户说一句,系统做一句。(cmd)
脱机/批处理命令接口:用户说一堆,系统做一堆。(.bat)
程序接口:通过程序才能调用。(.dll)
只有硬件的计算机叫裸机;操作系统将硬件资源转换为通用的、强大的虚拟形式,有时操作系统也被称为虚拟机。操作系统提供几百个系统调用(system call)供其他应用程序使用,实现运行程序、访问内存和设备等操作,也可以说操作系统为其他应用程序提供了一个标准库(standard library)。
操作系统围绕以下几大主题展开:
互斥型共享就是一次只能一个程序用,如摄像头;
同时型共享就是两个进程交替使用,如 QQ 微信 同时发送文件。
手工操作阶段:用户手工打点,给机器。人机协调不均衡,资源分配不均匀。
批处理阶段——单道批处理系统:用户打好的点交给磁带,磁带读入计算机速度快得多(监督程序,早期的操作系统)。但是利用率仍然很低。
批处理阶段——多道批处理系统:每次内存中同时读入多个程序。多个程序并发执行,有了”中断“的概念。但是用户在程序执行的时候没法干涉,人机交互很差。

分时操作系统:计算机以时间片为单位轮流给所有用户提供服务。用户的请求可以被及时响应,解决了人机交互问题;各个用户之间也感受不到其他用户的存在。但是众生平等,没有优先级。
实时操作系统:优先度高的任务可以先被处理,并且必须在给定的时限内完成任务。

计算机中的指令有的安全(加减乘除运算),有的危险一点(清空内存)。因此需要通过权限控制限制用户能执行的指令。
具体实现方法为:CPU 处于核心态(管态)时可以执行所有指令;处于用户态(目态)时只能执行非特权指令。
内核程序是系统的管理者,可以执行所有指令,运行在核心态;
应用程序只能执行非特权指令,运行在用户态。

操作系统的内核包含橙黄两部分:大内核。
只包含黄色部分:微内核。
各自的缺点:大内核组织结构混乱,难以维护;微内核频发切换,性能低。