System Calls in deep
|
This course provides a comprehensive understanding of inline assembly in the Linux kernel. You will learn the basics of inline assembly, different types of assembly syntax, constraint strings, input and output operands, and clobbering. The course covers various use cases of inline assembly in the Linux kernel, including interrupts, I/O ports, atomic operations, and control registers. You will also gain a deep understanding of system calls and learn how to add new system calls to the kernel. Additionally, the course covers VDSO and virtual system calls. Examples covered in the course include adding, subtracting, dividing, and multiplying numbers in inline assembly, as well as enabling and disabling interrupts in user space. This course is ideal for Linux kernel developers who want to gain in-depth knowledge of how system calls work.
What you’ll learn
- Basics of Inline Assembly
- Writing examples for Inline Assembly
- Various places where inline assembly is used
- Adding a new system call to kernel
- Updating system call table
- VDSO and Virtual System Calls
What will you learn from this course?
Basics of Inline Assembly
Types of Inline Assembly: Basic and Extended
GCC Assembly Syntax: AT&T
Constraint strings
Input and output operands
Clobbering
Various use cases of Inline assembly in Linux kernel: Interrupts, I/O Ports, Atomic operations, CPUID, Control Registers, Timestamp counters etc
Deep understanding of system calls: Various ways of switching from user space to kernel space (int $0x80, sysenter/sysexit, syscall/sysret)
VDSO
Adding a new system call which doesn’t accept any arguments
Adding a system call which accept argument
Kernel Symbols and Kernel Symbol table
Writing a kernel module which overwrite the kernel symbol table
Writing a kernel module which sniffs the parameters passed to a system call
Examples covered in this course:
Add two numbers in inline assembly
Add three numbers in inline assembly
Subtract, divide, multiply in inline assembly
Can we disable/enable interrupts in user space
Checking whether interrupts are enabled and disabled in user space
Enabling/Disabling interrupts in user space
Implementing simple locking to avoid race conditions: Lock prefix, compare and exchange instructions
And many
Who this course is for:
- Linux Kernel Developers interested in gaining deep knowledge on how system call works
User Reviews
Be the first to review “System Calls in deep” Cancel reply
You must be logged in to post a review.
There are no reviews yet.