wu_songshan 发表于 2015-08-13 11:01

请帮助

我们对linux内核做了抽取(相当于反向设计吧)
因我们能力有限,知道这里大咖多,来此请大家帮助。真心希望能够得到大伙的帮助
程序逻辑抽取-linux之内核源代码bricktou.com(这是网址,这里不允许链接)

nswcfd 发表于 2015-08-13 21:42

有点意思,能简单介绍一下工作原理吗?
怎么把“代码”映射为“逻辑”?
形式上看把变量和函数参数去掉了,保留了控制结构和每个call?

bricktou.com/idx_error.html 这一页说,可以检查“逻辑错误”。
那么逻辑错误又是怎么定义的?

wu_songshan 发表于 2015-08-14 10:56

简单的工作原理就是编译原理。
我们认为:从看代码开始,到理解系统,实际要经过多个层次的升华。根据我的经验(保险核心业务,代码量接近300M),如果从一个点看进去,很快就会被代码缠住,很难做到把握全局。这就好比看金字塔,如果你在塔下看,你只能仰视它,且只能看到的局部。但如果你能够俯视它,你首先看到的是全貌,包括他的整体结构和周边环境,然后再根据需要,详细观察局部。这就是认识系统的两种截然不同的途径。
如何做到俯视系统呢?我们认为,你在观察系统时的“关心点”能够放在它“做了什么”,而不是放在它是“怎么做的”,你就会轻松很多,套用一句名言:通向广场的路不止一条。
关于代码和逻辑的映射,一般情况下,对于一句代码,我们的大脑会经过一连串的转化,然后总结出一句话,这算是看懂了这句代码(实际就是逻辑)!是吧?以下只是我的方式(不能代表大多数):看到符号->代表的意思(多数情况在大脑中会是转化为中文意思),未知->查找意思(可能找不到,留下未知继续向下看或在达到一个量级就放弃了)。之所以看不懂,是由于我们不知道符号代表的意思,或着是查询符号代表的意思要费很大的周折,于是越看越累。我看代码的表现是头疼。
形式上看把变量和函数参数去掉了,保留了控制结构和每个call?非也!
关于逻辑错误:一般情况下代码常犯的逻辑错误有十几种(别人总结的),但有些我们不认可,比如 变量未使用,实际上这是早期硬件条件不足提出的,对于现在吗?当然养成好的编程习惯是重要的!我们目前主要检查的是“条件语句包含赋值语句”,此种情况也可认为是笔误(我在工作中尽量把别人的错误轻描淡写),但造成的影响确实较深。对于“不达代码”也可以检查,但有误告,需要手工过滤。

nswcfd 发表于 2015-08-14 11:41

如何做到俯视系统呢?我们认为,你在观察系统时的“关心点”能够放在它“做了什么”,而不是放在它是“怎么做的”,你就会轻松很多,套用一句名言:通向广场的路不止一条。
之所以看不懂,是由于我们不知道符号代表的意思,或着是查询符号代表的意思要费很大的周折,于是越看越累
非常赞同

wu_songshan 发表于 2015-08-19 21:03

linux内核反向设计更新到4.1.6
本版整理了“调度”

wu_songshan 发表于 2015-09-02 09:46

内核抽取更新到v4.2
本次整理了“进程创建”
期待你的完善

mordorwww 发表于 2015-09-05 16:03

做逆向?
根据代码自动生成设计文档和需求文档?

firocu 发表于 2015-09-05 16:56

持保留意见. lz可以搞搞.
页: [1]
查看完整版本: 请帮助