浅谈对Linux系统内核源代码的分析

Linux的最大的好处之一就是它的源码公开。同时,公开的核心源码也吸引着无数的电脑爱好者和程序员;他们把解读和分析Linux的核心源码作为自己的最大兴趣,把修改Linux源码和改造Linux系统作为自己对计算机技术追求的最大目标。

Linux内核源码是很具吸引力的,特别是当你弄懂了一个分析了好久都没搞懂的问题;或者是被你修改过了的内核,顺利通过编译,一切运行正常的时候。那种成就感真是油然而生!而且,对内核的分析,除了出自对技术的狂热追求之外,这种令人生畏的劳动所带来的回报也是非常令人着迷的,这也正是它拥有众多追随者的主要原因:

首先,你可以从中学到很多的计算机的底层知识,如后面将讲到的系统的引导和硬件提供的中断机制等;其它,象虚拟存储的实现机制,多任务机制,系统保护机制等等,这些都是非都源码不能体会的。

同时,你还将从操作系统的整体结构中,体会整体设计在软件设计中的份量和作用,以及一些宏观设计的方法和技巧:Linux的内核为上层应用提供一个与具体硬件不相关的平台;同时在内核内部,它又把代码分为与体系结构和硬件相关的部分,和可移植的部分;再例如,Linux虽然不是微内核的,但他把大部分的设备驱动处理成相对独立的内核模块,这样减小了内核运行的开销,增强了内核代码的模块独立性。

而且你还能从对内核源码的分析中,体会到它在解决某个具体细节问题时,方法的巧妙:如后面将分析到了的Linux通过Botoom_half机制来加快系统对中断的处理。

最重要的是:在源码的分析过程中,你将会被一点一点地、潜移默化地专业化。一个专业的程序员,总是把代码的清晰性,兼容性,可移植性放在很重要的位置。他们总是通过定义大量的宏,来增强代码的清晰度和可读性,而又不增加编译后的代码长度和代码的运行效率;他们总是在编码的同时,就考虑到了以后的代码维护和升级。甚至,只要分析百分之一的代码后,你就会深刻地体会到,什么样的代码才是一个专业的程序员写的,什么样的代码是一个业余爱好者写的。而这一点是任何没有真正分析过标准代码的人都无法体会到的。

然而,由于内核代码的冗长,和内核体系结构的庞杂,所以分析内核也是一个很艰难,很需要毅力的事;在缺乏指导和交流的情况下,尤其如此。只有方法正确,才能事半功倍。正是基于这种考虑,作者希望通过此文能给大家一些借鉴和启迪。

由于本人所进行的分析都是基于2.2.5版本的内核;所以,如果没有特别说明,以下分析都是基于i386单处理器的2.2.5版本的Linux内核。所有源文件均是相对于目录/usr/src/linux的。

要分析Linux内核源码,首先必须找到各个模块的位置,也即要弄懂源码的文件组织形式。虽然对于有经验的高手而言,这个不是很难;但对于很多初级的Linux爱好者,和那些对源码分析很有兴趣但接触不多的人来说,这还是很有必要的。

