免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1386 | 回复: 0
打印 上一主题 下一主题

有矢而发,触类旁通[内核学习的方法论]-- 转载自黄嘴企鹅Linux内核研究小组 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-10-11 15:00 |只看该作者 |倒序浏览
黄嘴企鹅论坛Linux内核版主的文章,很有引导性和启发性。
很值得读一读
有矢而发,触类旁通 -- by home_king@linuxsir.org(!= email address)
       
一.研究内核的目的
欲举其事,先正其道。要谈论内核的研读以及交流心得,前提必须得有一个恰当准确的目的,方能收获良多。
很多人都有这样一个疑惑,为什么要研究内核呢?我们又不是内核开发者(或许你将来就会成为Linus的助手:-)。此言差矣,众所周知,Linux包含两
层含义,一是内核,二是发行版本,前者乃核心精华,后者则是应用方案,二者皆不可废。知前者而略后者,思而不学也;略前者而知后者,学而不思也。
学习是循序渐进的,我们学习Linux,首先接触的就是各具特色的发行版本,简单轻松地入门,在学习的过程中逐渐对Linux框架有了一个初步的认识,浅
白地说,就是懂得了Linux世界的游戏规则。在你自身能力提高的同时,你会发现,进步的速率似乎在下降,为什么呢?那是因为你开启的只是自己的记忆力而
非智力,游戏规则是核心的高层封装,它给予用户乃至程序员的接口是友好的(相信很多人都陶醉于unix的工具哲学吧),而这类接口经多年的黑客熏陶,已经
变得十分成熟,我等只需识记便可。举个例子吧,发行版本之间最大的差异就是它们各自的FHS(文件目录框架)以及软件包管理机制,如gentoo的
portage(port树)以及emerge,再如Debian的apt-get,用户只要精通此二处,即可在该发行版本的世界里驰骋无束,而精通的途
径却都一样,那就是识记规则。当你已经对这些规则滚瓜烂熟时,你会发现,自己只是从用户角度看问题,而不是从开发者的角度看问题,两者的差异在于你在
Linux世界里是否具有创新力。
对比国内外的Linux开源社区,不难发现,我们的水平依然很低,很多创新点都是外国开源社区所占据的,我们只能跟着走,处于被动的局面。还是举例来说明
问题吧,比如你是一个lfs爱好者,初学者则按lfs文档行事,而老鸟们呢,则参阅lfs
hints来改造自己的系统,殊不知,此二者都非国人所力,lfs文档是外国人开发的,lfs
hints也是外国人写的。在这里并不是说我们不应该引进技术,而是从中看到,我们的确缺乏创新力;再比如新内核采纳的udev(大家应该不会陌生吧),
它只是一个逻辑I/O层规则,乃是devfs进化而来,大家同在开源社区下学习,为什么外国人能思考出创新的udev呢?归根到底,那是我们不重视最底层
的研究,立足于高层封装看问题,与使用微软的玩具软件何异?我们老是谈论要自己的发行版本,可是有没有想过,发行版本不仅仅是把现成的内核用shell和
X包装起来而已,如果是这样的话,redhat也不会成为世界上最流行的发行版本之一(redhat在开源社区大多数项目中都占有一席位,每每以创新技术
来退出新的发新版本)。
可见,立足于内核看问题,目的有二:
1.学一当十,把握创新的主动权
2.知其然而知其所以然,从深层次理解Linux,使之在发行版本的日常操作能触类旁通,游刃自如
二.研究内核的境界
[color="red"]读-->[color="green"]练-->[color="blue"]开发
现在国人研读内核的境界大多在于[color="red"]读(包括我自己:-),而我们的最终境界是开发,也就是成为内核的开发者之一,这样才真正使中国的Linux事业独立自主!
三.研究内核的态度
Linux内核发展了十年有余,体系变得十分庞大,可谓盘根错乱,我们读它,往往很难直接掌握全局,结合我们的实际情况,最好是从日常使用Linux发行
版本的过程中,遇到一些很奇妙的问题,就应该结合它来研读内核的相关项,触类旁通。比如说,开机遇到kernel
panic的问题,我们就应该找到,在init/main.c中的init函数就有这样一句话,然后顺着这个思路找出解决办法,最终发现原来必要的文件系
统模块必须编译进内核(自举性矛盾),又比如说,我们要改造发行版本的运行级别脚本,就应该注意到,有些脚本是运行在内核态的(如linuxrc),大多
数脚本是运行在用户态的(rcX.d),了解了大方向,就好编码了。
[color="blue"]游击散打,逐渐包围大中心
当然,内核研读还得有好用的工具辅助才行,还要有资料(站在巨人的肩膀上,看得更远嘛),这些我都会用置顶帖给出。
有矢而发,触类旁通。希望大家多多交流,共同进步。
ps:我就任斑竹,定竭尽全力,整顿版务,各位兄弟互勉之。谢谢!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/652/showart_1719.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP