标签:
~写在前面
首先非常感谢孟老师的悉心讲解,使用这种新颖的教学方式(MOOC课堂+博客),也感到非常有幸随着老师的思路对linux的内核进行了初步的系统学习。结合代码和gdb调试工具跟踪分析对linux内核的一些重要机制有了更深刻的理解。
一 学习Linux内核的心得Linux系统的理解
liunx内核是一个十分庞大的操作系统,代码量动辄上千万行,并且还会越来越大,所以通过阅读代码来了解他的机制是不现实的。但是光拿着一本讲linux工作机制的书,比如那本引为经典的巨厚的《深入理解linux内核》,读着读着就越有一种不真实的感觉,总有一些疑问:真是这样吗?为什么是这样?通过老师的这种“机制和代码”并行的方法,确实让我学到了很多,对有些机制理解的更透彻,比如进程切换过程,中断处理过程,以前因为考试的需要,对这几个经典的过程的几个重要步骤背的很熟了,在学习过程中,通过相关的代码,有一种“它就是这样,本来就是这样”的感觉。
关于心得,除了前面所说的学习方法(机制+代码)外,还有一点就是带着疑问去学,它需要什么功能,然后去想linux是怎么实现的,最后去找相关的代码验证。
关于对linux的理解,由于没有学习过Windows等其他桌面系统,所谓没有比较就没有发言权,还是借用别人的成果吧:
抛开Android不谈,Linux是一个以开发者为中心的操作系统,Windows是以消费者为中心的操作系统。这是最根本的区别,也是Linux相对于Windows的优势/劣势所在。
另外一个很重要的特点,是Linux是由业余爱好者们拼凑而成的。它不像Windows/Mac一样有一个明确的『开发目标』,甚至不像BSD一样有一个『Base System』,Linux不过是一个内核,和一堆从不同地方搞来/开发,试图满足不同开发者自身需要的应用程序。只不过碰巧发现,这些工具组合组合,能够满足大多数人的大多数需要而已。
了解这两个特点之后,Linux的很多优点/缺点,也变得很容易理解。
所以,如果你发现你自己更多的是『开发者』而非『消费者』,或者你所做的任务碰巧是人们一般用Linux完成的,那么你自然会发现Linux的优点。就我个人来说,即便有VS,我还是经常会觉得windows下项目的配置太繁琐;即便有homebrew,我也常常会觉得OS X下的软件管理比较奇怪。而在Linux下,我可以轻易的使用到最新版本的几乎所有开发工具。 ------知乎
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。 ----来自百度
二 学习目录
下面就是我这段时间以来的学习收获:
linux内核学习之二 一个精简内核的分析(基于时间片轮转)
三 总结
通过这两个多月来的学习,最大的收获感觉就是找到了一种学习linux的新方法(机制+代码),和带着疑问去代码中寻找答案。当然,最大的遗憾就是学习时间太短,还有许多想了解的内容还没有来的及学习,比如文件系统,内存管理,内核定时器的实现,只能自己摸索了。。。。
再次感谢孟老师的辛苦工作。。。。
by:方龙伟
原创作品 转载请注明出处
《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
标签:
原文地址:http://www.cnblogs.com/-flw/p/5440180.html