1
0
Fork 0
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.
 
Pratham Patel 8a9a705c75 README.md: changed indention 9 months ago
README.md README.md: changed indention 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