Skip to main content

Section outline

  • Linux Kernel Architecture & Booting Process
    • Understanding UNIX/Linux history & system architecture.
    • Kernel internals: Layered approach, kernel functions, and boot process.
    Linux Device Management & System Calls
    • Overview of character, block, and network devices.
    • Working with /proc and /sys file systems.
    • Practical implementation of system calls.
    Inline Assembly Code & Security in Linux
    • Basics of inline assembly and integrating it with C programs.
    • Hands-on: Writing and executing inline assembly.
    • Linux security features: File permissions & access control.
    Development Tools & Static Analysis
    • Overview of GCC, GDB, Make, CMake, Coverity, cppcheck.
    • Hands-on: Building applications and identifying bugs using static analysis tools.
  • Memory Debugging & Profiling
    • Introduction to Valgrind, AddressSanitizer, and perf.
    • Hands-on: Debugging memory leaks and optimizing performance.
    Low-Level I/O and Signal Handling
    • Understanding file descriptors and low-level I/O operations.
    • Process Control Block (PCB) and signal handling mechanisms.
    • Hands-on: Writing programs for low-level I/O and signal management.
    Threads & Device Drivers
    • Kernel vs. user-space threads: Creation & management.
    • Introduction to device drivers & kernel modules.
    • Hands-on: Compiling and managing kernel modules.
    Comprehensive Hands-On & Course Wrap-Up
    • Final Project: Combining system calls, threading, and kernel modules.
    • Debugging real-world scenarios using advanced tools.
    • Assessment & Q&A session for concept reinforcement.