【学习笔记01】趣谈linux操作系统之系统综述
哪有什么岁月静好,只不过有人替你负重前行。而操作系统就扮演了这样一个负重前行的角色
硬件组成
对于一台电脑,拆开来看,有鼠标键盘、显卡显示屏、CPU、内存、硬盘、网卡…
但仅有硬件组成的电脑,还不能直接使用。"硬件 + 操作系统"才算是我们通常说的电脑,以后的学习主要围绕linux系统,这个话题展开。我们首先必须承认操作系统的重要性。
想理解外包公司一样理解操作系统
刘超老师将操作系统类比成一家外包公司。确实很形象,加深了我对linux系统的理解。
内核对于操作系统,相当于公司的老板,老板是不轻易干活的(一般有很多部门),所以linux系统中也有很多子系统。对应关系有:
linux系统 | 外包公司 |
---|---|
用户 | 公司的客户 |
内核 | 公司的老板 |
系统调用 | 公司的办事大厅 |
设备管理系统 | 公司的客户对接和交付部门 |
网络管理系统 | 公司的对外合作部门 |
进程管理系统 | 公司的项目管理部门 |
内存管理系统 | 公司的会议室 |
文件系统系统 | 公司的档案室 |
其他:程序
相当于项目计划书
,进程
相当于正在进行的项目
。
“点击QQ事件”
为了更好的理解linux的运作机制,老师分析了"用户点击qq"事件。分为如下几个阶段
阶段一:用户点击图标
对于linux而言,驱动捕捉到用户点击事件,产生中断。cpu调用到驱动事先安排好的中断处理函数。
对于外包公司而言,对接人员记录客户提出的需求,进行项目开发的计划。
阶段二:系统加载进程
对于linux而言,将qq的程序文件从硬盘加载到内存,内存上以进程启动。这个阶段需要思考几个问题:
1. 硬盘上的文件如何管理?
2. 内存空间上的进程如何管理?
3. 多进程如何实现?
4. 进程自身如何实现功能?
硬件上的数据有文件系统
进行统一管理;进程在内存空间上的映射由内存管理系统
完成;多进程的实现通过进程管理系统
;系统对进程提供统一的接口,实现核心功能。这层接口称为系统调用层
。
对于外包公司而言,从档案库中取出项目计划书,成立项目组,划分会议室,完成立项的过程。然后执行项目,通过办事大厅处理业务,和各个部门打交道。这些都是动态的过程。之后就比较好理解了。
阶段三:进程调出对话框
对于linux而言,进程调出显示对话框,进程->显卡驱动->显示界面
对于公司,这里显卡驱动相当于客户的交付人员,项目组通过交付人员将项目的成果交付给用户。
阶段四:用户操作输入框
用户在输入框输入,字符立即显示,键盘驱动->进程->显卡驱动->显示界面
对于公司,就是对接人员处理客户不断提出的需求–交付人员交付的过程
阶段五:用户按回车发送
对于linux系统,用户按下回车键,网络发送到远程的另一个用户,键盘驱动->进程->网卡驱动
对于公司,有时候为了实现需求,需要与其他公司的交互,通过对外合作部门。
最后
以一张图片概括我对这篇文章的理解
对于课堂练习,找出linux源码中几个子系统所在的目录(参考同学给出的答案)
linux内核:https://www.kernel.org/
- 系统调用 kernel/
- 进程管理 kernel/, arch//kernel
- 内存管理 mm/, arch//mm
- 文件系统 fs/
- 设备系统 drivers/char, drivers/block
- 网络系统 net/