1、Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(的二个数为偶数,例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心。

时间: 2024-11-02 04:55:30

浅谈对Linux系统内核源代码的分析的相关文章

浅谈MySQL排序原理与案例分析_Mysql

前言 排序是数据库中的一个基本功能,MySQL也不例外.用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含使用排序.本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理,并介绍与排序相关的参数,最后会给出几个"奇怪"排序例子,来谈谈排序一致性问题,并说明产生现象的本质原因. 1.排序优化与索引使用 为了优化SQL语句的排序性能,最好的情况是避免排序,合理利

浅谈如何使用谷歌统计来分析网站流量数据

如果你主要做的是谷歌联盟的话,那么通过谷歌统计来分析网站流量就成了必须的任务了,当然现在众多的站长也非常热衷于流量数据的分析,可是很多人并不懂得如何分析自己的流量数据,只是看看自己网站每天的流量变化,这其实和不分析数据没什么两样,而且还在浪费时间,下面我们就从三个方面来谈谈谷歌统计应该如何分析网站流量数据! 谷歌统计的功能更合适我们广大的站长,因为涉及到的数据是很全面的,所以要对于不同的数据进行不同的分析,才能够让数据分析为我们提升网站用户体验度服务! 一:先看看具体的数据,一般包括昨天的IP,

浅谈哪些竞争对手的网站值得分析,如何分析

大家好,我是哈尔滨虚实网站设计,最近在网上看一些帖子,发现很多很多网站有波动,我的网站也是不例外,这个时候就是学会分析他们,但是如何分析为什么他的排名上升了,为什么我的排名下降了,这些都要知道,才有解决办法,但是不能所所有的网站都分析吧,要能找出几个典型的,那么如何去寻找就是我今天要说的. 其实在这个找的过程是非常的有学问的,直接影响我们分析的结构,所以一般我都是这么去寻找. 首先:搜索我们的主要关键词,看看有哪些网站的排名上去了,这里先不说他们用的是什么方法,我想做seo的每天可能都回去观察自

浅谈日常优化中我们需要分析的4个方面问题

笔者在日常的优化中总是喜欢在站长网看一些优化方面的文章,里面有许多的文章都可以使笔者感触颇多.最近在站长网闲逛的时候,笔者看到很多优化秘籍文章,对此也是有点感触,笔者一直都觉得优化是一个循序渐进的程序,期间需要我们不停的分析和调整需要不断的进行观察和调整.以得到更好的方向发展.下文中笔者给大家分享几点自己的观察与调整,希望对各位站长有所帮助. 从长尾关键词的排名情况分析站点结构 所有的站点优化都离不开长尾关键词,长尾关键词的存在与排名不仅仅可以为站点带来一个可观的流量,同时可以帮助我们找到站点存

浅谈用研与竞品分析方法之理论基础

人类学是关于人的研究;社会人类学(social anthropology)是研究人类社会的学科.社会人类学还可以理解成"文化翻译"(the translation culture),即理解陌生人群的那些貌似奇异的风俗.<他者的眼光--人类学理论入门> 田野调查被公认为是人类学学科的基本方法论,也是最早的人类学方法论.而什么是田野调查呢?王铭铭解释说:"参与当地人的生活,在一个有一个严格定义的空间和时间的范围内,体验人们的日常生活与思想境界,通过记录人的生活的方方面

浅谈如何从统计数据中分析出关键词优化效果

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 在网站优化的世界里,其中的目的就是让关键词在搜索引挚中排名更加的靠前,从而可以从搜索引挚获取更大的流量.自然网络上出现的SEO行业就是为了这个而生的.众所周知,国内大部分的SEO优化其实主要是针对百度这个搜索引挚的,那么对于分析关键词的优化效果如何其中最简单的方法就是借助统计工具,通过整理.分析一些相关的统计数据可以让咱们更准确的掌握住关键词

浅谈在Linux主机上安全设置织梦程序

织梦程序是站长朋友使用最多的http://www.aliyun.com/zixun/aggregation/10094.html">内容管理系统,它虽然管理方便,但是维护不好会出现安全故障.织梦程序配合以安全.稳定著称的Linux主机搭建,能够有效的防止黑客入侵,不过这是在设置正确的情况下.下面是详细介绍Linux虚拟主机下织梦程序的安全设置. LINUX主机目录权限设置 web服务器运行的用户与目录所有者用户要分开,比如apache运行的访问者为www,那么网站目录管理者就应该不能设置为

浅谈:linux cron 计划任务常用符号小结_linux shell

 [root@wx-a ~]# crontab --help crontab: invalid option -- '-' crontab: usage error: unrecognized option usage: crontab [-u user] file crontab [-u user] [ -e | -l | -r ] (default operation is replace, per 1003.2) -e (edit user's crontab) 编辑crontab 工作内

浅谈使用Linux主机建设网站注意事项

随着http://www.aliyun.com/zixun/aggregation/14840.html">虚拟主机的价格不断走低,低价虚拟主机行列中的海外主机就是其一.众所周知,海外主机一般属于Linux主机,为什么呢,Linux主机使用的操作系统是一种开源免费的程序,对版权要求极严的国外来说使用Linux操作系统可以省一大笔授权费用,进而降低运营成本. 一般情况下,Linux主机都会使用PHP+MySql+Apche搭建网站空间,而这种搭配对站长的建站知识要求非常高,如果站长不懂相关技