摘要:
//内核模块测试程序#include <linux/config.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/mm.h>static unsigned long p = 0;static int __init shao_init(void){ //分配共享内存(一个页面) p = __get_free_pages(GFP_KERNEL, 0); SetPageReserved(virt_to_page(p)); printk("<1> 阅读全文
posted @ 2010-08-20 18:18
郭—大—侠
阅读(775)
评论(0)
推荐(0)
摘要:
动态的将内核空间的物理地址和大小传给用户空间。本文也演示了内核空间和用户空间进行通信可以使用的两种常用方法:proc文件系统和mmap共享内存。整个内核模块,在模块插入时建立proc文件,分配内存。卸载模块的时候将用户空间写入的内容打印出来。以下是内核模块的代码和用户空间的测试代码。/*This program is used to allocate memory in kerneland pass the physical address to userspace through proc file.*/#include <linux/version.h>#include < 阅读全文
posted @ 2010-08-20 15:33
郭—大—侠
阅读(3639)
评论(0)
推荐(0)
摘要:
在设备驱动程序中动态开辟内存,不是用malloc,而是kmalloc,或者用get_free_pages直接申请页。释放内存用的是kfree,或free_pages. 对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。 内核空间中,从3G到vmalloc_start这段地址是物理内存映射... 阅读全文
posted @ 2010-08-20 15:14
郭—大—侠
阅读(604)
评论(0)
推荐(0)
摘要:
解决gedit打开txt文件乱码问题用Configuratio Editor (命令:gconf-editor),修改apps->gedit-2->preferences->encoding中的 auto_detected, 把GB18030,GBK,GB2312等添加进去就行了当然还要将添加的这几项移动到最上面就ok了,当然对于.c .h文件也是可以的!!Good Luck!!解决pdf中文不显示的问题::安装poppler-data,cmap-adobe-cns1和cmap-adobe-gb1打开文件“/etc/fonts/conf.d/49-sansserif.conf 阅读全文
posted @ 2010-08-20 09:03
郭—大—侠
阅读(282)
评论(0)
推荐(0)

浙公网安备 33010602011771号