您的位置:首页 > 运维架构 > Linux

《linux内核分析》期末总结

2016-04-19 21:12 351 查看
魏昊卿 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

一、知识归纳与总结

1、知识点总结(xmind脑图)



2、我对linux的理解

类Unix系统

内核公开自由

基础:内核、C库、工具集、系统的基本工具

支持windows系统——完整的图形用户桌面环境

关于linux内核:

操作系统负责完成最基本功能和系统管理部分。这些部分包括内核、设备驱动程序、启动引导程序、命令行Shell或者其他种类的用户界面、基本的文件管理工具和系统工具。

内核态:

内核有时被称为管理者或操作系统核心,内核=中断服务程序+调度程序+内存管理程序+网络、进程间通信等系统服务程序。

一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限。(内核空间)

系统调用:

在系统中运行的应用程序通过系统调用来与内核通信。

当一个应用程序执行一条系统调用,我们说内核正在代其执行。

应用程序被称为通过系统调用在内核空间执行,内核被称为运行于上下文中。

应用程序完成其工作的基本行为方式——应用程序通过系统调用陷入内核。

中断机制:

异步的中断信号->中断号->中断服务程序->程序调用

处理器的三种活动:

用户空间-用户进程

内核空间-进程上下文

内核空间-中断上下文

二、我的体会

这次mooc的学习时间不长,但是已经囊括了很多知识点,最主要的是感觉每个星期的学习都伴随有一次实验,能够自己动手跟踪linux内核代码,感觉对其理解更加深刻。但是,也正是由于这几个星期的学习,我才发现linux真的不是很容易学,它的整个运作机制几乎包含了我们目前所学的有关计算机的所有原理,如果要真正融会贯通可能真的不是这几次网课和课堂上的一本书能够解决的。这段学习期间,在孟宁老师的推荐下我还学习了《深入理解linux内核》这本书,配套我们学习的进度进行研读,确实受益匪浅。

三、作业总结

第一周:从分析简单的汇编代码了解计算机是怎样工作的(重点学习堆栈的变化)

第二周:了解操作系统是怎样工作的(重点学习进程的启动和切换)

第三周:构造一个简单的linux系统(分析start_kernel函数)

第四周:系统调用的工作机制(了解三层皮:系统调用API xyz()函数,int 0x80+系统调用号——system_call,中断服务程序sys_xyz())

第五周:系统调用(system_call的中断处理过程)

第六周:进程的描述和进程的创建(重点关注fork系统调用)

第七周:可执行程序的装载(可执行文件和execve系统调用)

第八周:进程的切换和系统的一般执行过程(重点分析switch_to)

四、《Linux内核设计与实现》读书笔记

第一二章:Linux内核简介、从内核出发

第三章:进程管理

第四章:进程调度

第五章:系统调用

《深入理解计算机系统》第七章:链接

第十八章:调试

五、我的收获和遗憾

收获:通过这两个月的学习,我觉得自己已经掌握了linux内核的精髓,并且配合《深入理解Linux内核》和《Linux内核设计与实现》这两本书,我对很多细节上的东西也能够有所了解。因为是几个班的同学一起选了这个课,所以也比其他人多了优势:我们可以随时交流没有学懂的地方,这样学习的进度加快了很多,也能够分享到更多优秀的人的意见。而且在学习过程中因为加入了老师的课程群,老师会在里面分享一些思想,也有同学的一些问题和看法,整个课程下来,觉得自己的想法开阔了很多。

遗憾:在学习过程中因为之前基础的浅薄导致很多地方没有听懂,现在把这部分视频整理保存下来,配合其他资料一起学习。不过也因为上个学期已经学过《深入理解计算机系统》,现在在孟宁老师的mooc课堂上学习也没有想象中那么困难。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: