- The C Programming Language
- Unix Programming
- Kernel and Device Drivers
- Compiling and Linking
- Unix stuff
- Undefined Behavior in 2017
07/04/2017 - Pascal Cuoq, John Regehr
- Yes C is unsafe, but…
03/30/2017, Daniel Stenberg
- curl is C
03/27/2017, Daniel Stenberg
- A critique of "How to C in 2016"
1/15/2016, Keith Thompson
- How to C in 2016
2016, Matt Stancliff
- Write a Shell in C
1/16/2015, Stephen Brennan
- Guide to Advanced Programming in C
01/06/2014 - Peter Facka
- What Every C Programmer Should Know About Undefined Behavior
- Portability of C Programs and the UNIX System
July-August 1978 - Bell Labs
- Write a simple memory allocator
08/09/2016 - Arjun Sreedharan
- What a C programmer should know about memory
2/20/2015, Marek Vavrusa
- A quick tutorial on implementing and debugging malloc, free, calloc, and realloc
Dec 2014, Dan Luu
- Memory management in C programs
03/16/2014, Alex Smith
- A Malloc Tutorial*
2/16/2009, Marwan Burelle
- Anatomy of a Program in Memory
01/27/2009 - Gustavo Duarte
- What every programmer should know about memory
- part 1
09/27/2007 - Ulrich Drepper
- part 2, CPU Caches
10/01/2007 - Ulrich Drepper
- part 3, Virtual memory
10/09/2007 - Ulrich Drepper
- part 4, NUMA support
10/17/2007 - Ulrich Drepper
- part 5, What programmers can do - cache optimization
10/23/2007 - Ulrich Drepper
- part 6, More things programmers can do
10/31/2007 - Ulrich Drepper
- part 7, Memory performance tools
11/07/2007 - Ulrich Drepper
- part 8, Future technologies
11/14/2007 - Ulrich Drepper
- part 9, Appendices and bibliography
11/14/2007 - Ulrich Drepper
- part 1
- Inside memory management
11/16/2004 - Jonathan Bartlett
- The Lost Art of C Structure Packing
last update: 06/01/2017 - Eric S.Raymond
- Making a low level (Linux) debugger
- part 1
06/14/2018 - aspro
- part 2, C
06/22/2018 - aspro
- part 3, our first program
07/06/2018 - aspro
- part 1
- The real power of Linux executables
05/23/2018 - nachoparker
- How is GNU
yes
so fast?06/13/2017, reddit unix
- Writing a Linux Debugger
- part 1, Setup
03/21/2017 - Simon Brand
- part 2, Breakpoints
03/24/2017 - Simon Brand
- part 3, Registers and memory
02/31/2017 - Simon Brand
- part 4, Elves and dwarves
04/05/2017 - Simon Brand
- part 5, Source and signals
04/24/2017 - Simon Brand
- part 6, Source-level stepping
05/06/2017 - Simon Brand
- part 7, Source-level breakpoints
06/19/2017 - Simon Brand
- part 8, Stack unwinding
06/24/2017 - Simon Brand
- part 9, Handling variables
07/26/2017 - Simon Brand
- part 10, Advanced topics
08/01/2017 - Simon Brand
- part 1, Setup
- UNIX Syscalls
2017 - John Millikin
- Anatomy of a system call
- Linux Device Drivers (series)
- part 1, Introduction
2018 - embetronicx
- part 2, First Device Driver
2018 - embetronicx
- part 3, Module Parameter
2018 - embetronicx
- part 4, Character Device Driver
2018 - embetronicx
- part 5, Device File Creation
2018 - embetronicx
- part 6, Cdev structure and File Operations
2018 - embetronicx
- part 7, Linux Device Driver Tutorial Programming
2018 - embetronicx
- part 8, I/O Control in Linux IOCTL()
2018 - embetronicx
- part 9, Procfs in Linux
2018 - embetronicx
- part 10, WaitQueue in Linux
2018 - embetronicx
- part 11, Sysfs in Linux Kernel
2018 - embetronicx
- part 12, Interrupts in Linux Kernel
2018 - embetronicx
- part 13, Interrupts Example Program in Linux Kernel
2018 - embetronicx
- part 14, Workqueue in Linux Kernel 1
2018 - embetronicx
- part 15, Workqueue in Linux Kernel 2
2018 - embetronicx
- part 16, Workqueue in Linux Kernel 3
2018 - embetronicx
- part 17, Linked List in Linux Kernel 1
2018 - embetronicx
- part 18, Linked List in Linux Kernel 2
2018 - embetronicx
- part 19, Kernel Thread
2018 - embetronicx
- part 20, Tasklets Static Method
2018 - embetronicx
- part 21, Tasklets Dynamic Method
2018 - embetronicx
- part 22, Mutex in Linux Kernel
2018 - embetronicx
- part 23, Spinlock in Linux Kernel Part 1
2018 - embetronicx
- part 24, Read Write Spinlock in Linux Kernel (Spinlock Part 2)
2018 - embetronicx
- part 25, Sending Signal from Linux Device Driver to User Space
2018 - embetronicx
- part 26, Using Kernel Timer In Linux Device Driver
2018 - embetronicx
- part 1, Introduction
- Creating a shared and static library with the gnu compiler (gcc)
01/27/2018 - Rene Nyffenegger
- Linux Internals ~ Dynamic Linking Wizardry
09/15/2016 - _py (0x00sec.org)
- Position Independent Code and x86-64 libraries
01/05/2013 - Ian Wienand
- Beginner's Guide to Linkers
2010 - David Drysdale
- Static, Shared Dynamic and Loadable Linux Libraries
YoLinux
- Back To The Future: Unix Wildcards Gone Wild
last updated 06/25/2014 - Leon Juranic