首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LINUX下 Udev详解[通俗易懂]

如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建的设备文件是动态的。但是devfs有一些严重的限制,从 2.6.13版本后移走了。目前取代他的便是文本要提到的udev--一个用户空间程序。 目前很多的Linux分发版本采纳了udev的方式,因为它在Linux设备访问,特别是那些对设备有极端需求的站点(比如需要控制上千个硬盘)和热插拔设备(比如USB摄像头和MP3播放器)上解决了几个问题。下面我我们来看看如何管理udev设备。 实际上,对于那些为磁盘,终端设备等准备的标准配置文件而言,你不需要修改什么。但是,你需要了解udev配置来使用新的或者外来设备,如果不修改配置,这些设备可能无法访问,或者说Linux可能会采用不恰当的名字,属组或权限来创建这些设备文件。你可能也想知道如何修改RS-232串口,音频设备等文件的属组或者权限。这点在实际的Linux实施中是会遇到的。 为什么使用udev 在此之前的设备文件管理方法(静态文件和devfs)有几个缺点: * 不确定的设备映射。特别是那些动态设备,比如USB设备,设备文件到实际设备的映射并不可靠和确定。举一个例子:如果你有两个USB打印机。一个可能称为 /dev/usb/lp0,另外一个便是/dev/usb/lp1。但是到底哪个是哪个并不清楚,lp0,lp1和实际的设备没有一一对应的关系,因为他可能因为发现设备的顺序,打印机本身关闭等原因而导致这种映射并不确定。理想的方式应该是:两个打印机应该采用基于他们的序列号或者其他标识信息的唯一设备文件来映射。但是静态文件和devfs都无法做到这点。 *没有足够的主/辅设备号。我们知道,每一个设备文件是有两个8位的数字:一个是主设备号 ,另外一个是辅设备号来分配的。这两个8位的数字加上设备类型(块设备或者字符设备)来唯一标识一个设备。不幸的是,关联这些身边的的数字并不足够。 */dev目录下文件太多。一个系统采用静态设备文件关联的方式,那么这个目录下的文件必然是足够多。而同时你又不知道在你的系统上到底有那些设备文件是激活的。 *命名不够灵活。尽管devfs解决了以前的一些问题,但是它自身又带来了一些问题。其中一个就是命名不够灵活;你别想非常简单的就能修改设备文件的名字。缺省的devfs命令机制本身也很奇怪,他需要修改大量的配置文件和程序。; *内核内存使用,devfs特有的另外一个问题是,作为内核驱动模块,devfs需要消耗大量的内存,特别当系统上有大量的设备时(比如上面我们提到的系统一个上有好几千磁盘时) udev的目标是想解决上面提到的这些问题,他通采用用户空间(user-space)工具来管理/dev/目录树,他和文件系统分开。知道如何改变缺省配置能让你之大如何定制自己的系统,比如创建设备字符连接,改变设备文件属组,权限等。 udev配置文件 主要的udev配置文件是/etc/udev/udev.conf。这个文件通常很短,他可能只是包含几行#开头的注释,然后有几行选项:

