System Calls in deep

Linux Kernel Programming - System calls

System Calls in deep
System Calls in deep

System Calls in deep free download

Linux Kernel Programming - 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