Chinaunix首页 | 论坛 | 博客
  • 博客访问: 261674
  • 博文数量: 94
  • 博客积分: 526
  • 博客等级: 中士
  • 技术积分: 687
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-09 10:02
文章存档

2014年(1)

2013年(10)

2012年(83)

发布时间:2012-12-28 19:48:50

   内核空间调用用户空间的应用程序,通过kernel_execve()实现。    其实现比较简单:    arch/arm/kernel/sys_arm.c      在init/main.c中最后会通过kernel_execve()来调用用户空间的init进程(如/sbin/init, /etc/init, /bin/init等)。    在kernel/kmod.c中的___call_usermodehelper()函数,会通过kernel_exe......【阅读全文】

阅读(2413) | 评论(0) | 转发(0)

发布时间:2012-12-28 17:34:12

转载的,写的挺好,挺全面。   摘要:在进行设备驱动程序,内核功能模块等系统级开发时,通常需要在内核和用户程序之间交换信息。Linux提供了多种方法可以用来完成这些任务。本文总结了各种常用的信息交换方法,并用简单的例子演示这些方法各自的特点及用法。其中有大家非常熟悉的方法,也有特殊条件下方可使用的手段。通过对比明确这些方法,可以加深我们对Linux内核的认识,更重要的是,可以让我们更熟练驾御linux内核级的应用开发技术。  内核空间(kernel-space) VS 用户空间(user-space) 作为一个Linux开发者,首先应该清楚内核空间和用户......【阅读全文】

阅读(779) | 评论(0) | 转发(0)

发布时间:2012-12-26 17:18:52

linux内核之文件系统   作者:harvey wang  邮箱:harvey.perfect@gmail.com       本文主要是基于百度文库的《Linux2.4.30内核文件系统学习(多图).doc》和360doc的《Linux内核虚拟文件系统》修改而来,当然还参考了其他的一些文档,在此就不一一列出了。本来在看到这些文章后,都没有勇气再写点文件系统方面的东西了,这些文章实在太精彩了。最后还是鼓足勇气决定把整理的资料增加了一点自己的理解写下来,主要目的是让各位高手看看我的理解是否正确,另外就是备忘。  ......【阅读全文】

阅读(765) | 评论(0) | 转发(0)

发布时间:2012-12-26 16:48:35

linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G字节(从虚拟地址 0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间)。因为每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享。于是,从具体进程的角度来......【阅读全文】

阅读(797) | 评论(0) | 转发(0)

发布时间:2012-12-26 16:20:23

编译完内核之后,会产生zImage,而把它直接导入0x30008000,会出现 Bad Magic Number.     查明是需要将内核加一个0x40大小的头,由mkimage工具来添加.mkimage在编译u-boot时在u-boot-1.1.6/tools下生成,可以为编译的内核添加头信息的.在bootm命令中会解析这个头,获得参数.zImage在编译内核时,在arch/arm/boot目录下生成。我们需要把zImage用mkimage工具处理一下。 mkimage 参数的意义如下:       &n......【阅读全文】

阅读(867) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册