The Linux and C section deals with portions of linux kernel space programming that i have been privileged working on and also tries to look at some simple coding practices and useful programs to cultivate our knowledge of Linux and C.
Happy reading and comments are welcome
Table of Contents
- An understanding of memory layout in C – Part 1
- An understanding of memory layout in C – Part 2
- How to debug a program with gdb – Part 1
- How to debug a program with gdb – Part 2
- How to look at core files using gdb – Part 1
- How to look at core files using gdb – Part 2
- Monolithic Linux Kernel
- Compiling the Linux Kernel – Part 1
- Compiling the Linux Kernel – Part 2
- Writing a Simple Kernel Module
- The Next Step in writing a device driver for Linux
- Passing Data to a kernel module – module_param
- Linux Proc File System – Part 1
- Linux Proc File System – Part 2
- sys File System (sysfs) in the Linux Kernel
- sysfs APIs and sample sysfs implementation in the Linux Kernel
- Linux Kernel – Debug File System
- Linux Kernel – Adding DebugFS support to a Linux kernel module
- Allocating Memory in the Linux Kernel Module – Kernel APIs
- Example Linux Memory Allocation Code
- Linux Kernel Locking Mechanisms
- Interrupts in Linux Kernel
- Bottom Half Processing in the Linux Kernel
- Tasklets in the Linux Kernel
- Tasklet APIs
- Tasklet Example code with Statically initialized Tasklet
- Tasklet Example code with Dynamically initialized Tasklet
- Workqueues as bottom half methods in the Linux Kernel
- Workqueue APIs
- Workqueue code example using DECLARE_WORK Macro
- Workqueue code example using INIT_WORK Macro
- Creating a dedicated Workqueue
- Kernel Threads
- Kernel Thread Code Example
- Device drivers – Character device driver example
- Character Device driver sample user space code
- Character Device driver – creating device file instance in code
- Miscellaneous device drivers in linux kernel
- Miscellaneous device driver example
- Platform device drivers in the Linux Kernel
- Platform Device driver code example
- Understanding Network Device Drivers in the Linux Kernel
- Drivers for PCI BUS based peripherals
- Network device driver interfaced to a Hardware Peripheral