Skip to main content
Back to top
Ctrl
+
K
Training Courses
About
Blog
Search
Ctrl
+
K
Search
Ctrl
+
K
Training Courses
About
Blog
Section Navigation
Course Descriptions
Pricing, Organizational
Log Of Past Courses
Complete Slide Material
Linux
Linux Basics
SSH: Secure Shell
Toolchain, And Cross Development
Linux Systems Programming
Linux Hardware Interfaces
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
Workqueue
Sample Code Maintenance
To Do List
Drafts
Python Programming
The C Programming Language
C++ < 11
C++ >= 11
Design Patterns With C++
C++: TODO List
C++: Miscellaneous Live-Hacking
C++ Code
C++ Exercises
CMake
Is Software A Craft? Software Is A Craft! ⟶
Clean Code
Unit Testing With
googletest
Training Courses
Complete Slide Material
Linux
Linux Kernel Driver Development
Process vs.Atomic Context
Process vs.Atomic Context
#
Process vs.Atomic Context (Slideshow)