Modifying and Customizing the Linux Kernel

LXKer2 - Version:1
As a part of developing special Linux based systems, like Embedded systems or smartphone OS, it is sometimes necessary to build an operating system that is tailored to this specific system. In this course you will learn how to build non-standard configurations of Linux along with kernel programming at the level of modifying existing kernel routines and writing new ones. The course is structured as a project of building embedded system with extreme security requirements.
Intended audience
Developer who want to learn kernel programing basics, or build a tailored Linux OS.
Expand All
  • Introduction
    • The course project
    • Embedded systems
    • Operating System Components
    • System calls
    • The boot process
  • Minimizing the OS code
    • Create a minimal root file-system
    • Create a customized boot process
    • Configure a minimal kernel
  • Create a secured kernel log mechanism
    • Write a pseudo device driver for kernel log
    • Create entry in /proc for kernel log
    • Write a service that stores the log on a storage device
  • Blocking unused system-calls
    • Blocking syscalls at compilation
    • Blocking syscalls on the running kernel
    • Blocking syscalls for privileged processes
  • Delay application processes start
    • Add a syscall that suspend the calling process
    • Add a syscall that wake the suspended process
    • Delay processes until security initialization is done
  • Manipulate the syscalls table
    • Randomize syscall numbers
    • Compile the kernel with the new numbers
    • Compile the application with the new numbers
  • Create a development system
    • Create a full Linux system for compiling and testing the application
  • Solving problems in kernel routines
  • A knowledge of Linux internals at a level similar to the “Understanding the Linux Kernel” course.
  • Good knowledge of the C programing language.