PyTorch-CUDA-v2.7镜像用户案例研究:某独角兽公司降本增效实践
2025/12/29 19:16:21
char_dev.c//维护一个设备号分配的哈希表,记录已注册的设备号范围。#defineCHRDEV_MAJOR_HASH_SIZE255structchar_device_struct{structchar_device_struct*next;// 哈希冲突时的链表指针unsignedintmajor;// 主设备号unsignedintbaseminor;// 起始次设备号intminorct;// 次设备号数量charname[64];// 设备名称structcdev*cdev;// 指向对应的cdev结构}*chrdevs[CHRDEV_MAJOR_HASH_SIZE];// 哈希表数组//由下可知设备号dev_t是无符号32位typedef__kernel_dev_tdev_t;typedef__u32 __kernel_dev_t;typedefunsignedint__u32;//设备号的相关操作#defineMINORBITS20#defineMINORMASK((1U<<MINORBITS)-1)#defineMAJOR(dev)((unsignedint)((dev)>>MINORBITS))#defineMINOR(dev)((unsignedint)((dev)&MINORMASK))#defineMKDEV(ma,mi)(((ma)<<MINORBITS)|(mi))宏 MINORBITS 表示次设备号位数,一共是20位。 宏 MINORMASK 表示次设备号掩码。 宏 MAJOR 用于从dev_t中获取主设备号,将dev_t右移20位即可。 宏 MINOR 用于从dev_t中获取次设备号,取dev_t的低20位的值即可。 宏 MKDEV 用于将给定的主设备号和次设备号的值组合成dev_t类型的设备号。如何查看主次设备号:[[universe/Embedbed/Linux#Linxu目录|Linux目录]]
- cat /proc/devices:列出了系统中已注册的所有字符设备和块设备的主设备号,以及相应的设备名称。不会有次设备号。
-ls -lh /dev:列出设备节点属性,原本文件大下位置,变成主次设备号。