美文网首页
Linux设备模型-设备模型介绍

Linux设备模型-设备模型介绍

作者: 小田BSP | 来源:发表于2020-12-27 10:20 被阅读0次

Linux是一个宏内核,包括了各类设备的驱动。为了减少设备多样性带来的Linux内核驱动开发的复杂度,以及处理热插拔和电源管理等,在Linux内核中引入了设备模型,抽象出一套标准的数据结构和接口,简化Linux内核驱动的开发。

Linux内核设备模型位于/sys目录下,sysfs文件系统针对设备模型向用户空间展示驱动设备的层次结构。

root@linaro-alip:/sys# ls
block  bus  class  dev  devices  firmware  fs  kernel  module  power  rk8xx

Linux内核设备模型包括:总线(BUS)、设备(Device)、驱动(Driver)和设备类(Class)。

image.png

1、总线(BUS)

用于连接设备(Device)和驱动(Driver),提供与总线相关的设备和驱动注册方法。bus位于linux系统的/sys目录下,包含了内核中各种总线类型的平面目录布局。

root@linaro-alip:/sys/bus# ls
amba         container     i2c       mipi-dsi  pci_express  serio    workqueue
cec          cpu           iio       mmc       platform     snd_seq
clockevents  event_source  mdio_bus  nvmem     scsi         spi
clocksource  hid           media     pci       sdio         usb

每个总线目录(例:i2c、platform等)都包含devices/drivers/

2、设备(Device)

包含了系统中出现的每个设备的符号链接,指向/sys/devices 下的设备目录,对应系统中的硬件,用于描述设备的名称、资源、属性等信息。

root@linaro-alip:/sys/bus/platform/devices# ls -l
total 0
lrwxrwxrwx 1 root root 0 Nov  3 17:16 alarmtimer -> ../../../devices/platform/alarmtimer
lrwxrwxrwx 1 root root 0 Nov  3 17:16 amba -> ../../../devices/platform/amba
lrwxrwxrwx 1 root root 0 Nov  3 17:16 armv7sec.0 -> ../../../devices/platform/armv7sec.0
lrwxrwxrwx 1 root root 0 Nov  3 17:16 cpufreq-dt -> ../../../devices/platform/cpufreq-dt
lrwxrwxrwx 1 root root 0 Nov  3 17:16 ddr_timing -> ../../../devices/platform/ddr_timing
lrwxrwxrwx 1 root root 0 Nov  3 17:16 display-subsystem -> ../../../devices/platform/display-subsystem
lrwxrwxrwx 1 root root 0 Nov  3 17:16 dummy_cpll -> ../../../devices/platform/dummy_cpll

3、驱动(Driver)

包含了每个已为特定总线上的设备而挂载的驱动程序的目录,对应硬件设备的驱动程序。包括:探测、初始化、设备基本操作、电源管理等。

root@linaro-alip:/sys/bus#  find . -name drivers
./cec/drivers
./cpu/drivers
./i2c/drivers
./hid/drivers
./iio/drivers
./mmc/drivers
./pci/drivers
./spi/drivers
./usb/drivers
./amba/drivers
./scsi/drivers
./sdio/drivers
./clocksource/drivers
./media/drivers
./nvmem/drivers
./serio/drivers
./event_source/drivers
./workqueue/drivers
./snd_seq/drivers
./container/drivers
./mipi-dsi/drivers
./pci_express/drivers
./platform/drivers
./mdio_bus/drivers
./clockevents/drivers

4、设备类(Class)

为了简化复杂设备驱动开发,可使用设备类实现这些设备驱动的的公共部分。

root@linaro-alip:/sys/class# ls
arvo           dma          iommu     net           rkvdec       spi_transport
ata_device     drm          isku      nvme          rkvr         spidev
ata_link       dvb          kone      pci_bus       rkwifi       switch
ata_port       extcon       koneplus  phy           rtc          thermal
backlight      gpio         konepure  power_supply  ryos         tpm
bdi            graphics     kovaplus  pps           savu         tty
block          hidraw       leds      ptp           scsi_device  udc
bluetooth      hwmon        mdio_bus  pwm           scsi_disk    usbmon
bsg            i2c-adapter  mem       pyra          scsi_host    vc
devcoredump    i2c-dev      misc      rc            sound        video4linux
devfreq        ieee80211    mmc_host  regulator     spi_host     vpu_service
devfreq-event  input        mtd       rfkill        spi_master   vtconsole

注:本文基于RockPI 4A的Debian系统。

参考:

1、Documentation/zh_CN/filesystems/sysfs.txt

相关文章

  • Linux设备模型-设备模型介绍

    Linux是一个宏内核,包括了各类设备的驱动。为了减少设备多样性带来的Linux内核驱动开发的复杂度,以及处理热插...

  • Linux 内核学习(3)---- platform driv

    platform driver模型简介 在Linux 的设备驱动模型中,关心总线,设备和驱动这三个实体,总线将设备...

  • 2019-12-09 driver model

    Linux设备驱动模型概述(Linux device driver model overview) https:/...

  • Netty之路(一)Linux、Java、Netty的I/O模型

    一、Linux 网络I/O模型 Linux的内核秉承一切皆文件的理念,普通文件、目录、字符设备、块设备和网络设备(...

  • Unity优化记录【一】

    1.了解设备硬件信息 //设备的模型 GetMessage("设备模型", SystemInfo.devi...

  • linux简单按键驱动程序

    一、混杂设备模型 1.1、混杂设备概念 在linux系统中,存在一类字符设备,它们拥有相同的主设备号(10),但次...

  • 前端知识笔记

    设备像素比dpr设备上物理像素和设备独立像素的比例 盒子模型IE 盒子模型、W3C 盒子模型;盒模型: 内容(co...

  • platform总线(一)

    在linux2.6设备模型中,关心总线,设备,驱动这三个实体,总线将设备和驱动绑定,在系统每注册一个设备的时候,会...

  • 2019-12-09

    https://www.linuxidc.com/Linux/2016-10/136247.htm 设备模型(de...

  • linux笔记5

    linux设备模型bus,device,driver作者 codercjg 在 10 十一月 2015, 2:43...

网友评论

      本文标题:Linux设备模型-设备模型介绍

      本文链接:https://www.haomeiwen.com/subject/exqonktx.html