LINUX驱动程式架构入门.pdf
文本预览下载声明
1LINUX驅動程式架構入門
OpenMoko OpenLab Free Training
Instructor: Jim Huang (jserv) jserv @
OpenMoko coreteam
2OpenMoko OpenLab Training. Instructor: Jollen’s Consulting. .
概念
? UNIX法則 : “Everything is file”
– 記憶體亦然 (/dev/mem)
? Linux Device Driver的角色即是將 file operation
映射到實體 Device
– 有明確階層概念
– 不限於 kernel-mode driver
– 經典的 user-mode driver即 X11 driver
? Linux支援 non-native driver(NDISwrapper)
? 「有時」 Driver完全獨立於 (修改過的 )Linux
kernel之外 (RTLinux/L4Linux/RT nanokernel)
Module stacking
?New module can use symbol export by yours
?msdos fat, USB device usbcore input modules
?modprobe same as insmod but loads the whole stack
OpenMoko OpenLab Training. Instructor: Jollen’s Consulting. .
4OpenMoko OpenLab Training. Instructor: Jollen’s Consulting. .
Linux Device Driver Architecture
System Call Interface
Virture File System(VFS)
Buffer Cache
Application
Character
Device Driver
Physical Device (Hardware)
Network Subsystem
Device Interface
Kernel Mode
User Mode
Hardware
Block
Device Driver
Network
Device Driver
BSD socket
inet(AF_INET)
Transport(TCP,UDP)
Network(IP)
5OpenMoko OpenLab Training. Instructor: Jollen’s Consulting. .
Device File (VFS Switch)
6OpenMoko OpenLab Training. Instructor: Jollen’s Consulting. .
Types of Device Files
Character
Device Driver
Block
Device Driver
Network
Device Driver
crw--w--w- 0 root root 5, 1 Oct 1 1998 console
crw-rw-rw- 1 root root 1, 3 May 6 1998 null
crw 1 root root 4, 0 May 6 1998 tty
crw-rw 1 root disk 96, 0 Dec 10 1998 pt0
crw 1 root root 5, 64 May 6 1998 cua0
brw 1 root floppy 2, 0 May 6 1998 fd0
brw-rw 1 root disk 3, 0 May 6 1998 hda
brw-rw 1 root disk 3, 1 May 6 1998 hda1
brw-rw 1 root disk 8, 0 May 6 1998 sda
brw-rw 1 root disk 8, 1 May 6 1998 sda1
The major number identifies the driver associated with the device. The minor number is used only by the
driver specified by the minor number.
U
显示全部