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

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

/dev/kmem 一般可以用来查看kernel的变量,或者用作rootkit之类的。

访问/dev/mem和/dev/kmem都需要root权限,否则普通用户就可以访问任意物理地址,进而破坏系统。

原文地址:https://www.cnblogs.com/fourstupidguns/p/11073616.html

时间: 2024-11-05 22:57:10

/dev/mem和/dev/kmem的区别的相关文章

通过/dev/mem只能访问高端内存以下的内核线性地址空间

http://blog.chinaunix.net/uid-20564848-id-74706.html   </proc/iomem和/proc /ioports对应的fops> <浅析pc机上如何将vmlinuz- 2.6.31-14-generic解压出vmlinux> fs_initcall(chr_dev_init); chr_dev_init ==> register_chrdev(MEM_MAJOR,"mem",&memory_fop

open(&quot;/dev/mem &quot;,O_RDWR | O_SYNC)

[摘要]/dev/mem是物理内存的全映像,可以用来访问物理内存,一般用法是open("/dev/mem",O_RDWR|O_SYNC),然后mmap,接着就可以用mmap的地址来访问物理内存,这实际上就是实现用户空间驱动的一种方法. http://blog.csdn.net/wlp600/article/details/6893636# 1.用户空间驱动优点 有几个论据倾向于用户空间编程,有时编写一个所谓的用户空间设备驱动对比钻研内核是一个明智的选择,用户空间驱动的好处在于: 1.完

/dev/mem可没那么简单

这几天研究了下/dev/mem.发现功能非常奇妙,通过mmap能够将物理地址映射到用户空间的虚拟地址上.在用户空间完毕对设备寄存器的操作,于是上网搜了一些/dev/mem的资料. 网上的说法也非常统一,/dev/mem是物理内存的全映像,能够用来訪问物理内存,一般使用方法是open("/dev/mem",O_RDWR|O_SYNC),接着就能够用mmap来訪问物理内存以及外设的IO资源,这就是实现用户空间驱动的一种方法.用户空间驱动听起来非常酷.可是对于/dev/mem,我认为没那么简

dev/null和dev/zero区别 以及换回设备(loopback device)

转自:http://blog.chinaunix.net/uid-20729677-id-765105.html dev/zero,是一个输入设备,你可你用它来初始化文件. /dev/zero------该设备无穷尽地提供0(是ASCII 0 就是NULL),可以使用任何你需要的数目--设备提供的要多的多.他可以用于向设备或文件写入NULL. 使用/dev/zero 像/dev/null一样, /dev/zero也是一个伪文件, 但它实际上产生连续不断的null的流(二进制的零流,而不是ASCI

Shell中的&gt;/dev/null 2&gt;&1 与 2&gt;&1 &gt;/dev/null 与&&gt;/dev/null 的区别

默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入).标准输出(输出到屏幕).标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2 .那么我们来看看下面的几种重定向方法的区别: >/dev/null 2>&1  //  实际上,应该等同于这样: 1>/dev/null 2>/dev/null ,默认情况下就是1,标准输出,所以一般都省略. 而&符号,后面接的是必须的文件描述符.不能写成2>1,这样就成了标准错误重定向到文件名为1的文件中了,

请查资料了解这些术语:/dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他们之间有什么区别?

1. 请查资料了解这些术语:/dev/hda, /dev/hdb, /dev/sda, /dev/sdb, 他们之间有什么区别? 答:hda一般是指IDE接口的硬盘,hda指第一块硬盘,hdb指第二块硬盘,等等:sda一般是指SATA接口的硬盘,sda指第一块硬盘,sdb指第二块硬盘,等等. 2. 为什么 du -b /etc/passwd  和 du -k  /etc/passwd  所得到的结果不一致呢?按道理讲1024b 等于 1k 阿铭的 /etc/passwd 为 1181b 而 使用

Shell中的&gt;/dev/null 2&gt;&amp;1 与 2&gt;&amp;1 &gt;/dev/null 与&amp;&gt;/dev/null 的区别

默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入).标准输出(输出到屏幕).标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2 .那么我们来看看下面的几种重定向方法的区别: >/dev/null 2>&1  //  实际上,应该等同于这样: 1>/dev/null 2>/dev/null ,默认情况下就是1,标准输出,所以一般都省略. 而&符号,后面接的是必须的文件描述符.不能写成2>1,这样就成了标准错误重定向到文件名为1的文件中了,

/dev/mem直接操作硬件寄存器

/******************************************************************************* * /dev/mem直接操作硬件寄存器 * 说明: * 在和左栋讨论如何处理iomux的时候,可以直接通过操作/dev/mem进行iomux的pin映射. * * 2017-9-27 深圳 龙华樟坑村 曾剑锋 ****************************************************************

/dev/null与/dev/zero区别

/dev/null和/dev/zero的区别 /dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着! /dev/zero,是一个输入设备,你可你用它来初始化文件.该设备无穷尽地提供0,可以使用任何你需要的数目--设备提供的要多的多.他可以用于向设备或文件写入字符串0. /dev/null--它是空设备,也称为位桶(bit bucket).任何写入它的输出都会被抛弃.如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶. if=/dev/zero of=./