Challenge your imagination!
12
2:17 AM |
2008.8

最近在分析Linux内核模块与内核之间的版本耦合关系时,在实验中发现了一些有趣的结果:在同一Linux版本基础上经过不同裁剪的内核,甚至是在跨度不大的两个内核版本间,内核模块可以自由互用,而且内核本身似乎具备检查这种兼容性的能力。这与之前所知的情况是不同的。在我久远的记忆中,Linux的是依靠内核模块构建时自动产生的“vermagic”标识检查是否与当前内核版本一致的,如果不一致则拒绝加载。除非在insmod/modprobe时指定参数强制忽略vermagic,但这样做的代价是如果使用错误版本的内核模块就可能导致内核崩溃。

» Read more…




2
10:01 PM |
2008.7

如果宿舍里就你买了一瓶大宝,而且用了之后效果还挺不错。隔不久,你就发现最近这瓶大宝似乎用的有点快了,敢情是哪个哥们儿想买之前先试用一下?不巧的是,你恰好非常好奇这哥们儿是谁,想要搞一次秘密追踪。啥?指纹鉴别?噢,请原谅我没有那么专业的器材…… 不过土办法、馊主意我们还是有的:只要往大宝里掺和一点稀释过的辣椒水,隔天就等着找猴子屁股吧。^_+

扯太远了,其实本篇是想和大家分享一个在Linux下利用辣椒水的思路实现追踪程序被调用情况的小技巧。因为前段时间在分析Linux中各种内核模块被加载的方式、时间和源头。为此,我写了一个小小的Shell脚本:

» Read more…




28
8:38 PM |
2008.6

最近在把以前做的一个驱动程序在线加载技术移植到SuSE的AutoYaST安装系统中时遇到了一点小麻烦。AutoYaST采用SuSE自己编写的Linuxrc作为其初期引导部分,有别于大部分常规的initrd引导部分,Linuxrc是直接用C语言编写的,而且几乎没有提供什么扩充的灵活性。如此一来,就无法像以往移植到其它环境中那样单纯修改引导脚本就可以搞定。虽说直接修改Linuxrc的源码也可以达到这个目的,但这样就增加了后期维护的复杂度。唉,还真是个头疼的问题……

仔细分析了一下AutoYaST的设计,发现它至少还是允许增补驱动程序的,但仅仅支持最简单的用配置文件写死的insmod方式…… 好吧,只要还给了这个勉强算得上可扩充的途径,我一样能把驱动在线加载模块集成进来。由于只能固定调用某个驱动,所以必须从内核模块下手。把现有程序改造成内核模块显然是不现实的,好在Linux内核中还提供了这样一个调用用户态程序的接口:call_usermodehelper(),你可以在kmod.h中找到它。功能很简单,调用一个用户态程序,并且可以选择是否阻塞直到它执行完成。

» Read more…




14
8:08 PM |
2008.4

今天被朋友问及“Linux下可以替换运行中的程序么?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口答道“OK”。结果朋友发来一个执行结果:(test正在运行中)

# cp test2 test
cp: cannot create regular file `test': Text file busy

看起来是程序被占用,无法覆盖。于是自己又再做了几个实验:

(1)先rm删除正在运行的test,然后cp test2 test就没有错误了。
(2)先mv改名正在运行的test,然后cp test2 test也没有问题。

» Read more…




18
10:40 PM |
2006.9

  在上次初尝Remote KVM甜头的基础上,本着充分挖掘其实用价值的考虑,最近对这一技术又进行了深入的研究和尝试。

  在网上查阅了各种相关资料后,才知道上次所实现的串口终端功能的正式学名叫做“SREDIR (Serial Redirection,串口重定向)”,它是AMI在其最新的AMI BIOS 8系列中引入的一项新技术,可以看作是一个简化版的“Remote KVM”。主要实现了对字符界面显示输出及键盘输入的重定向到串口,它对于服务器群或者Blade Server来说是非常实用的功能。

  下面就让我来介绍一下如何利用这项技术实现从POST到Linux的全程串口控制。

» Read more…




15
9:38 PM |
2006.9

  前段时间因为嵌入式应用开发的需要,对Linux进行了一次大幅度的裁减。由于是初次接触Linux启动的核心部分,所以基本上还是对网上各种裁减方案的拼凑和整理,包含自己理解的部分实在很少。总的来说效果不算理想,后面还有很长的路要走。

这里就大致说说目前这个Linux裁减方案的“雏形”吧。

» Read more…




22
2:14 PM |
2006.8

Keywords: Wireless Router, Host Service, ASUS WL-700gE, Linux, Web Server

  看来我又一次低估华硕的创意了!

  还记得昨天提到的“关机也能BT——华硕的无限创意” ,这款产品特别的功能勾起了我的好奇心,今天在网上了解了一些详情后,发现原来它的功能还远不止“关机BT”那么单纯呢!

» Read more…