标题 Lisoleg的昨天、今天和明天 作者 lisoleg (enthusiast) 时间 01/24/02 12:31 PM Lisoleg的昨天、今天和明天 老铁 The Internet Archive和Alexa Internet联合制作的Internet Archive - Wayback Mac hine(时间机器)能够让你查到从1996年至今的很多网站的历史快照,就象在图书馆里查 询以往报纸的萎缩胶卷一样。 在这个网站上,用户能够查询到各种各样的网站,包括重 要的和已经消失的,只要输入一个URL然后选择该系统提供的时间。 我看到了lisoleg. yeah.net(lisoleg最初的域名)在1999年11月24日的样子(http://web.archive.org/web /20010922052124/lisoleg.yeah.net/) ,这是web.archive.org能够提供的最早的liso leg的版本。但实际上,lisoleg的成立时间是1999年1月13日。 最初lisoleg成立的动机 很朴素,我个人出于学习Linux内核的需要,在网络上搜寻相关的资料,发现非常零乱分 散,就进行了一些简单的整理并想将这些资料与大家分享,同时也想团结爱好者的力量 进行Linux内核的深入研讨学习,当时虽然正是BBS最热闹的事情,但过多的安装使用问 题淹没了Linux版,并且BBS方式也不易共享文档图片,不易建立索引进行检索,因此, 我决定发起一个资料共享和代码研讨的小组,取名为Linux源代码学习小组,相应的英文 为LInux SOurce LEarning Group,抽取出头几个字母,构成一个比较好记好读的单词, 那就是Lisoleg了,我将这个虚构的单词翻译为“利索脚”。这段历史可以参见我于199 9年7月25日在计算所做的报告http://www.lisoleg.net/download/lisoleg19990725.zi p。Lisoleg先是使用163的免费空间,但不久就挂靠在北京Linux俱乐部和中国信息技术 论坛-阿卡AKA(http://www.aka.org.cn)之下了,有了比较稳定的栖息地。 经过3年多 的发展,Lisoleg在国内有了一定的知名度和稳定的读者,现在的域名稳定为http://ww w.lisoleg.org/ 和 http://www.lisoleg.net/ ,都是核心成员、我的师兄老五花钱租 用的,内容架设在http://www2.linuxforum.net/ 上,在egroups上申请了邮件列表,在 Linux论坛上担任了Linux内核版的副斑竹,与Linux论坛合作开展内核文档与源码分析( http://www2.linuxforum.net/ker_plan/index/main.htm)。老五和我共同设计了Lisol eg的Logo,一只奔跑的企鹅-为了和“利索脚”扣上题。老五还编写了Lisoleg的远程维 护管理代码。 但实际上,直到目前Lisoleg也是以资料收集整理为主,原创的东西不多 ,而且进展缓慢,成员的时间毕竟都很有限,可以花在Lisoleg维护上的时间非常少,源 码学习本身也是非常艰苦的个人劳动。Lisoleg虽然一开始就致力与源代码的市集模式的 学习注释和文档编写,但没有持久,也没有多少成果,倒是lucian yao、opera和jkl等 后来在Linux论坛发起的Linux内核分析运动有了一些成果,但最近也停滞了,lucian y ao给出的辞职声明(http://www.linuxforum.net/forum/showflat.php?Cat=&Board=Kst udy&Number=211097&page=0&view=collapsed&sb=5&o=7&part=all)大家可以看看。我尤 其赞同他的这几句话:“当Understanding the Linux Kernel和Linux内核源代码情景分 析出版后,我们再写详细的系统的内核文档意义不大。 “这里面有对矛盾,如果不了解 全局,那么不太可能对细节理解得深刻,反过来,如果不熟悉细节,又很难把握全局。 所以经常是在全局和细节中转换。” 我之所以对这两句话特别有认同感,是因为我也类 似的看法并且已经想到了相应的解决办法,这就是我去年在科大BBS上最早提出来的til s项目。 “掌握复杂的操作系统,可以从静态的原始数据结构开始,分析其各种结构单 元如何组合成复杂结构,复杂的结构又是如何瓦解回归到原始结构的。根据对象的复杂 性,每一次可以从不同的起点,不同的层次,不同的局部,不同的侧面进行分析,从而 不断完善自已对系统把握。(jkl)”书籍和文档给出了全局和整体结构原理的阐述解释, 但对于在源码上从事开发工作的人员(特别是现在涌现的大量的嵌入式Linux开发人员) 来说,还是远远不够。 Tils的目标就是提供最多的细节,细到每个函数、每个数据结构 。 源代码注释工程tils(http://csrv.hpac.dhs.org/~eagle/),它的目标在交叉索引引 擎 lxr (http://lxr.linux.no)的基础上建立一个各种源代码尤其是 Linux 源代码的通 用注释和阅读平台,使之成为国际知名自由软件项目,并方便大家学习linux kernel s ource code,吸引大量黑客注释源码、提出疑问,推动内核发展。Tils要发展必须学习 linux kernel的市集模式,每个内核子系统甚至每个文件可能都需要一个负责人。这里 实际上有两个项目,一个是注释工程,一个是tils本身,都有大量的技术文档亟待解决 。比如,对某个函数/数据结构注释提问时,可能要涉及其他几个函数/数据结构,这些 函数/数据结构甚至在多个不同的文件中,那么提问者/注释者该怎么办?HTML的超级链 接功能只是一个粗躁的答案。又比如,想同时注释阅读多个版本的Linux内核怎么办?又 比如,现在不少内核C文件都有几十K,下载缓慢,注释和提问有迅速膨胀的危险,怎么 办?又比如,如果让使用者尽快找到他要提的问题是否已有别人的解答。解决好这些问 题,tils就是一个非常实用的复杂大系统,可能每个开发者每天都要频繁访问(数据库 读的压力一定很大),一定是非常知名的自由软件项目,一旦进入良性循环,那么更多 的黑客高人就会加入开发(这要求注释和问题尽量使用英文),tils也将更好地服务Linu x社区。并且,tils有一大优点,相对传统的书写文档的源码分析项目,它施加给黑客的 工作量比较小,只是简单的对某个变量某个函数的简单说明,进入难度较小,更多的黑 客和爱好者可以参与进来,保证了项目的生命力。 Tils的作者是科大的鹰翔高空Eagle (eaGle@ustc.edu),他在tils.0.11b的README中有如下一席话: “tils, tour in lin ux source, is coded in perl cgi script. Originally, when we were reading lin ux kernel source with lxr, linux cross reference, Lao_Tie asked me, 'Can we make a program to implement all the functions of lxr, and also give us, linu x users, a convenient way to insert our own notes, or maybe questions into L inux Source ?' And this leads to tils. Based on lxr, we can get the full-fun ctions of lxr. And through an interface of database, we use mysql, we can no w insert our own things into linux kernel source.” 目前,由于种种原因,tils 的开发基本停滞,有愿意参与的可以联系Eagle(eaGle@ustc.edu)。 此外,我还有两个 想法。一个是开始GCC的代码注释阅读,编译器的复杂程度不亚于Linux内核,而且也是 非常重要的系统软件,但GCC的文档资料极其匮乏;另一个是Linux Kernel Mailing Li st的收集整理,这可以认为是源码注释工程的一部分,源于老五的感概,他在研究SMP、 查询Google时找到Alan Cox等人在94年左右在LKML上的帖子,发现当时大家的困惑就是 我们现在的困惑,所以我们目前争论的东西很可能是LKML早已停止争论有了定论的东西 ,我们不要再抱怨在LKML没人理你了,是你没有遵循黑客的礼仪,承认自己落后,去看 看老的邮件吧,但LKML一样垃圾不少,需要整理。 BNN向我要这篇东西,我说了近四页 ,可以交帐了,我的ppcboot在Sandpoint板上还有问题,PCI卡的驱动也有毛病,我得去 调试我的代码了。 下面是yawl的不同意见: 1 tils has a version control problem, how to keep up with the newest kernel is a big problem. It`s a unsolved problem in software development, especially for a system that have few design like linux. here is a word from http://www.kohala.com/start/rstevensfaq.html: "Don't spend too much time on an extremely detailed outline. I guarantee 90% of it will change as you write. " I think it`s why linus do not encourage too much comments--clean code itself is always better. 2 Build a faq from maillist is a good idea, first there should be a lkm faq--In fact I want to write it for a long time, but do not have time(maybe). LisoLeg:Linux Source Learning Group(http://www.lisoleg.net)