
我们俩的联系方式![]()
Similar entries
友情链接导航 |
如何突破 kmalloc 的限制
由 qyb 于 星期六, 2007-09-22 20:34 发表
周五有人通过某渠道知道俺曾经做过 Linux 内核模块,于是特意来请俺午饭,问了我这个问题。kmalloc 好像是总共只能使用 2M 内存的,如果用更多的就只能用 vmalloc,但其性能很糟糕;我所知道解决办法非常简单:启动系统的时候增加一个 mem=xxx 启动参数,让内核不去管理后面的那部分内存,然后在模块里面把后面的内存映射过来获得一大块连续的地址,以后根据自己的需要在那块空间上操作就可以了。 不过说到后来,映射地址的函数是什么记不得了,回到计算机前 google 了好几个关键词,最后终于确认是 ioremap 这个函数,赶快记在 blog 里,避免下次遗忘。 回想起来作为一个 C 程序员其实挺幸运的:这意味着在计算机上你可以做任何事情(前提是一个 Linux or BSD 操作系统);而且随着经验增长,去理解其他语言不是难事——由 C 入 script 易,由 script 入 C 难。 再转载一篇好玩的报导:某人做了个统计,2.6.22 内核代码中共有 151,809 的结尾空白字符;如果提交 patch 把它们全部去掉的话,那么大概需要一个 15M,共 455437 行 的 patch。然后有人指出,在 2001 的统计是有 224,654 个结尾空白,看来这几年黑客们确实是在卖力地去除空格。突然想到一个问题,vim 或 emacs 都应该能配置成自动去除尾空格吧? |
最新评论
18 小时 39 分钟之前
18 小时 39 分钟之前
18 小时 40 分钟之前
18 小时 41 分钟之前
18 小时 41 分钟之前
18 小时 41 分钟之前
18 小时 41 分钟之前
18 小时 41 分钟之前
18 小时 42 分钟之前
18 小时 42 分钟之前