1.《简单C程序生成的汇编代码分析》
2.《时间片轮转多道程序代码分析》(未完成)
3.《Linux内核启动过程start_kernel分析》
4.《库函数API和C语言汇编语言混合式编程》
5.《system_call中断处理过程分析》
6.《fork函数创建新进程过程分析》
7.《可执行程序的装载过程》(完成大部分)
8.《进程调度时机的跟踪分析》(未完成)
看到这门课即将推出还是在新年,当时就打定主意一定要报这门课,首先是因为这门课讲的内容我很感兴趣。我觉得作为一个软件开发者,应该在熟悉API、业务逻辑和开发工具的前提下,了解开发环境中操作系统的内核运行的机理。其次,在这门课之前我刚好也看过些汇编语言的基础知识,这门课的内容,涉及到汇编语言的部分,刚好可以作为一个比较复杂的实例,加深我对汇编语言的理解。
在这门课的学习过程中,我觉得最大的收获是学到了分析操作系统系统内核的方法,具体有两点:
内核分析必须要结合具体的程序进行分析,由于自己不是科班出身,之前对Linux内核的了解更多是基于书籍,比如《现代操作系统》,看书的时候只能记得概念,对于其具体实现则是一头雾水,看后感觉自己好像了解到操作系统的特点,模块的工作原理,落到实处则一处也无。跟着学这门课,我学会从分析最基本的程序功能与执行流程入手,反证之前学到的理论知识。我觉得这是非常有效的学习方法。手头还买过一本《Linux内核设计与实现》,之前总是翻不下去,不得要领,现在用着调试工具,特别是实验楼提供的linux源码,追踪起来非常方便,也有乐趣。
另外一方面,可能是由于性格使然,对于未知的内容,总是在心底有种紧张感,总是妄图掌握所有的细节。之前并没觉得有多么不妥,但是在学习内核分析的过程中,逐渐发现这种思维的局限所在。首先,精力是有限的,特别是在工作以后,不再有大块的时间可以挥霍,做任何事不得不功利的考虑产出比。过分的抠细节,理解函数的每一行代码,只是让自己感觉踏实,却忽视了函数间的调用关系,执行流程。并且,耗费了大量的时间去理解内核具体实现中一些折衷的办法,炫技般的代码,难以应用,容易过时。这门课对我的最大提示,就是把分析的精力花在20%的关键代码上。目前,我适应地很艰难,但我仍然要去适应。
学习这门课最大的遗憾,就是未能跟上进度。虽然我有记笔记,但是博客不等于笔记。到目前为止,仍有博客没写完,另有几篇是评价的时候还未完成。这里我承认我钻了空子。这是不对的。我这么做,只是希望自己能参与到互评的环节,读到其他人的好文章,学习学习。在这里,再次向受到影响的同学道歉。

By:昆仑雪狐

原创作品转载请注明出处

《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

Linux内核学习总结的更多相关文章

  1. Linux 内核学习的经典书籍及途径

    from:http://www.zhihu.com/question/19606660 知乎 Linux 内核学习的经典书籍及途径?修改 修改 写补充说明 举报   添加评论 分享 • 邀请回答   ...

  2. 关于Linux内核学习的误区以及相关书籍介绍

    http://www.hzlitai.com.cn/article/ARM9-article/system/1605.html 写给Linux内核新手-关于Linux内核学习的误区 先说句正经的:其实 ...

  3. linux内核学习之二:编译内核

    在linux内核学习系列的第一课中讲述了搭建学习环境的过程(http://www.cnblogs.com/xiongyuanxiong/p/3523306.html),环境搭好后,马上就进入到下一环节 ...

  4. linux内核学习之一:环境搭建--安装Debian7.3

    本系列文章假设读者已对linux有一定的了解,其实学习linux内核不需要有很深的关于linux的知识,只需要了解以下内容:linux基础知识及基本shell命令:现代操作系统的基本概念:C语言和gc ...

  5. Linux内核学习笔记-2.进程管理

    原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  6. Linux内核学习笔记-1.简介和入门

    原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  7. Linux内核学习趣谈

    本文原创是freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/9304991 从大二开始学习Linux内核,到现在已经 ...

  8. Linux 内核学习经验总结

    Linux 内核学习经验总结 学习内核,每个人都有自己的学习方法,仁者见仁智者见智.以下是我在学习过程中总结出来的东西,对自身来说,我认为比较有效率,拿出来跟大家交流一下. 内核学习,一偏之见:疏漏难 ...

  9. Linux内核分析——Linux内核学习总结

    马悦+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 Linux内核学习总结 一 ...

  10. Linux内核学习笔记二——进程

    Linux内核学习笔记二——进程   一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器 ...

随机推荐

  1. SQL Server数据库备份:通过Windows批处理命令执行

    通过Windows批处理命令执行SQL Server数据库备份 建立mybackup.bat ,输入以下内容直接运行该脚本,即可开始自动备份数据库也可把该脚本加入windows任务计划里执行. --- ...

  2. php简单单例模式

    所谓单例模式,适用于使用一个对象可以完成所有的业务逻辑的类(一般不考虑继承的类) //单例模式 function getInstance($class_name){ //创建一个存储各种需要单例的类的 ...

  3. [原创]在Docker上部署mongodb分片副本集群。

    一.安装docker. 请参考:http://www.cnblogs.com/hehexiaoxia/p/6150584.html 二.编写dockerfile. 1.在根目录下创建mongod的do ...

  4. cron表达式使用详解

    Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month ...

  5. HDFS副本存放策略

    在client向DataNode写入block之前,会与NameNode有一次通信,由NameNode来选择指定数目的DataNode来存放副本.具体的副本选择策略在BlockPlacementPol ...

  6. WPS for Linux(ubuntu)字体配置(字体缺失解决办法)

    启动WPS for Linux后,出现提示"系统缺失字体" . 出现提示的原因是因为WPS for Linux没有自带windows的字体,只要在Linux系统中加载字体即可. 具 ...

  7. Bootstrap<基础一> CSS 概览

    HTML 5 文档类型(Doctype) Bootstrap 使用了一些 HTML5 元素和 CSS 属性.为了让这些正常工作,您需要使用 HTML5 文档类型(Doctype). 因此,请在使用 B ...

  8. Liunx下安装jdk

    Liunx下安装jdk 1.首先进入ROOT权限  命令 sudo su  输入密码进入 root 权限 2.看下当前liunx 是否存在jdk 环境 ,输入命令 javac,如果存在则会显示对应jd ...

  9. Storm进程通信机制

    storm的worker进程之间消息传递机制图: 每个worker都有一个独立的监听进程,监听配置文件中配置过的端口列表supervisor.slots.ports,topology.receiver ...

  10. IOS中的Block与C++11中的lambda

    ios中的block 可以说是一种函数指针,但更确切的讲,其实际上其应该算是object-c对C++11中lambda的支持或者说是一个语言上的变体,其实际内容是一样的,C++的lambda我已经有简 ...