第1章 绪论
1. 名词解释
- POSIX:Portable Operating Systems based on Unix
- SMP:Symetric Multiprocessor,对称多处理器
2. Linux的特点
- 单块结构的内核:每一个内核层都被集成到整个内核程序中
- 编译并静态连接的传统Unix内核:可以动态地装载和卸载module,如驱动程序
- 内核线程:是一个能被独立调度的执行环境,区别于用户进程;
- 多线程应用程序支持:Linux用轻量级进程实现(lightweight process,LWP)
- 抢占式(preemptive)内核
- 多处理器支持
- 支持多个文件系统
3. 文件类型
3.1 索引节点
文件系统处理文件所需要的所有信息都包含在索引节点inode中
3.2 硬链接
硬链接之间平等;硬链接执行索引节点inode,一个文件的硬链接数量就是这个文件索引节点的索引数;
作用:防止误删文件
3.3 软链接
快捷方式,有指向性;
作用:方便对文件路径的操作
4. 可重入内核
4.1 进入内核态的三种途径
- 系统调用
- 异常处理(除0,缺页等)
- 中断程序
内核控制路径:通过上述三种方式进入内核的指令序列
4.2 内核控制路径的交错执行
① 用户态程序 -> 系统调用 -> (因为缺少资源导致)内核调度 -> 另一个内核进程
两条控制路径代表两个不同的进程在执行
② 系统调用 -> (因为缺少资源导致)异常处理
两个内核控制路径代表同一个进程在执行
③ 系统调用/异常处理 -> 中断
两个内核控制路径在同一个进程的可执行上下文中(其实有一个是中断上下文);
所花费的系统CPU时间都算给这个进程;然而中断处理程序无需代表这个进程。
④ 内核抢占
和①情况一致。
4.3 进程管理
① 孤儿进程
定义:父进程已被kill,该进程还存在,并将由init进程接管,调用wait回收子进程的资源;
危害:孤儿进程没有危害;
② 僵尸进程
定义:子进程执行结束,父进程并没有调用wait来回收进程资源;
原因:可能是父进程忘记调用wait,或者卡住了;
危害:僵尸进程过多,会占用系统资源(进程号有限),导致无法创建新进程;
解决:从父进程入手,保证调用wait回收子进程资源
5. 设备驱动程序
- 在Linux中,设备又称为设备文件,挂在虚拟文件系统下
- 每个设备都有自己的驱动程序,内核通过设备驱动程序控制设备
本文来自博客园,作者:moonのsun,转载请注明原文链接:https://www.cnblogs.com/moon-sun-blog/p/18638922
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?