WI510: Linux Internals


The one day instructor-led course, titled ‘Linux Internals’, is an online WebEx course that provides the information needed to understand the Linux memory model, how threads/processes are scheduled, and information about drivers and other entities in kernel space.

Please note, although this course includes several live demonstrations of MontaVista tools and developer techniques, it does NOT include any lab work for the attendees.


Students should be professional software developers with a background in C/C++ or similar language. Students are expected to be well-versed in operating system concepts and have some familiarity with a cross development environment commonly associated with the embedded development lifecycle.

  • Understand how the Linux virtual memory model works
  • Clarify the separation of user-space and kernel-space addresses
  • Discuss the differences between processes and threads and how the Linux scheduler works
  • Learn how to change the behavior of the Linux scheduler via scheduling policies
  • Understand the interrelationships between the various entities that live in kernel space and their visibility in user space


This course provides a detailed discussion of many of the more important issues in embedded Linux development. In practice, most of the common errors encountered by developers are related to a misunderstanding of the memory model or the introduction of race conditions due to the interleaving and preemption of software entities as the system runs.

The course instruction begins with a discussion of the memory model as seen by both userspace and kernel space entities. We then move into the details of how Linux differentiates between processes and threads, how the scheduler picks what code gets to run next and what you can do to affect that choice. We finish the day by looking at building the kernel and device drivers, the role of kernel threads, and the user interface/visibility of these entities via the /proc and /sys pseudo file systems.

Course Cost:


Course outline:
Understanding the Linux Memory Model
Memory Management In Linux
  • Virtual Memory Model
  • How Linux Uses the MMU

Demo – MMU Review

Kernel Space Review
  • Linux Processes and Threads

Demo – Processes and Threads
  • Linux Scheduling Policies

Demo – Scheduling
  • Kernel Space and Interface Overview
    • LSP and Kernel
    • Kernel Modules
    • Linux Driver Types
    • Kernel Threads
    • /proc and /sys File Systems
    • udev

Demo – Modules