Linux驱动简介

简介: 系统调用是内核和应用程序之间的接口,而驱动程序是内核和硬件之间的接口。它为应用程序屏蔽了硬件的细节,故对应用程序而言,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。

Linux的驱动在本质上就是一种软件程序,上层软件可以在不了解硬件特性的情况下,通过驱动提供的接口,和计算机硬件进行通信。


 系统调用是内核和应用程序之间的接口,而驱动程序是内核和硬件之间的接口。它为应用程序屏蔽了硬件的细节,故对应用程序而言,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。


 Linux驱动程序只是内核的一部分,管理着系统的设备控制器和相应的设备。驱动程序,英文名为"Device Driver",全称“设备驱动程序”,是一种可以使计算机和设备通信的特殊程序,相当于硬件的接口,操作系统只有通过这个接口才能控制硬件设备的工作。它主要完成以下几个功能:对设备初始化和释放;传送数据到硬盘和从硬件读取数据;检测和处理设备出现的错误。

 

Ubuntu操作系统:内核系统+文件系统+图形界面+应用程序

用户层:应用程序,系统编程,网络编程…

Linux内核连接用户层和内核层

内核层:进程管理,文件系统管理,内存管理,网络协议栈,驱动管理

设备层:驱动设备…


驱动程序本身也是代码,但与应用程序不同,它不会主动去运行,而是被应用程序调用。

应用与驱动程序在系统中所处位置不同,决定了它们代码运行模式也不一样。

应用程序运行在用户空间(用户态)。 驱动代码运行于内核空间(内核态)。


linux内核将设备分成3大类:


1:字符设备 I/O传输过程中以字符为单位进行传输 用户对字符设备发出读/写请求时实际的硬件读/写操作一般紧接着发生


2:块设备 以块为单位进行操作。块设备驱动的读写都有缓存来支持,且块设备必须能够随机存取。块设备驱动主要用于磁盘驱动器


3:网络设备 面向数据包的接收和发送而设计的,它并不应对于文件系统的节点。即不对应于/dev目录下的设备文件,应用程序最终用套间字socket完成与网络设备的接口。

相关文章
|
1天前
|
Linux 芯片 Ubuntu
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
|
1天前
|
Ubuntu Linux
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-2
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-2
|
1天前
|
Linux 芯片
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-1
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-1
|
1天前
|
Linux C语言 Ubuntu
Linux驱动入门——编写第一个驱动
Linux驱动入门——编写第一个驱动
Linux驱动入门——编写第一个驱动
|
7天前
|
Linux
linux驱动层输出dev_dbg打印信息
linux驱动层输出dev_dbg打印信息
12 0
|
15天前
|
Unix 大数据 Linux
Linux系统简介与开源精神
Linux系统简介与开源精神
29 3
|
16天前
|
存储 监控 Linux
【专栏】在 Linux 中,了解已安装驱动器是系统管理的关键
【4月更文挑战第28天】在 Linux 中,了解已安装驱动器是系统管理的关键。本文介绍了三种方法:1) 使用 `lsblk` 命令显示设备名、大小和类型;2) `fdisk -l` 命令提供详细分区信息;3) `gnome-disks` 等系统管理工具展示驱动器信息。此外,还讨论了驱动器类型识别、挂载点概念及其应用。通过这些方法,用户能有效地监控和管理 Linux 系统中的驱动器。
|
27天前
|
IDE Unix Linux
Linux系统简介、安装Linux系统、Linux系统目录结构、Linux命令行
Linux系统简介、安装Linux系统、Linux系统目录结构、Linux命令行
|
28天前
|
安全 Linux 云计算
Linux简介
Linux,由Linus Torvalds于1991年创建,是一种开源、跨平台的类UNIX操作系统,广泛应用于服务器、云计算、嵌入式系统和开发学习环境。它以其稳定性、安全性和多任务特性著称,支持多种硬件平台。Linux发行版如Ubuntu、Fedora等在企业及个人用户中普及,降低IT成本。与Windows相比,Linux免费、更注重命令行操作,具有更高定制性,但软件支持不如Windows丰富。
32 0
|
29天前
|
Linux Go
Linux命令Top 100驱动人生! 面试必备
探索Linux命令不再迷茫!本文分10部分详解20个基础命令,带你由浅入深掌握文件、目录管理和文本处理。 [1]: <https://cloud.tencent.com/developer/article/2396114> [2]: <https://pan.quark.cn/s/865a0bbd5720> [3]: <https://yv4kfv1n3j.feishu.cn/docx/MRyxdaqz8ow5RjxyL1ucrvOYnnH>
79 0