Linux 设备文件
来源:互联网 发布:java上下文 编辑:程序博客网 时间:2024/04/29 03:41
Linux 设备文件
1. 模块(驱动程序)
模块(module)是在内核空间运行的程序,实际上是一种目标对象文件,可以动态装载到系统中作为内核的一部分运行。
Linux下对于一个硬件的驱动,可以有两种方式:
1.1 直接加载到内核代码
启动内核时就会驱动此硬件设备。
1.2 以模块方式加载
编译生成一个.o文件。当应用程序需要时再加载进内核空间运行。
2. Linux系统的文件类型
Linux文件系统包括:
文本文件;二进制文件;目录文件;连接文件;设备文件;管道文件(用于进程间通信)
3. Linux 设备文件
L i n u x将外设看作一个文件来管理, 用户使用外设就像使用普通文件一样。
设备文件存放在/ d e v目录下,它使用设备的主设备号和次设备号来区分指定的外设。主设备号说明设备类型,次设备号说明具体指哪一个设备。
e.g / d e v / f d 0
主设备号: f d是软盘驱动器( f l o p p y d i s k )
次设备号: 0是软盘驱动器编号
Linux下的/dev 目录中有大量的设备文件。主要是块设备文件和字符设备文件。
2.1 块设备文件
块设备的主要特点是可以随机读写,而最常见的块设备就是磁盘,如/dev/hda1 、/dev/sda2、/dev/fd0等。
2.2 字符设备文件
同块设备一样,我们一般都可以用service kudzu start命令来自动增加、删除或修改字符设备。最
常见的字符设备是打印机和终端,他们可以接受字符流。
/dev/null是一个非常有用的字符设备文件,如果将程序的输出结果重定向到/dev/null,则看不到任何输出信息。
3. Linux硬件驱动架构
Linux是这样来进行硬件驱动的:
3.1 加载驱动模块文件
加载的过程就是设备向系统注册,成功后系统反馈一个主设备号。
e.g insmod *.o
3.2 驱动根据主设备号在/dev下创建设备文件
mknod用于创建
3.3 访问设备
应用程序通过open, read, write等命令完成对设备的访问
/etc/modules.conf文件,它定义了一些常用设备的别名.
关系图如下: (其中驱动模块是以.ko结尾的文件如果没有依赖其它的内核模块可以用insmod挂载,如果涉及到其它内核模块,可以用modprobe挂载)
- Linux 设备文件
- Linux设备文件简介
- Linux 设备文件
- Linux设备文件概述
- Linux设备文件简介
- Linux设备文件简介
- Linux 设备文件
- Linux设备文件简介
- Linux设备文件简介
- linux设备文件实现
- Linux设备文件简介
- Linux 设备文件
- linux设备文件
- Linux设备文件简介
- Linux设备文件简介
- Linux 设备文件
- Linux设备文件管理
- Linux设备文件简介
- NEFU要崛起——第5场 B - President's Office
- 一致性 hash 算法( consistent hashing )
- 【转】android Manifest中的常用权限
- 伪分布式hadoop平台上hbase的安装配置
- Tomcat一步步实现反向代理、负载均衡、内存复制
- Linux 设备文件
- CCS工程中使用EMCV所需做的配置和修改(独家!)
- java位操作符总结
- 基于交换芯片的五元组过滤功能
- 优秀程序员不得不知道的20个位运算技巧
- mysql分表的3种方法
- LINUX-C成长之路(四):运算符
- 【创业者活动】运营弱关系型社区以及创业者交流聚会[2012年12月]
- Java 学习笔记23:关于Java Session使用