-
计算机由五大基本单元组成
控制器 运算器 存储器单元 输入单元 输出单元
-
操作系统启动流程
-
Linux基本组成
- 内核
- shell
- 文件系统
- 应用程序
-
Linux体系结构
* Linux分为用户空间和内核空间,用户空间包含应用程序以及 GNU C Library (标准调用库,简写 glibc),内核空间分为系统调用层、内核以及平台架构相关的代码。内核模块运行于内核空间,应用程序运行于用户空间。
* 从安全的角度看,把整个系统分为两部分,即使应用程序崩溃了,也不会影响到整个系统的安全。
从权限划分来看,内核程序拥有系统最高级别的权限,可以访问系统所有资源。应用程序运行于用户空间,拥有较低级别的权限,只能访问它们可以访问的资源,不能直接访问内存和硬件设备。
* 应用程序如何进行系统调用?
应用程序运行于用户空间,处于用户态,通过 glibc 发起系统调用,程序会从用户态切换到内核态,由内核代表程序运行于内核空间,当程序进入内核态的时候就相当于程序拥有了系统的最高级别权限,可以与硬件设备通信,运行结束后又切换回用户态。
进程管理
- 进程是正在执行的一个程序或命令
- 进程有自己的地址空间,占用一定的系统资源
- 一个 CPU 核同一时间只能运行一个进程
- 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
进程调度
-
进程状态
R(TASK_RUNNING),可执行状态
S(TASK_INTERRUPTIBLE),可中断的睡眠状态
D(TASK_UNINTERRUPTIBLE),不可中断的睡眠状态
T(TASK STOPPED or TASK_TRACED),暂停状态或跟踪状态
Z(TASK_DEAD-EXIT_ZOMBIE),退出状态,进程成为僵尸进程
X(TASK_DEAD-EXIT_DEAD),退出状态,进程即将被销毁
-
进程调度原则
一个CPU 核同一时间只能运行一个进程
每个进程有近乎相等的执行时间
对于逻辑CPU而言进程调度使用轮询的方式执行,当轮询完成则回到第一个进程反复
进程执行消耗时间和进程量成正比
Linux 文件系统
文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。
Linux 中一切皆文件:Linux 中 所有程序都是以文件的形式储存,这样的好处就是统一了进程调度的方式。
虚拟文件系统(VFS)
对应用层提供一个标准的文件操作接口
对文件系统提供一个标准的文件接入接口
文件读取流程
用户权限
-
用户账户
普通用户账户:在系统中进行普通作业
超级用户账户:在系统中对普通用户和整个系统进行管理
-
组账户
标准组:可以容纳多个用户
私有组:只有用户自己
软件包
通常指的是一个应用程序,它可以是一个 GUI 应用程序、命令行工具或(其他软件程序需要的)软件库。
-
软件包管理
底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM
上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF