Linux学习方法-框架学习法——Linux驱动架构的演进

配套视频学习链接:https://www.bilibili.com/video/BV1HE411w7by?p=4&vd_source=d488bc722b90657aaa06a1e8647eddfc

目录

Linux驱动演进的过程

[Linux驱动的原始架构(Linux V2.4)](#Linux驱动的原始架构(Linux V2.4))

平台总线架构(platform)

Linux设备树

Linux驱动演进的趋势


Linux驱动演进的过程

  • Linux-v2.4--->Linux-v2.6--->Linux-V3.x

  • 原始架构--->平台总线--->设备树

  • 总体上来讲,产品的开发越来越方便

  • 架构越来越复杂,但使用越来越简单,开发工作量减少

Linux驱动的原始架构(Linux V2.4)

  • '设备节点',即设备文件**(/dev/xxx)**,它是上层应用和底层驱动的桥梁
  • Linux:设备即文件**(read,write)**
  • 主设备号,次设备号,mknod()
  • 结构体file_operations(函数指针)
  • register_chdev()---系统注册
  • 用户态read()->sys_read()->vfs_read()->驱动read
  • 原始架构依然很重要,里面的知识并没有被淘汰,而是被封装和继承了。

平台总线架构(platform)

  • Linux2.6版本,封装了原始架构,更加抽象
  • 引入了设备驱动模型**(sysfs)**,使得热插拔/电源管理得以加强
  • 好处:做产品更省事省力
  • 实现了BSP(板级支持包)和驱动的分离

Linux设备树

  • 设备资源独立了出来**(arch/arm/mach-xxx/board-xxx.c),从C文件发展为DTS**设备树脚本文件 (arch/arm/boot/dts/xxx.dts)
  • 换个板子,不需编译Linux系统,只要换个设备树文件就好。
  • BootLoard参与传递设备资源(启动时需要把设备树文件传给内核)。

Linux驱动演进的趋势

  • 越来越先进易用,但内部架构越来越复杂
  • '分离',实际是一种模块化设计思路
  • '分层',Linux中应用很普遍,屏蔽了底层的细节,增加了易用性
相关推荐
Maki Winster34 分钟前
Peek-Ubuntu上Gif录制工具-24.04LTS可装
linux·ubuntu·peek
Maki Winster2 小时前
在 Ubuntu 下配置 oh-my-posh —— 普通用户 + root 各自使用独立主题(共享可执行)
linux·运维·ubuntu
守望时空332 小时前
Linux下KDE桌面创建自定义右键菜单
linux
l0sgAi2 小时前
vLLM在RTX50系显卡上部署大模型-使用wsl2
linux·人工智能
麟城Lincoln3 小时前
【RHCSA-Linux考试题目笔记(自用)】servera的题目
linux·笔记·考试·rhcsa
寻月隐君4 小时前
保姆级教程:Zsh + Oh My Zsh 终极配置,让你的 Ubuntu 终端效率倍增
linux·后端·命令行
XM-54584 小时前
2025微信小程序wxapkg解包全攻略
linux·运维·小程序
朗晴4 小时前
文本编辑器VIM的使用方法!
linux·运维·服务器
2401_8260976212 小时前
JavaEE-Linux环境部署
java·linux·java-ee
(:满天星:)13 小时前
第31篇:块设备与字符设备管理深度解析(基于OpenEuler 24.03)
linux·运维·服务器·网络·centos