linux中的mdev机制

 mdev是busybox自带的一个简化版的udev。
    作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的
    mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为"dev"的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建设备节点

    用法:
    1. 执行mdev前要挂载 /sys
    mount -t tmpfs mdev /dev
    mount -t sysfs sysfs /sys
    2.命令内核在增删设备时执行/sbin/mdev,使设备节点会被创建和删除
    echo /sbin/mdev > /proc/sys/kernel/hotplug
    3.设置mdev,让它在系统启动时创建所有的设备节点
    mdev -s

嵌入式linux文件系统中etc/fstab的内容如下

[plain] view
plain
copyprint?

  1. #device mount-point type options dump fsck order  
  2. proc /proc proc defaults 0 0  
  3. tmpfs /tmp tmpfs defaults 0 0  
  4. sysfs /sys sysfs defaults 0 0  
  5. tmpfs /dev tmpfs defaults 0 0  
  6. var /dev tmpfs defaults 0 0  

etc/fstab对etc/fstab的解释

1.    第1列是需要挂载的文件系统或存储设备

2.    第2列是挂载点

3.    第3列指定文件系统或分区的类型

4.    挂载选项,下面列出一些常用的选项

挂载选项:

auto: 系统自动挂载,fstab默认就是这个选项
ro: read-only
rw: read-write
defaults: rw, suid, dev, exec, auto, nouser, and async

5.    第5列为dump选项,设置是否让备份程序dump备份文件系统,0为忽略,1为备份。
6.    第6列为fsck选项,告诉fsck程序以什么顺序检查文件系统,0为忽略。

嵌入式linux文件系统中etc/init.d/rcS的的内容如下 

[plain] view
plain
copyprint?

  1. #!/bin/sh  
  2.   
  3. PATH=/sbin:/bin:/usr/sbin:/usr/bin  
  4. runlevel=S  
  5. prevlevel=N  
  6. umask 022  
  7. export PATH runlevel prevlevel  
  8.   
  9. #  
  10. # Trap CTRL-C &c only in this shell so we can interrupt subprocesse.  
  11.   
  12. mount -a  
  13. mkdir /dev/pts  
  14. mount -t devpts devpts /dev/pts  
  15. echo /sbin/mdev > /proc/sys/kernel/hotplug  
  16. mdev -s  
  17. mkdir -p /var/lock  

    关于热插拔:
    需要内核中支持hotplug
    编写mdev配置文件:/etc/mdev.conf
    该文件的作用是:mdev在找到匹配设备时自动执行自定义命令
    格式为:
    <device regex> <uid>:<gid> <octal permissions> [<@$*><cmd>]
    @ 创建节点后执行的
    $ 删除节点前执行的
    * 创建后和删除前都运行的

    如自动挂载U盘和SD卡脚本:
    sd[a-z][0-9]  0:0 0660  @/etc/hotplug/usb/udisk_insert
    sd[a-z]       0:0 0660  $/etc/hotplug/usb/udisk_remove
    mmcblk[0-9]p[0-9]  0:0 0660  @/etc/hotplug/sd/sd_insert
    mmcblk[0-9]        0:0 0660  $/etc/hotplug/sd/sd_remove
    当检测到类似sda1这样的设备时,执行/etc/hotplug/usb里的脚本,脚本的内容就是挂载和卸载U盘
    当检测到类似mmcblk0p1这样的设备时,执行/etc/hotplug/sd里的脚本,脚本的内容就是挂载和卸载SD卡

时间: 2024-09-17 03:35:58

linux中的mdev机制的相关文章

深入理解计算机系统-之-内存寻址(六)--linux中的分页机制

linux的分页机制 四级分页机制 前面我们提到Linux内核仅使用了较少的分段机制,但是却对分页机制的依赖性很强,其使用一种适合32位和64位结构的通用分页模型,该模型使用四级分页机制,即 页全局目录(Page Global Directory) 页上级目录(Page Upper Directory) 页中间目录(Page Middle Directory) 页表(Page Table) 页全局目录包含若干页上级目录的地址: 页上级目录又依次包含若干页中间目录的地址: 而页中间目录又包含若干页

linux中的阻塞机制及等待队列【转】

转自:http://www.cnblogs.com/gdk-0078/p/5172941.html 阻塞与非阻塞是设备访问的两种方式.驱动程序需要提供阻塞(等待队列,中断)和非阻塞方式(轮询,异步通知)访问设备.在写阻塞与非阻塞的驱动程序时,经常用到等待队列.   一.阻塞与非阻塞 阻塞调用是没有获得资源则挂起进程,被挂起的进程进入休眠状态,调用的函数只有在得到结果之后才返回,进程继续. 非阻塞是不能进行设备操作时不挂起,或返回,或反复查询,直到可以进行操作为止,被调用的函数不会阻塞当前进程,而

