Home
Company Profile
Our Clients
Training
Courses
course list
roadmap
all dates
forthcoming
booking
Graduate
Training
Mentoring
Location
Links
Contact us

 sign up for Feabhas e-news

 


Embedded Linux Training Courses

Moving from Linux 2.4 to Linux 2.6

Course code: EL-202
Length
: 2 days
Cost: Contact Feabhas (available for on-site delivery only)
Course description - see below or view PDF
Check course dates - available for on-site delivery only - contact Feabhas
Booking information - click here

Training Course Detail

Course Description:
This course demonstrates how to port an embedded Linux system from version 2.4 of the kernel to 2.6. It describes the differences between the two versions and the new features. Using a practical example it covers changes to kernel configuration and compilation, device drivers, the driver model, the Native POSIX Threads Library, POSIX timers, message queues and shared memory. Throughout, the emphasis is on embedded and real-time applications.

Overview:
A two day course offering a practical approach to porting applications to Linux 2.6.

Who Should Attend:
It is suitable for developers who are currently working on a Linux 2.4 project and are considering moving to Linux 2.6.

Pre-Requisites:
• Good ‘C’ programming skills
• Familiar with Linux 2.4 configuration and application programming
• Some knowledge of Linux device drivers.

Duration:
Two days.

Course Materials:
Student workbook.

Related Courses:
• EL-503 Developing for Embedded Linux
• EL-504 Developing Linux Device Drivers
• RTOS-201 Fundamentals of Real-Time Operating Systems

Course Workshop:
Using an ARM9 (Digi ConnectCore Wi-9C) development board as an example, students will go through the steps of porting from Linux 2.4 to 2.6 and enhancing the system to make full use of the new features in 2.6.

 Linux Penguin

Course Outline:

Introduction to Linux 2.6
- new kernel features, real time
enhancements, driver model, i/o scheduler
- additional POSIX application interfaces
- implications for the tool chain

Moving to a 2.6 kernel
- Configuring and compiling 2.6
- Changes to modules
- Building out-of-tree modules

The Linux driver model
- What it is and how to use it
- Device classes and attributes
- User’s view of the device model: sysfs

The Linux event model
- How events propagate via hotplug
- Customising event notifications
- The hotplug event handler
- Creating device nodes using udev
- Udev vs devfs

Debugging kernel and modules in 2.6

Kernel threads in 2.6

Changes to interrrupts handlers
and locking code

- Deferred processing using work queues

Changes to the block driver interface
- I/O schedulers

Posix threads
- Native Posix Threads Library vs LinuxThreads
- Thread Local Storage
- Named semaphores

New Posix interfaces
- Posix timers: timer resolution; the high resolution timers patch
- Posix message queues
- Posix shared memory

System profiling using Oprofile

Realtime and 2.6

- Kernel preemption
- Lock-breaking
- Developments expected in the near
future: IRQ threads, PMutexes

 telelogic website

 read our blog

Training Courses
C Training Courses
C++ Training Courses
C#.NET Training Courses
Embedded Linux
Training Courses

Java Training Courses
Microsoft Embedded Training Courses
MISRA-C Training Courses
Python Training Courses
RTOS Training Courses
Software Engineering Training Courses
SNMP Training Courses
SysML Training Courses
TCP/IP Training Courses
Testing Training Courses
Microsoft Windows Device Driver Courses
UML Training Courses

Feabhas Codes
AC-401
AC++-501
AWDM-501
CE-501
C-501
C++-303
C++-501
C++-502
C++-503
C#-501
DP-402
EL-201
EL-202
EL-301
EL-503
EL-504
J-501
J-502
MC-101
MSDN-2530
MSDN-2535
MSDN-2540
MSDN-2545
MSDN-2540N
NDIS-501
OO-101
OO-301
OO-503
PY-401
RB-201
RTOS-201
SE-401
SE-501
SNMP-301
T-401
TCP-401
WDF-501
WDM-501