八、linux设备分为哪几类。

1、linux设备

Linux系统中的设备可以分为字符设备块设备网络设备这3类。
(1)字符设备

  字符设备是能够像字节流一样被访问的设备,当对字符设备发出读写请求,相应的IO操作立即发生。Linux系统中很多设备都是字符设备,如字符终端、串口、键盘、鼠标等。在嵌入式Linux 开发中,接触最多的就是字符设备以及驱动。
(2)块设备

  块设备是Linux系统中进行TO操作时必须以块为单位进行访问的设备,块设备能够安装文件系统。块设备驱动会利用一块系统内存作为缓冲区,因此对块设备发出读写访问,并不一定立即产生硬件I/O操作。Linux系统中常见的块设备有如硬盘、软驱等等。
(3)网络设备

  网络设备既可以是网卡这样的硬件设备,也可以是一个纯软件设备如回环设备。网络设备由Linux的网络子系统驱动,负责数据包的发送和接收,而不是面向流设备,因此在Linux系统文件系统中网络设备没有节点。对网络设备的访问是通过socket调用产生,而不是普通的文件操作如 open/closc和 read/write等。

2、驱动在linux中的地位

  驱动是Linux系统中设备和用户之间的桥梁,Linux系统中,访问设备必须通过设备驱动进行操作,用户程序是不能直接操作设备的。Linux系统中硬件、驱动和用户程序的关系如图2.2所示。

 

 

  驱动程序运行与内核空间,用户程序只能通过内核提供的系统调用,由经VFS 以及驱动程序才能访问和操作硬件,硬件设备传递的数据也必须经过驱动、VFS和系统调用才能被用户程序接收。所以说,设备驱动是应用程序访问系统设备以及进行数据传递的桥梁和通道。

posted @   轻轻的吻  阅读(1086)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2017-12-13 配置samba文件服务器
2017-12-13 linux下如何查看某软件是否已安装
2017-12-13 shell script中read的用法
2017-12-13 makefile中.PHNOY的用法
2017-12-13 Linux下设置时间
点击右上角即可分享
微信分享提示