Wind River Education Services Course Catalog

Wind River Education Services offers cost-effective training in various forms. Browse our course catalog below to plan and track a curriculum that will satisfy the training needs of your device software development engineers.

Wind River Linux 6 User Space Programming

Buy Now

Course Description

Course Results

Products Supported

Who Should Attend

Course Format

Please see course datasheet for further details here Buy Now

Course Details Summary

  • Duration: 4 Days
  • Course Information: View
  • Format: Lectures and Labs
  • Type: Instructor-led
  • Price/Schedule: View

The Wind River® Linux User Space Programming course gives engineers the skills they need to develop complex applications for Linux-based devices, with an emphasis on the Wind River Linux and Wind River Workbench products.

After this course, participants will be able to perform the following:

  • Write applications which take advantage of advanced Linux features
  • Design, develop, build, and run applications in a target-host development environment
  • Effectively debug multi-threaded and multi-process applications
  • Configure, build, and manage Wind River Linux application projects
  • Prepare applications for integration with Wind River Linux–based devices
  • Wind River Linux 6
  • Wind River Workbench 3.3
  • The following targets are available: QEMU simulated target (Intel x86-64)
  • Developers who want to learn more about writing applications targeting Linux-based devices
  • Customers who have recently purchased or are considering purchasing Wind River Linux

Day 1

Introduction to Embedded Linux

  • Overview of Linux
  • Linux boot process
  • Linux user space
  • Cross development

Introduction to Wind River Linux

  • Overview of Wind River Linux
  • The Yocto Project
  • Wind River Linux platform
  • Software development models
  • LAB: Getting started

Wind River Workbench

  • Overview of Workbench
  • Projects and resources
  • Workspace
  • Perspectives
  • Workbench connectivity
  • Working with projects
  • Source control management
  • LAB: Getting started with Workbench
  • LAB: Working with flexible managed builds
  • LAB: Working with user-defined projects

Building Target Software

  • Overview of cross development
  • Command-line cross development
  • Cross development in Workbench
  • Deploying applications to the target
  • Target-hosted development

Day 2

Building Target Software (cont’d)

  • LAB: Cross-compiling applications in Workbench
  • LAB: Cross-compiling from the command line

Target Management

  • Hardware targets
  • Cross development workflow
  • Deploying to hardware targets
  • Simulating a target with QEMU
  • LAB: Simulating targets with QEMU

User Mode Debugging and Analysis

  • Debugging in Workbench
  • Memory Analyzer
  • Performance Profiler
  • Code Coverage Analyzer
  • LAB: User mode debugging with Workbench
  • LAB: User mode debugging with gdb
  • LAB: Post-mortem application analysis of an application
  • LAB: Using the Memory Analyzer
  • LAB: Using the Performance Profiler
  • LAB: Using the Code Coverage Analyzer

Linux Processes and Threads

  • Processes and threads
  • Process lifecycle
  • Thread lifecycle
  • Scheduling
  • LAB: Linux threading

Day 3

Memory Management

  • How memory is managed
  • Allocating and releasing memory
  • Mapping anonymous memory
  • Manipulating memory
  • Common memory problems
  • LAB: Managing memory
  • LAB: Managing shared memory
  • LAB: Tuning and debugging memory allocation

File Input/Output

  • Overview of files in Linux
  • Basic I/O
  • Buffered I/O
  • Memory-mapped I/O
  • Advanced I/O operations
  • Processing binary data
  • LAB: Working with files and directories
  • LAB: Advanced file I/O
  • LAB: Working with directories

Day 4

Inter-process Communication

  • Files
  • Pipes and FIFOs
  • Message queues
  • Shared memory
  • Sockets and Signals
  • Other IPC methods
  • LAB: Communicating with pipes
  • LAB: Communicating with FIFOs
  • LAB: Communicating with message queues


  • Overview of concurrency
  • File locks
  • Semaphores
  • Mutexes
  • Condition variables
  • Deadlock
  • LAB: Linux synchronization


  • Overview of libraries
  • Static libraries
  • Shared libraries
  • Dynamically loaded libraries
  • Library tools
  • LAB: Working with libraries
  • LAB: Working with shared libraries at run time

Prerequisite Course

  • None

Prerequisite Skills

  • Basic understanding of embedded operating systems and debugging techniques
  • Functional knowledge of a Linux command-line environment
  • Basic understanding of makefiles and software build tools
  • One year of C or C++ programming experience on Linux/UNIX
  • This four-day expert-led course consists of lectures and lab sessions.
  • Attendees use Wind River Linux 6 and Wind River Workbench 3.3 to gain experience with the topics presented.
  • Participants examine and exercise simulated network topologies in hands-on labs.
  • Participants receive individual guidance from an expert engineer who has extensive experience with Wind River technologies.