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
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
Waiting for Something (Slideshow)
Waiting for Something (Screenplay)
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
Waiting for Something
¶
Waiting for Something (Slideshow)
Waiting for Something (Screenplay)
cluster_linux
Linux
cluster_linux_kernel
Linux Kernel Driver Development
linux_kernel_mutex_coding
Coding: Fix Race Condition (Mutex)
linux_kernel_mutex
Mutex (and RT Mutex)
linux_kernel_mutex_coding->linux_kernel_mutex
linux_kernel_multiple_devices
Coding: Multiple Devices
linux_kernel_mutex_coding->linux_kernel_multiple_devices
linux_kernel_process_vs_atomic
Process vs.Atomic Context
linux_kernel_raspi_kernel_build
Raspberry Pi: Building the Kernel
linux_kernel_interrupt
Interrupts
linux_kernel_interrupt->linux_kernel_process_vs_atomic
linux_kernel_fedora_kernel_build
Fedora: Building the Kernel
linux_kernel_cdev_auto
Modern Character Devices
linux_kernel_cdev_manual
Character Device Basics
linux_kernel_cdev_auto->linux_kernel_cdev_manual
linux_kernel_modules_hello_world
Module Loading, Hello World
linux_kernel_cdev_manual->linux_kernel_modules_hello_world
linux_kernel_usermem
Accessing Userspace Memory
linux_kernel_workqueue
Workqueue
linux_kernel_usermem->linux_kernel_workqueue
linux_kernel_interrupt_coding
Coding: Raspi GPIO Interrupts
linux_kernel_interrupt_coding->linux_kernel_mutex_coding
linux_kernel_interrupt_coding->linux_kernel_raspi_kernel_build
linux_kernel_interrupt_coding->linux_kernel_interrupt
linux_kernel_mutex->linux_kernel_process_vs_atomic
linux_kernel_fedora_module_build
Fedora: Building External Kernel Modules
linux_kernel_modules_hello_world->linux_kernel_fedora_module_build
linux_kernel_cdev_refactoring
Coding: Refactoring
linux_kernel_cdev_first_functionality
Coding: First Functionality
linux_kernel_cdev_refactoring->linux_kernel_cdev_first_functionality
linux_kernel_fedora_module_build->linux_kernel_fedora_kernel_build
linux_kernel_kmalloc
Dynamic Memory: kmalloc()
linux_kernel_cdev_first_functionality->linux_kernel_kmalloc
linux_kernel_list
Doubly Linked Lists
linux_kernel_cdev_first_functionality->linux_kernel_list
linux_kernel_cdev_file_operations
File Operations on Character Devices
linux_kernel_cdev_first_functionality->linux_kernel_cdev_file_operations
linux_kernel_kmalloc->linux_kernel_process_vs_atomic
linux_kernel_cdev_file_operations->linux_kernel_cdev_auto
linux_kernel_stub_sysprog_dup
dup(), fork(), and Reference Counting (Stub)
linux_kernel_cdev_file_operations->linux_kernel_stub_sysprog_dup
linux_kernel_workqueue->linux_kernel_process_vs_atomic
linux_kernel_timer_coding
Coding: Timed Event
linux_kernel_workqueue->linux_kernel_timer_coding
linux_kernel_timer
Timer Management
linux_kernel_timer->linux_kernel_process_vs_atomic
linux_kernel_timer_coding->linux_kernel_timer
linux_kernel_spinlock_coding
Coding: Fix Sleep While Atomic
linux_kernel_timer_coding->linux_kernel_spinlock_coding
linux_kernel_waitqueue
Waiting for Something
linux_kernel_waitqueue->linux_kernel_usermem
linux_kernel_waitqueue->linux_kernel_cdev_file_operations
linux_kernel_spinlock
Spinlock (vs. Mutex)
linux_kernel_spinlock->linux_kernel_process_vs_atomic
linux_kernel_spinlock_coding->linux_kernel_interrupt_coding
linux_kernel_spinlock_coding->linux_kernel_spinlock
linux_kernel_multiple_devices->linux_kernel_cdev_refactoring