Linux Kernel Internals and Device Driver Programming
Course
Online
Price on request
Description
-
Type
Course
-
Methodology
Online
Developers building embedded solutions using Linux often need to make kernel-level modifications, or to write drivers for custom hardware.
Reviews
Have you taken this course?
Subjects
- IT
- Linux
- Programming
Course programme
Linux Background
- The evolution of Linux
- Linux and the POSIX API
- Understanding how the Linux Kernel is split up
- The major differences between Linux 1.x and Linux 2.x
- Key changes between Linux 2.4 and Linux 2.6
- Memory addressing - segmentation and paging
- Process creation, process switching, process destruction
- Interrupts and Exception Handling
- Time, timing and timer interrupts
- Memory management and the process address space
- System calls, signals and the POSIX API
- I/O Devices
- File systems - VFS, EXT2, Flash File Systems
- Inter-process communication
- Program loading and execution
- Loadable modules and insmod
- Security issues with loadable modules
- Applications compared to kernel modules
- User space, kernel space
- Compiling and loading a module
- Initialisation, shutdown and error handling by a module
- Usage counting and module unloading
- How a module acquires and accesses system resources (I/O Ports, I/O memory)
- Automatic and manual configuration
- User space drivers
- Major and minor device numbers
- Dynamic allocation of major numbers
- File operations - the file_operations structure and the file structure
- Case study - Rubini and Corbet's scull device
- Getting applications to use new devices
- Device driver testing and debugging
- Using ioctl commands
- Blocking vs. non-blocking I/O
- Controlling access to a device
- Timer interrupts and kernel time
- Kernel time and the jiffies variable
- Task queues
- Understanding kernel timers
- Tasklets and deferred work
- kmalloc
- Lookaside caches
- vmalloc
- Boot time memory allocation
- I/O Ports and I/O Memory
- Interrupts and Interrupt handling
- The /proc interface
- Circular buffers
- Spinlocks
- Race conditions
- Registering
- Handling requests - and data transfer
- Queuing and block drivers
- The ioctl command and block drivers
- USB device drivers
- I2C and SPI device drivers
- CAN device drivers
- Bluetooth device drivers
- Network device drivers
- Overview of the Linux TCP/IP Protocol stack
- TCP/IP over Ethernet
- PPP over a dial-up modem connection
- TCP/IP over USB
- TCP/IP over Bluetooth
- A/D and D/A for control applications
Linux Kernel Internals and Device Driver Programming
Price on request