Programming Linux
Quick search
Navigation
Courses
Courses Overview
Slide Material
Python Programming
The C Programming Language
C++: TODO List
C++: Miscellaneous Live-Hacking
C++
The New C++ (11-…)
Design Patterns With C++
C++ Code
C++ Exercises
CMake
Linux
Is Software A Craft? Software Is A Craft! ⟶
Clean Code
Unit Testing With
googletest
Linux Kernel Driver Development
Modern Character Devices
File Operations on Character Devices
Coding: First Functionality
Character Device Basics
Character Device Basics (Slideshow)
Character Device Basics (Livehacking Screenplay)
Coding: Multiple Devices
Coding: Refactoring
DMA
Fedora: Building the Kernel
Fedora: Building External Kernel Modules
Module Loading, Hello World
Coding: Raspi GPIO Interrupts
Interrupts
IO Memory
Dynamic Memory:
kmalloc()
Doubly Linked Lists
Coding: Fix Race Condition (Mutex)
Mutex (and RT Mutex)
Network Devices
PCI
Process vs.Atomic Context
Raspberry Pi: Building the Kernel
Coding: Fix
Sleep While Atomic
Spinlock (vs. Mutex)
dup()
,
fork()
, and Reference Counting (Stub)
Coding: Timed Event
Timer Management
Accessing Userspace Memory
Waiting for Something
Workqueue
Sample Code Maintenance
To Do List
Generated Topic Graph
How To Book
Log Of Past Courses
About
Myself: Contact, Impressum, …
This Site
Blog
Posts
Character Device Basics
¶
Character Device Basics (Slideshow)
Character Device Basics (Livehacking Screenplay)
cluster_linux
Linux
cluster_linux_kernel
Linux Kernel Driver Development
linux_kernel_modules_hello_world
Module Loading, Hello World
linux_kernel_fedora_module_build
Fedora: Building External Kernel Modules
linux_kernel_modules_hello_world->linux_kernel_fedora_module_build
linux_kernel_fedora_kernel_build
Fedora: Building the Kernel
linux_kernel_cdev_manual
Character Device Basics
linux_kernel_cdev_manual->linux_kernel_modules_hello_world
linux_kernel_fedora_module_build->linux_kernel_fedora_kernel_build