linux中的tasklet机制【转】

转自:http://blog.csdn.net/yasin_lee/article/details/12999099 转自: http://www.kerneltravel.net/?p=143 中断服务程序一般都是在中断请求关闭的条件下执行的,以避免嵌套而使中断控制复杂化.但是,中断是一个随机事件,它随时会到来,如果关中断的时间太长,CPU就不能及时响应其他的中断请求,从而造成中断的丢失.因此,内核的目标就是尽可能快的处理完中断请求,尽其所能把更多的处理向后推迟.例如,假设一个数据块已经达到了

深入理解计算机系统-之-内存寻址(四)--linux中分段机制的实现方式

linux中的分段机制 前面说了那么多关于分段机制的实现,其实,Linux以非常有限的方式使用分段.因为,Linux基本不使用分段的机制(注:并不是不使用,使用分段方式还是必须的,会简化程序的编写和运行方式),或者说,Linux中的分段机制只是为了兼容IA32的硬件而设计的.实际上,分段和分页在某种程度上显得有些多余,因为它们都可以划分进程的物理地址空间,分段可以给每一个进程分配不同的线性地址,而分页可以把同一线性地址,映射到不同的物理地址空间.与分段相比,linux更喜欢分页方式,因为: 当所

Linux 3.2中回写机制的变革

writeback机制模型 在Linux-3.2新内核中,page cache和buffer cache的刷新机制发生了改变.放弃了原有的pdflush机制,改成了bdi_writeback机制.这种变化主要解决原有pdflush机制存在的一个问题:在多磁盘的系统中,pdflush管理了所有磁盘的page/buffer cache,从而导致一定程度的IO性能瓶颈.bdi_writeback机制为每个磁盘都创建一个线程,专门负责这个磁盘的page cache或者buffer cache的数据刷新工

Linux中的冷热页机制简述_Linux

什么是冷热页?  在Linux Kernel的物理内存管理的Buddy System中,引入了冷热页的概念.冷页表示该空闲页已经不再高速缓存中了(一般是指L2 Cache),热页表示该空闲页仍然在高速缓存中.冷热页是针对于每CPU的,每个zone中,都会针对于所有的CPU初始化一个冷热页的per-cpu-pageset.  为什么要有冷热页?  作用有3点:  Buddy Allocator在分配order为0的空闲页的时候,如果分配一个热页,那么由于该页已经存在于L2 Cache中了.CPU写

Linux驱动之poll机制

上一篇文章中我们采用了中断方式来查询按键,当你仔细观察的时候,虽然我们已经睡眠了,但是read的函数一直在那里等待,一直休眠下去,有没有一种机制设置个时间,来自动唤醒呢?也可以被中断函数唤醒呢?答案是有的,就是这篇文章讲得poll机制. 上篇文章的链接:http://blog.csdn.net/qq_21792169/article/details/48415987 驱动程序: #include <linux/module.h> /*模块有关的*/ #include <linux/ker

FreeBSD 5.0中强制访问控制机制的使用与源代码分析(1)

本文主要讲述FreeBSD 5.0操作系统中新增的重要安全机制,即强制访问控制机制(MAC)的使用与源代码分析,主要包括强制访问控制框架及多级安全(MLS)策略两部分内容.这一部分讲述要将MAC框架与MLS策略用起来,应该做的一些工作,以及如何有效使用它们的问题. 强制访问控制(英文缩写MAC)是实现操作系统安全的一个重要的方法,现在几乎所有的安全操作系统都采用强制访问控制作为其核心安全机制之一.强制访问控制是对操作系统的各种客体(如文件.socket.系统FIFO.SCD.IPC等)进行细粒度

linux中的文件查找命令

linux中文件查找常用的有两个命令,分别是locate和find. #locate 根据locate数据库查找,不是实时查找,不是精确查找.速度比较快 #find 不根据数据库查找,实时查找,遍历目录查找,精确查找,速度慢. # locate 要查找的关键字 -n 只显示被匹配到的前10行. -c 统计被匹配到的结果总共有多少. locate是根据locate数据库进行查找的,所以速度比较快,如果一个文件刚存入linux系统,然后用locate进行查找,有可能会查找不到,因为locate的数据