About Us | [Public iPhone iPad Courses] | [Public Android Courses] | [Public Arduino Courses] | [Contact Us]

Duration: 5 Days

Intended Audience

Attendees are expected to have a good knowledge of Linux/Unix and C programming, and should have experience of working with embedded systems. Courses ELIN101 "Linux for Embedded and Real Time System Developers" and SMC103 "Introduction to C Programming for Embedded Systems" provide suitable background.

Course Overview

The course focuses on the system call API provided by the linux kernel to application software; that is, on the Linux "virtual machine" as defined by the POSIX standard (IEEE 1003.1). The course covers all major system programming features of Linux, from basic I/O operations to interprocess and network communications, to the exploitation of concurrency through the use of threads and processes.

Programs will be developed to run on PCs running SUSE or Debian Linux, and an ARM9 target board running an embedded Linux kernel. However, the approach is generic and does not rely on features specific to any one Linux distribution.

Course Benefits

You will learn how to write well structured and efficient code that makes use of the POSIX API. You'll become proficient in the use of standard idioms and patterns for creating and managing multiple processes and threads, and in using the various inter-process communication mechanisms provided by the POSIX API for synchronising processes and threads. You'll also learn how to implement TCP/IP applications - both client and server side -- using the sockets API.


Course Contents

Getting Started

Multiprocessing

Multithreading

Basic I/O

Interprocess Communication

Signals

Working with the Linux Security Model

Network Communication (IPv4)

Overview of IPv6 and network programming with IPv6

The Linux development environment