Linux下/dev/mem和/dev/kmem的区别

转载 2015年07月06日 19:37:09

Linux下/dev/mem和/dev/kmem的区别:

/dev/mem: 物理内存的全镜像。可以用来访问物理内存。

/dev/kmem: kernel看到的虚拟内存的全镜像。可以用来访问kernel的内容。

作用:

前者用来访问物理IO设备,比如X用来访问显卡的物理内存,或嵌入式中访问GPIO。用法一般就是open,然后mmap,接着可以使用map之后的地址来访问物理内存。这其实就是实现用户空间驱动的一种方法。

后者一般可以用来查看kernel的变量,或者用作rootkit之类的。参考1和2描述了用来查看kernel变量这个问题。

后者可以读取自己的程序空间4G空间的值。

相关文章推荐

Linux下使用/dev/mem控制GPIO模拟SPI时序控制LCD5110

关于如何使用/dev/mem直接控制GPIO口参见我的另一篇博客:http://blog.csdn.net/tq384998430/article/details/53161192。这篇文章将使用GP...

linux下的/dev/mem设备认识和使用

最近在为了读取一个寄存器的值动心思时,突然发现,一个好用的工具”r”,源码...

利用/dev/mem和mmap读写linux内存的通用C代码及原理

使用 hexedit /dev/mem 可以显示所有物理内存中的信息。 运用mmap将/dev/mem map出来,然后直接对其读写可以实现用户空间的内核操作。 以下是我写的一个sample #inc...

Linux开发--mmap映射/dev/mem内存

/dev/mem是linux下的一个字符设备, 源文件是kernel/drivers/char/mem.c, 这个设备文件是专门用来读写物理地址用的。里面的内容是所有物理内存的地址以及内容信息。通常只...

利用mmap /dev/mem 读写Linux内存

使用 hexedit /dev/mem 可以显示所有物理内存中的信息。 运用mmap将/dev/mem map出来,然后直接对其读写可以实现用户空间的内核操作。 以下是我写的一个sample #inc...

linux下实现对framebuffer(/dev/fb0)的截屏操作

在linux系统中,使用framebuffer来提供用户态进程直接操作显示屏的功能. 在嵌入式系统开发中,需要对显示屏的内容进行截取,实现一个lcd截屏工具实现对显示屏内容的截取,存储为bmp格式....

linux下的dev和HAL

Linux HAL (Hardware Abstraction Layer)的工作原理                        转载时请注明出处和作者联系方式:http://blog.cs...
  • zxy_cs
  • zxy_cs
  • 2012年02月24日 10:24
  • 351

linux下的/dev/shm/

/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果。 ...

Linux下Qt编译出现"cannot find -lGL"以及无法安装libgl1-mesa-dev

在Linux系统下安装好Qt5,打开Qt Creator新建一个最简单的工程,编译却出现"cannot find -lGL"错误。 在网上搜索解决方法,找到的方案基本上是...

/dev/mem可没那么简单

这几天研究了下/dev/mem,发现功能很神奇,通过mmap可以将物理地址映射到用户空间的虚拟地址上,在用户空间完成对设备寄存器的操作,于是上网搜了一些/dev/mem的资料。网上的说法也很统一,/d...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下/dev/mem和/dev/kmem的区别
举报原因:
原因补充:

(最多只允许输入30个字)