Compile Linux Module

在学习内核的时候总是有一种在学习理论的感觉。应该很多东西都实验不了。比如说内核的寄存器、全局变量等等。像内核空间的地址在正常的用户空间就根本接触不到。 但是当我看到了Linux的模块的时候,我发现这个问题解决了!我们完全可以通过插入一个自定义的模块来了解内核态的情况。 于是,今天依样画葫芦写了一个helloworld的模块。代码如下: hello.c [coolcode lang=”cpp”]#include “linux/init.h”#include “linux/module.h”MODULE_LICENSE(“GPL”);static int hello_init(void){printk(“Hello,world!n”);return 0;}static void hello_exit(void){printk(“Good Bye!Exit!n”);}module_init(hello_init);module_exit(hello_exit);[/coolcode] Makefile:[coolcode]obj-m += hello.odefault:make -C /usr/src/linux SUBDIRS=$(PWD) modulesclean:rm -f .*.cmd *.mod.c *.o *.ko -r .tmp*[/coolcode]很奇怪的Makefile,不是吗?当然,这个是2.6内核专用的。更奇怪的是,我make的时候出了好多错: make -C /lib/modules/2.6.8-2-686-smp/build/ SUBDIRS=/home/marvel/programming/module modulesmake[1]: Entering directory … Continue reading

元旦

这是2006年的第一个晚上,可惜我却没怎么意识到这一点。除了BBS上的十大和日历中的1.1,没有任何迹象说明这是新的一年的开始。 这是我在哈尔滨待的第一个晚上,也是最后一个晚上。前者是就阳历2006年而言,后者是就阴历2005年而言。明晚,我已经在南下的火车上了。 很有意思,今年我是我们寝室第一个走的。而去年,我是最后一个走的。当时,我在寝室中一个人睡,那时候有传闻,一个研究生在寝室里一个人住,结果吃烧鸡中毒,死了。想想的确挺恐怖的,打开门,竟然发现一个死了有多日的人!而那个人,自己在over的时候,我不知道他的感觉是什么样的,但我知道那晚,我的确是比较害怕、无助。在二公寓这种连凌晨三点都会有人的“干净”的地方,谈鬼无非是自己吓自己。那晚我真的被吓倒了,至少是失眠了。要知道,失眠对于我来说,是上个世纪的事情了,这个问题以后再谈。回到现实,我要早点回去收拾东西。走在马路上,从来没有发现原来这里还是这么美。马路上因为下雪的关系,现在都是冰渣,在这种环境下,更准确的说应该是冰晶。它们在路灯下,在月光下,随着我的移动,不断变换着闪烁着,那效果,即使是最好的灯光师也无法做出来的。而我,仿佛是亲身经历一出绝伦的舞台剧。 是啊,我何尝不是在经历舞剧呢?悲剧、喜剧、正剧,每天都在上演,今天,也许我是主角,也许是一个路人甲。我不是一个好的演员,聚光灯下表现得不如平常放得开,但是毫无疑问,我会尽力演好我的角色。 人生不乏高潮,我不喜欢高潮,因为这意味着你必须为高潮付出很多铺垫,这通常很累。高潮越高,铺垫就越多。高潮之后,留下的是真空,高潮越高,真空越空。所以,我宁愿去演肥皂剧,每天都是温馨的生活,如果实在心里闷的慌,可以不经意的制造一些高潮,但是还是会围绕温馨这个主题。所以我特别想做阿甘那样的人,他的生活就是我的桃花源境。做人可以不考虑太多得失,想跑就跑,想停就停。做自己爱做的事情,也许这就是生活……