`
zhangzuanqian
  • 浏览: 269950 次
  • 来自: ...
社区版块
存档分类
最新评论

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文件,它定义了一些常用设备的别名.


 关系图如下:

 

参考:

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gaagaa2004/archive/2006/01/05/571383.aspx

分享到:
评论

相关推荐

    linux设备文件和驱动

    Linux 设备文件和驱动 Linux 设备文件是 Linux 操作系统中的一种特殊文件,它们用来访问和控制硬件设备。设备文件可以是字符设备、块设备或网络设备,每种设备文件都有其特定的文件属性和设备号。字符设备和块设备...

    Linux设备文件.pdf

    Linux设备文件是Linux操作系统中用于表示设备的一种特殊文件。Linux系统将所有的设备都抽象为文件,包括硬件设备和虚拟设备,这种设计使得Linux对设备的操作可以像文件操作一样简单和统一。下面将详细介绍Linux设备...

    linux设备文件.pdf

    Linux设备文件系统有多种类型,包括devfs、udev和mdev。devfs是在Linux 2.4内核中引入的,用于动态管理设备文件,但由于存在一些未修复的bug和作者停止维护,它在2.6内核中被udev取代。udev是目前广泛使用的设备管理...

    Linux设备文件简介.pdf

    Linux设备文件是操作系统与硬件设备交互的关键元素,它们在Linux文件系统层次结构中扮演着特殊的角色。设备文件位于`/dev`目录下,是Linux内核识别和管理硬件设备的一种抽象表示。理解设备文件的工作原理对于任何...

    linux设备文件系统——udev程序详解

    如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了...

    Linux系统设备文件读写_linux系统中设备文件读写_

    在Linux操作系统中,设备文件是系统与硬件交互的接口,它们位于`/dev`目录下。设备文件可以被程序读取或写入,就像普通文件一样,但它们实际上是与硬件设备进行通信的一种方式。本篇将深入探讨Linux系统中设备文件的...

    linux系统设备文件读写.zip

    在Linux操作系统中,设备文件是系统与硬件交互的接口,它们位于`/dev`目录下。设备文件可以分为字符设备(character device)和块设备(block device),分别用于支持流式传输(如键盘、串口)和块级访问(如硬盘、...

    通过Linux系统调用对设备文件进行操作

    文章将从理论基础出发,介绍Linux设备文件的基本概念、系统调用机制以及如何通过ioctl函数获取系统当前的时间日期信息。 ### Linux 设备文件概述 在Linux操作系统中,所有硬件设备都被抽象成文件的形式,即设备...

    使用 udev 高效、动态地管理 Linux 设备文件

    总的来说,udev是Linux设备管理的重要组成部分,它提供了一种强大且灵活的方式来管理和命名设备文件,从而简化了系统管理员的工作,并提高了用户对设备管理的直观性。了解并熟练掌握udev的使用,对于Linux系统的维护...

    udev 高效、动态地管理 Linux 设备文件.

    - **设备文件**:在 `/dev` 目录下,设备文件是与硬件设备通信的接口,可以是字符设备或块设备。 - **devfs**:早期的设备管理系统,已被 udev 替代。 - **sysfs**:一个虚拟文件系统,提供了一个查看和操作内核...

    linux下udev设备文件管理介绍资料.pdf

    Linux 设备文件管理介绍 Linux 设备文件管理的历史可以追溯到 Linux 早期,当时设备文件仅仅是一些带有适当的属性集的普通文件,由 mknod 命令创建,文件存放在 /dev 目录下。后来,Linux 采用了 devfs,一个基于...

    Linux设备驱动详解第二版

    第5章 Linux文件系统与设备文件系统 92 第6章 字符设备驱动 118 第7章 Linux设备驱动中的并发控制 139 第8章 Linux设备驱动中的阻塞与非阻塞I/O 161 第9章 Linux设备驱动中的异步通知与异步I/O 176 ...

    Linux设备驱动开发详解:基于最新的Linux4.0内核,linux设备驱动开发详解pdf,LINUX源码.zip

    此外,了解Linux设备文件系统(/dev)的运作方式也很重要。设备在系统中表现为特殊的文件,用户通过读写这些文件与硬件交互。设备文件分为字符设备(c)和块设备(b),并分配相应的设备号。 最后,对于Linux源码的...

    Linux设备树文件结构与解析深度分析.docx

    在 Linux 设备树文件结构中,设备树文件可以被编译成二进制文件,以便 kernel 和 uboot 识别。本文将深入探讨设备树文件的结构和 kernel 解析设备树的原理。 1. 设备树简介 设备树是描述单板资源和设备的一种文本...

    linux 实验报告 文件系统与文件管理.pdf

    使用 ls –l /dev 命令可以查看 /dev 目录的信息,包括块设备文件和字符设备文件等。 6. 查看文件内容 使用 cat 命令可以查看文件的内容。 7. 文件链接 使用 ln 命令可以创建文件链接,然后使用 ls 命令来查看...

    浅谈Linux设备驱动.pdf

    在 Linux 操作系统下,有三类主要的设备文件类型:字符设备、块设备和网络设备。字符设备和块设备的主要区别是:在对字符设备发出读、写请求时,实际的硬件 I/O 一般就紧接着发生了,块设备则不然,它利用一个块系统...

    LINUX设备驱动程序(Linux.Device.Driver)

    2. 设备文件:字符和块设备驱动通常会创建一个设备文件,用户空间的应用程序通过打开、读写这些设备文件来与硬件通信。 3. DMA(直接内存访问):对于提高I/O性能,许多设备使用DMA技术。驱动程序需要设置DMA传输,...

    《Linux设备驱动开发详解-基于最新的Linux4.0内核》源码

    《Linux设备驱动开发详解-基于最新的Linux4.0内核》是一本深入探讨Linux设备驱动程序开发的专业书籍,其源码提供了丰富的实践示例,帮助读者理解如何在Linux操作系统下编写和调试驱动程序。该书涵盖了从基础概念到...

Global site tag (gtag.js) - Google Analytics