摘要: 进程与程序 1.程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体。 2.进程:是一个执行中的程序,它是一个动态的实体。 进程四要素 1.有一段程序供其执行。这段程序不一定是某个进程所专有,可以与其他进程共用。 2.有进程专用的内核空间堆栈。 3.在内核中有一个task_struct 阅读全文
posted @ 2016-03-05 20:27 盛夏夜 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 内存管理子系统 1.虚拟地址与物理地址的映射 2.物理内存的分配 Linux虚拟地址空间分布 设备最后访问的一定是物理地址,但Linux系统中使用的都是虚拟地址。虚拟地址简单的来说就是程序中使用的地址。所以存在虚拟地址到物理地址之间的映射关系。 Linux系统支持的虚拟地址空间由硬件来决定。例如处理 阅读全文
posted @ 2016-03-05 18:51 盛夏夜 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 模块申明 1.MODULE_LICENSE(“遵守的协议”) 申明该模块遵守的许可证协议,如:”GPL”,”GPL v2”等 2.MODULE_AUTHOR(“作者”) 申明模块的作者 3.MODULE_DESCRIPTION(“模块的功能描述”) 申明模块的功能 4.MODULE_VERSION( 阅读全文
posted @ 2016-03-05 16:49 盛夏夜 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 内核模块示例 #inlcude <linux/init.h> #inlcude <linux/module.h> static int hello_init(){ printk(KERN_WARNING”hello_init\n”); return 0; } static void hello_ex 阅读全文
posted @ 2016-03-05 16:44 盛夏夜 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 什么是内核模块 Linux内核的整体结构非常庞大,其中包含的组件也非常多,如何使用这些组件。一种方式是把所有的组件都编译进内核文件,即zImage或bzImage,但这样会导致一个问题,占用内存过多。内核模块是一种能让内核文件本身并不包含某些组件,而是是在被需要使用的时候,动态地添加到到在运行的内核 阅读全文
posted @ 2016-03-05 16:41 盛夏夜 阅读(190) 评论(0) 推荐(0) 编辑