Linux设备驱动基本概念

简介: Linux设备驱动基本概念

一、Linux 系统的设备文件

块设备文件、字符设备文件和网络设备文件

· 块设备文件通常指一些需要以块(如512 字节)的方式写入的设备,如IDE 硬盘、SCSI硬盘、光驱等。

· 字符型设备文件通常指可以直接读写,没有缓冲区的设备,如并口、虚拟控制台等。

· 网络设备文件通常是指网络设备访问的BSD socket接口,如网卡等。


二、设备号

设备号包含主设备号和次设备号,主设备号表明某一类设备,一般对应着确定的驱动程序;次设备号一般是用于区分标明不同属性,例如不同的使用方法,不同的位置,不同的操作等,它标志着某个具体的物理设备。高字节为主设备号和底字节为次设备号。


三、Linux输入/输出系统层次结构

image.gif


四、 驱动程序编译进内核的步骤

1. 将编写的源代码复制到 Linux 内核源代码的相应目录;

2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项;

3. 在目录的 Makefile 文件中增加对新源代码的编译条目。


五、Kconfig和.config

分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。 说简单点就是Kconfig生成配置菜单,

然后配置完的参数会在.config中生成。

假如选择编译成内核模块,则会在.config中生成一个CONFIG_HELLO_MODULE=m的配置,假如选择内建,就是直接编译成内核映像,就会在.config中生成一个CONFIG_HELLO_MODULE=y的配置

相关文章
|
10天前
|
存储 Linux API
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
在计算机系统的底层架构中,操作系统肩负着资源管理与任务调度的重任。当我们启动各类应用程序时,其背后复杂的运作机制便悄然展开。程序,作为静态的指令集合,如何在系统中实现动态执行?本文带你一探究竟!
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
|
7月前
|
NoSQL Unix Linux
Linux 设备驱动程序(一)(上)
Linux 设备驱动程序(一)
186 62
|
5月前
|
Ubuntu Java Linux
Linux操作系统——概念扫盲I
Linux操作系统——概念扫盲I
81 4
|
7月前
|
Java Linux API
Linux设备驱动开发详解2
Linux设备驱动开发详解
74 6
|
7月前
|
消息中间件 算法 Unix
Linux设备驱动开发详解1
Linux设备驱动开发详解
96 5
|
7月前
|
存储 缓存 Unix
Linux 设备驱动程序(三)(上)
Linux 设备驱动程序(三)
73 3
|
7月前
|
缓存 安全 Linux
Linux 设备驱动程序(一)((下)
Linux 设备驱动程序(一)
75 3
|
7月前
|
安全 数据管理 Linux
Linux 设备驱动程序(一)(中)
Linux 设备驱动程序(一)
52 2
|
7月前
|
Ubuntu NoSQL Linux
Linux内核和驱动
Linux内核和驱动
60 2
|
7月前
|
Linux
Linux 设备驱动程序(四)
Linux 设备驱动程序(四)
56 1