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
Coding: Fix
Sleep While Atomic
(Slideshow)
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
Coding: Fix
Sleep While Atomic
¶
Coding: Fix
Sleep While Atomic
(Slideshow)
cluster_linux
Linux
cluster_linux_kernel
Linux Kernel Driver Development
linux_kernel_cdev_first_functionality
Coding: First Functionality
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
Dynamic Memory: kmalloc()
linux_kernel_cdev_first_functionality->linux_kernel_kmalloc
linux_kernel_raspi_kernel_build
Raspberry Pi: Building the Kernel
linux_kernel_multiple_devices
Coding: Multiple Devices
linux_kernel_cdev_refactoring
Coding: Refactoring
linux_kernel_multiple_devices->linux_kernel_cdev_refactoring
linux_kernel_cdev_refactoring->linux_kernel_cdev_first_functionality
linux_kernel_stub_sysprog_dup
dup(), fork(), and Reference Counting (Stub)
linux_kernel_cdev_file_operations->linux_kernel_stub_sysprog_dup
linux_kernel_cdev_auto
Modern Character Devices
linux_kernel_cdev_file_operations->linux_kernel_cdev_auto
linux_kernel_process_vs_atomic
Process vs.Atomic Context
linux_kernel_mutex
Mutex (and RT Mutex)
linux_kernel_mutex->linux_kernel_process_vs_atomic
linux_kernel_spinlock_coding
Coding: Fix Sleep While Atomic
linux_kernel_spinlock
Spinlock (vs. Mutex)
linux_kernel_spinlock_coding->linux_kernel_spinlock
linux_kernel_interrupt_coding
Coding: Raspi GPIO Interrupts
linux_kernel_spinlock_coding->linux_kernel_interrupt_coding
linux_kernel_interrupt
Interrupts
linux_kernel_interrupt->linux_kernel_process_vs_atomic
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_kmalloc->linux_kernel_process_vs_atomic
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
linux_kernel_cdev_auto->linux_kernel_cdev_manual
linux_kernel_spinlock->linux_kernel_process_vs_atomic
linux_kernel_mutex_coding
Coding: Fix Race Condition (Mutex)
linux_kernel_mutex_coding->linux_kernel_multiple_devices
linux_kernel_mutex_coding->linux_kernel_mutex
linux_kernel_interrupt_coding->linux_kernel_raspi_kernel_build
linux_kernel_interrupt_coding->linux_kernel_interrupt
linux_kernel_interrupt_coding->linux_kernel_mutex_coding