码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【linux】设备驱动程序、块设备和字符设备区别


    设备驱动程序

    设备驱动程序用于与系统连接的输入/输出装置通信,如硬盘、软驱、各种接口、声卡等。按照经典的UNIX箴言“万物皆文件”(everything is a file),对外设的访问可利用/dev目录下的设备文件来完成,程序对设备的处理完全类似于常规的文件。设备驱动程序的任务在于支持应用程序经由设备文件与设备通信。换言之,使得能够按适当的方式在设备上读取/写入数据。

    块设备和字符设备区别

    外设可分为以下两类。
    (1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。
    (2)块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。
    编写块设备的驱动程序比字符设备要复杂得多,因为内核为提高系统性能广泛地使用了缓存机制。

    块设备字符设备
    支持随机读不支持随机读 ,支持顺序读
    硬盘调制解调器
    基于块倍数(512B)进行读写寻址基于字符

    区别划分点:块设备寻址基于块,字符设备基于字符,块设备代表有硬盘,字符设备代表调制解调器,块设备支持随机读,字符设备只支持顺序读。

    参考:《深入linux内核框架》

  • 相关阅读:
    软件测试之测试人员的分工
    python基于PHP+MySQL的超市管理系统
    mobileFX_WebKitX_CEF3_ActiveX_x86_v6.0.0.15802
    git根据文件改动将文件自动添加到缓冲区
    【PostgreSQL17新特性之-explain命令新增选项】
    Forrester:行业云帮助中国企业更快适应未来的发展
    金融业数字化聚焦容器云,全闪存为什么是点睛之笔?
    [附源码]Python计算机毕业设计SSM家政服务预约小程序(程序+LW)
    数据中心不能“偏科”,AIGC时代算力、存力需协调发展
    C++ 教程 - 07 类的静态成员
  • 原文地址:https://blog.csdn.net/qq_39965059/article/details/126846436
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号