You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
9 months ago | |
---|---|---|
README.md | 9 months ago |
README.md
Linux Kernel Foundation (February 2022 batch)
This repository contains materials what I learnt, and am learning in context to Linux Kernel Programming. This includes programming in userspace and kernelspace.
More content will be added as the class progresses.
Course overview
Systems Programming
Pre-requisites
- Being able to program in C
- Ability to use the Linux CLI
What is covered | What you are expected to learn
- Learning about Assembly language programming
- ARM Assembly
- x86 Assembly
- Advance concepts of Linux (userspace)
- How a process gets created
- Creating threads
- Handling thread priority
- Multithreading
- Thread sync
- Debugging (userspace)
- `valgrind`
- `gdb`
- AddressSanitizer
- Build System
- Makefiles
- DPDP and SPDK
Linux Programming
What is covered | What you are expected to learn
- Introduction to the Linux Kernel
- Basic entities in the Linux Kernel
- Process Management
- Sync various elements
- Memory management
- Device driver management
- Spinlock
- Device drivers
- Basic drivers
- Char drivers
- Misc drivers
- Platform drivers (dtb, dto)
- PWM drivers
- DRM + GPU drivers
- Block drivers
- Advance drivers
- USB
- PCIe
- Linux debugging techniques
- kgdb
- printk (not sure if this is supposed to be printk, not audible in recorded lectures)
- BPF
- JTAG
- Other infrastructure offered by the Linux Kernel
- Networking
- Stack overview
- Proogramming from user[space(?)] POV
- How it works inside the Linux Kernel
- Inner working of a driver