陈莉君

陈莉君的博客

她的个人主页  她的博客

一起读源码

陈莉君  2010年01月05日 星期二 09:18 | 2836次浏览 | 28条评论

 

需求:对现有的虚拟文件系统 sysfs proc 进行分析,搭建自己的文件系统用于安全审计。另外,借助于 proc 文件系统,对给定的进程进行保护。

参与人员:研究生以及对内核感兴趣的教师    

----------------------------------------------------------------

“源码在前,了无秘密”,面对海量的源代码,从何着手?你的需求是什么,需求所涉及的知识体系有哪些?

   Unix/Linux 操作系统设计中,最经典之处莫过于文件系统。从 70 年代设计之初,到如今 30 多年过去了,其可扩充性、健壮性、适应性依然优雅地泛着其光彩。其核心设计思想 - “提供机制而不是策略”更是淋漓尽致得以体现。随便拿出一个文件系统(比如 proc )的代码阅读,可以从代码级感受这种思想的灵活应用。

   阅读源代码,入口的路径在哪里?为什么面对代码时,你有一种茫然或者不知所措?

   回想一下 knuth的经典 公式:程序 = 算法 + 数据结构。

   在文件系统中,应当有哪些数据结构?或者说,按照面向对象的设计思想,一个文件系统中,其主要对象是什么?超级块( Superblock ),索引节点( Inode ),目录项( Dentry )和文件(file)是四个主要的对象,对其数据结构的细致理解和分析是驾驭文件系统代码的必要条件。其具体含义以及数据结构之间的关系详见《 Linux 操作系统原理与应用》一书第八章“ VFS 中的数据结构”一节的内容。

    初次接触这些数据结构,也有混沌的感觉。可是大家一起阅读代码,各人可以发挥自己的优势。在各种疑惑和对代码的一次次深入中,不同人所知道的知识点不断的拼凑起来,一个个的知识孤岛在讨论中衔接在一起,逐步形成一个可触及的解惑片段。因为疑惑的逐步解开,就有一种探究后的满足和继续追究下去的愿望,在此过程中,一边欣赏着编码者灵感的再现,一边感叹着设计者的匠心独运,有时候,更大的困惑又在心头升起

 

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
孔建军

回复 孔建军  2010年01月20日 星期三 00:28

活动已经发布在 http://www.zeuux.com/event/content/86/
欢迎大家到时候参加!

可以现在这里讨论一下怎么举办这次活动!

2条回复

  • 陈莉君

    回复 陈莉君  2010年01月20日 星期三 09:34

    这次的主要目的是让大家参与,我只是一个旁观者,让大家感受围绕一个主题阅读源代码的乐趣。以需求为出发点,阅读源代码就有了方向性。

    1条回复

小溪

回复 小溪  2010年01月12日 星期二 22:04

顶~~

0条回复

胡锦涛

回复 胡锦涛  2010年01月12日 星期二 18:31

我觉得读完源码能画出清晰架构图就十分了得了.

0条回复

邱旭培

回复 邱旭培  2010年01月06日 星期三 20:08

对于直接阅读源代码,目前我还没什么经验

0条回复

杨国文

回复 杨国文  2010年01月06日 星期三 09:40

俺是个想参加 的菜鸟

0条回复

向东

回复 向东  2010年01月06日 星期三 00:22

我也想参加,目前先弄弄架构吧,但同时觉得拜读一下内核的代码对个人提高也很有必要。

3条回复

  • 徐继哲

    回复 徐继哲  2010年01月07日 星期四 17:35

    弄什么架构呢?

    2条回复

      • 向东

        回复 向东  2010年01月11日 星期一 13:30

        SOA,面向服务的架构,准备在suse11下用php和c语言结合一堆web服务器和db,memcache等来实现分布式服务架构模式,重构现有系统平台,优化服务出现的应用于存储紧密耦合导致应用与后端存储匹配严重不均,服务器负载和故障居高不下以及以前架构的容错性很差及其服务部署不灵活的情况,归根到底是”存储“对业务支撑出现的一系列问题!

        1条回复

          • 陈莉君

            回复 陈莉君  2010年01月12日 星期二 22:48

            这个方向不错。你有什么样的思路?目前已有的架构有什么样的缺陷?有相应的开源项目吗?明确的需求有哪些?很愿意就这些问题展开讨论。

            0条回复

夏武

回复 夏武  2010年01月05日 星期二 23:15

非常棒的计划。群体智慧有很多优势

0条回复

刘磊(V.L.)

回复 刘磊(V.L.)  2010年01月05日 星期二 16:41

global弄一次要好长时间,最后还是不能成功。

0条回复

曾睿

回复 曾睿  2010年01月05日 星期二 14:55

我也想

0条回复

電波系山寨文化科学家

回复 電波系山寨文化科学家  2010年01月05日 星期二 14:24

去年已经安排专人读源码了,可是杀叫源码呢?反汇编算不算?

0条回复

张增波

回复 张增波  2010年01月05日 星期二 11:04

我也想参加!

1条回复

  • 陈莉君

    回复 陈莉君  2010年01月05日 星期二 20:27

    说明一下,这是最近我和我研究生一块读源代码的感受,分享出来,希望大家就近组织,这样使得源代码的阅读变得有趣而有探索性。

    0条回复

熊永平

回复 熊永平  2010年01月05日 星期二 11:04

至今都记得很多年前学unix文件系统时的文件块分配和文件cache内存块分配算法,很经典。后来的linux更是加入了很多的面向对象风格,用vfs来支持各种“子”文件系统。希望有机会可以和陈老师一起来交流学习。

0条回复

唐苏雅

回复 唐苏雅  2010年01月05日 星期二 10:21

ding!

0条回复

徐继哲

回复 徐继哲  2010年01月05日 星期二 10:18

非常好的计划,陈老师,我们如何具体组织一下?

3条回复

  • 陈莉君

    回复 陈莉君  2010年01月05日 星期二 20:29

    我月底可能去北京,到时组织一下。对Linux内核有一定了解,而且对某部分感兴趣,提前发布一下通知,大家有一定基础后,感受一下一块读代码的乐趣

    2条回复

      • 回复 匿名用户 2010年01月06日 星期三 08:56

        确定行程告诉我一声。安排约会。呵呵。

        0条回复

      • 徐继哲

        回复 徐继哲  2010年01月05日 星期二 23:36

        好的,提前计划好时间,争取提前2周发布活动,方便大家安排时间一起参加交流。

        0条回复

边江

回复 边江  2010年01月05日 星期二 10:03

想参加。

0条回复

许德练(阿练)

回复 许德练(阿练)  2010年01月05日 星期二 09:57

Hi 陈老师,能不能具体谈谈这个需求和实现方法“对现有的虚拟文件系统sysfs,proc 进行分析,搭建自己的文件系统用于安全审计” ?

1条回复

  • 陈莉君

    回复 陈莉君  2010年01月06日 星期三 16:22

    因为做安全审计方面的课题,因此设想着自己设计一个文件系统用于对审计规则的配置,这些还在探索中。一个文件系统的搭建完全可以仿照已有的文件系统。

    0条回复

welfear

回复 welfear  2010年01月05日 星期二 09:32

我也想。

0条回复

陈根宝

回复 陈根宝  2010年01月05日 星期二 09:30

想参加,怎么联系你?

0条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号