计算机硬件
- 控制器:协调指挥计算机中部件
- 运算器:算数、逻辑运算
以上两个共同组成CPU单元。
- 存储器单元:内存&外存(磁盘)
- 输入单元:鼠标、键盘
- 输出单元:显示器(音响)
计算机操作系统(OS)
承上(运行应用程序)启下(与系统硬件进行交互)。
BIOS&UEFI是固化在主板上的一段程序,让计算机在开机时就可以执行这段程序进行初始化操作,Bootloader是操作系统引导程序,找到它并运行,通过它使操作系统运行起来。UEFI是优化版,减轻BIOS自检等引起的开机速度缓慢问题。
Linux系统
Linux内核+常用软件=Linux发行版本
应用领域
- IT服务器
- 嵌入式和智能设备(安卓手机底层是linux系统)
- 个人办公桌面
- 学术研究与软件开发
组成结构
- 内核:操作系统底层能力,内存管理、进程管理、文件系统管理
- shell:输入指令跟Linux内核进行交互来管理和使用Linux的资源
- 文件系统:管理持久数据的子系统,把用户的文件存到磁盘当中去
- 应用程序
体系结构
用户空间(应用程序运行之处)+内核空间(实现了硬件软件的交互,是一个资源管理程序,外部应用程序通过内核提供的命令与内核进行交互)
- 安全角度:如果用户空间崩溃了也不会影响到内核
- 权限角度:内核程序运行在内核空间中,拥有最高级的权限
用户程序频繁在用户态和内核态切换。
系统结构
进程管理
进程是正在执行的一个程序或命令,有自己的地址空间,占用一定内存,由进程ID和父进程的进程ID唯一识别。进程结构是树状的,方便管理。
进程调度
操作系统按某种策略或规则选择进程占用CPU进行运行的过程。
调度原则
- 一个CPU核同一时间只能运行一个进程
- 每个进程有近乎相等的执行时间
- 进程执行消耗时间和进程量成正比
- 操作系统在管理进程时会创造一些调度的队列,把每个进程放在队列里面按顺序执行队列,确保所有进程都被执行到,不会因为优先级问题导致某些低级进程永远被忽视
文件系统
Linux中一切皆文件!保证了操作统一和接口调用统一。文件系统负责把用户的文件存到磁盘进行永久化保存。采用树状目录结构。
虚拟文件系统(VFS)
打通不同文件类型,保证操作统一。
文件读取流程
NGX进程会先看用户缓冲区中有没有以前命中过的文件,若有,会直接从中读文件然后返回;若没有,就发起一次系统调用,NGX从用户态切换到内核态,从内核缓冲区中观察有没有以前命中过的文件,若有,直接读取再通过CPU拷贝到用户缓冲区然后给用户进程使用,若没有,通过DMA(直接存储访问)向磁盘发去读取文件的请求,DMA再拷贝到内核缓冲区,然后CPU拷贝到用户缓冲区然后给用户进程使用。最后是写的流程(右边),通过CPU拷贝用户缓冲区的文件到Socket缓冲区,最后通过DMA拷贝到网卡,返回给用户。
用户权限
用户账户
- 普通用户账户:在系统中进行普通作业
- 超级用户账户:在系统中管理普通用户和整个系统
用户组
- 标准组:容纳多个用户
- 私有组:只有用户自己
文件权限
- 所有者
- 所在组
- 其他人