本文同步发布于博客(xblc.netlify.app),如果有更新博客会在第一时间更新
计算机硬件
计算机五大基本单元
操作系统
计算机中最大的软件,承上启下,在软硬件中传递信息
提供两大能力
管理计算机资源
- 处理器
- 存储
提供用户接口
用于启动其他软件的 OS 是怎么被启动的? —— 操作系统启动流程
- BIOS:
- UEFI:是对BIOS的一个优化
- 优化掉了自检的过程
发展历史
版本
- 发行版
- = 内核 + 常用软件
- 几个分支
应用领域
系统结构
内核
- 内核就是软硬件的中间层
- 内核是资源管理的程序
- 内核提供了系统调用的命令
Shell
进程管理
进程了解
例子:nignx 会以什么形式存留在 Linux 里
- 一个 CPU 核一次只能运行一个进程
- 进程由 PID 和 PPID 唯一识别
- 进程的结构是一个树形的结构
常用命令
- 查看抢占优先级
- S是状态
进程调度
问:如何在有限的核数的 CPU 上运行那么多进程的
调度过程和状态
调度原则
- 每个进程的运行时间差不多相等
- 逻辑CPU轮询
- 消耗时间 正比于 「进程量」
系统调用
文件系统
—— 负责持久化数据的子系统
一切皆文件
- 套接字(socket)、文件目录……都是
- 好处:保证了操作 / 接口调用的统一
目录结构 —— 树状
问题:如何实现对用户统一调用接口的?
- VFS:中间的一个帮我们消除差异的软件
查看「文件系统类型」
文件读取流程
用户权限
用户账户
- 用户账户
- 用户组
相关命令:u groups uid
文件权限
RWX
- 文件类型
- 所有者
- 所有组
- 其他人
权限操作
应用程序
软件包
- 软件包管理
- 底层工具:安装删除
- 上层工具:数据搜索、依赖解析
一些对应关系
常用命令