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.Prerequisites
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.Objectives
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:
Understanding the Linux Memory Model
Memory Management In Linux
Demo – MMU Review
Kernel Space Review
Demo – Processes and Threads
Demo – Scheduling
Demo – Modules