OverviewThe 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.
PrerequisitesStudents
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
- 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
DescriptionThis 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: $700.00
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