03
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux-简介篇

    什么是Linux Unix Unix是一个强大的多用户、多任务操作系统。 于1969年在AT&T的贝尔实验室开发。 UNIX的商标权由国际开放标准组织(The Open Group)所拥有。 UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。 Linux的概述 Linux是基于Unix的一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。诞生于1991 年10 月5 日。是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成。 Linux的历史 Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统, 所以在1990年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统。 Linux系统的应用 服务器系统 Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等; 嵌入式系统 路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等, 高性能运算、计算密集型应用。 Linux有强大的运算能力。 桌面应用系统 移动手持系统 Linux的版本 Linux的版本分为两种:*内核版本和发行版本;* 内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号 ; 发行版本是一些组织和公司根据自己发行版的不同而自定的 ; Linux的目录结构

    05

    Ubuntu常用命令

    sudo apt-get install 软件名 安装软件命令 sudo nautilus 打开文件(有root权限) su root 切换到“root” ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd - 回上一次所在的目录 cd ~ 或 cd 回当前用户的宿主目录 mkdir 目录名 创建一个目录 rmdir 空目录名 删除一个空目录 rm 文件名 文件名 删除一个文件或多个文件 rm -rf 非空目录名 删除一个非空目录下的一切 mv 路经/文件 /经/文件 移动相对路经下的文件到绝对路经下 mv 文件名 新名称 在当前目录下改名 find 路经 -name “字符串” 查找路经所在范围内满足字符串匹配的文件和目录 fdisk -l 查看系统分区信息 fdisk fdisk /dev/sdb 为一块新的SCSI硬盘进行分区 chown chown root /home 把/home的属主改成root用户 chgrp chgrp root /home 把/home的属组改成root组 Useradd 创建一个新的用户 Groupadd 组名 创建一个新的组 Passwd 用户名 为用户创建密码 Passwd -d用户名 删除用户密码也能登陆 Passwd -S用户名 查询账号密码 Usermod -l 新用户名 老用户名 为用户改名 Userdel–r 用户名 删除用户一切 tar -c 创建包 –x 释放包 -v 显示命令过程 –z 代表压缩包 tar –cvf benet.tar /home/benet 把/home/benet目录打包 tar –zcvf benet.tar.gz /mnt 把目录打包并压缩 tar –zxvf benet.tar.gz 压缩包的文件解压恢复 tar –jxvf benet.tar.bz2 解压缩 make 编译 make install 安装编译好的源码包 reboot Init 6 重启LINUX系统 Halt Init 0 Shutdown –h now 关闭LINUX系统 uname -a 查看内核版本 cat /etc/issue 查看ubuntu版本 lsusb 查看usb设备 sudo ethtool eth0 查看网卡状态 cat /proc/cpuinfo 查看cpu信息 lshw 查看当前硬件信息 sudo fdisk -l 查看磁盘信息 df -h 查看硬盘剩余空间 free -m 查看当前的内存使用情况 ps -A 查看当前有哪些进程 配置IP:vim /etc/network/interfaces eth0:外 eth1:内 DNS(114.114.114.114 8.8.8.8) DNS:vim /etc/resolv.conf 重启: /etc/init.d/networking restart 允许SSH:vi /etc/ssh/sshd-config 重启SSH: /etc/init.d/ssh restart 系统升级:sudo apt-get update

    02

    ubuntu经常使用的命令摘要

    1.df命令 # df -ha 显示所有文件和分区的使用 # df -h /dev/sda1 显示sda1磁盘使用率 # df -T 显示文件系统名称属于每个分区。区的格式类型(比方ext3) 注:h參数表示转换为M。G等人们经常使用的磁盘空间单位显示 2.du命令 # du -h src 显示src文件夹中各个文件(或者文件)所占用的磁盘空间 # du -hs /usr 显示usr文件夹中全部文件的总大小 # du -h test.c 显示test.c文件所占用的磁盘空间 3.dd命令 dd 是 Linux/UNIX 下的一个很实用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同一时候进行指定的转换。 # dd if=/dev/hdb | gzip > /root/image.gz 备份/dev/hdb全盘数据。并利用gzip工具进行压缩。保存到指定路径 注:“|”表示管道命令,是指“|”的左边执行结果是其右边的输入条件或者范围。如:history | grep date指从history这条命令执行的结果中显示包括有“date”的命令 # gzip -dc /root/image.gz | dd of=/dev/hdb 将压缩的备份文件恢复到指定盘 # dd if=/dev/fd0 of=disk.img bs=4M 备份软盘。读和写的块大小为4M 4.# uname -a 查看Ubuntu的版本号 5.cat命令 # cat -n test.c 显示整个test.c的内容,并对内容按行编号 6.lsmod命令 # lsmod 显示全部内核载入的模块 # lsmod | grep mptspi 显示内核载入的全部包括mtpspi的模块 7.# lsusb 查看USB设备 8.# cat /proc/cpuinfo 查看cpu的状态 9.# lshw 查看硬件信息 10.# fdisk -l 查看磁盘的信息 # fdisk /dev/sda 对磁盘sda(注意不是sda1,sda1是sda的一个分区)进行操作,包含新建分区。删除分区等,后面的操作按提示选项进行。 11.# free -m 查看当前内存使用情况 12.# ps -A 查看当前系统有哪些进程 13.# kill 进程号 中止一个进程 14.# kill -9 进程号 强制中止一个进程。kill 进程号不成功时能够使用 15.# top 查看当前进程的实时状况 # top -p 786 显示进程号为786的进程的实时执行状况 16.ifconfig命令 # ifconfig 显示网卡相关的信息 # ifconfig eth0 up 打开eth0网卡 # ifconfig eth0 down 关闭eth0网卡 # infonfig eth0 192.168.1.1 设置eth0的IP地址为192.168.1.1 17.启动停止服务命令 # /etc/init.d/服务名 restart/stop/start 重新启动/停止/启动一个服务 18.# whereis 文件名称 高速查找一个文件 19.# find 文件夹 -name 文件名称 在文件夹中查找某个文件名称的文件 find -name ‘*fb*’ 在当前文件夹下查找文件名称中包括”fb”字样的文件 find /usr -name ‘*fb*’ 在/usr文件夹下查找文件名称中包括”fb”字样的文件 20.# tail -n 6 文件名称 假设值的前面有 +(加号)。从文件开头指定的单元数開始将文件写到标准输出。假设值的前面有 -(减号)。则从文件末尾指定的单元数開始将文件写到标准输出。假设值前面没有 +(加号)或 -(减号)。那么从文件末尾指定的单元号開始读取文件。 # tail -n 6 文件名称 == # tail -n -6 文件名称 21.grep命令 # grep ‘test’ d* 显示全部以d开头的文件里包括test的行。

    02
    领券