Systems and Network Programming for Embedded Linux

Course

In Carshalton

£ 1,750 + VAT

Description

  • Type

    Course

  • Location

    Carshalton

  • Duration

    5 Days

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. Suitable for: 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.

Facilities

Location

Start date

Carshalton (Surrey)
See map
1-3 Fairlands House, North Street, SM5 2HW

Start date

On request

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Course programme

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 ELinos Linux. 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
  • Receiving command line arguments
  • Accessing environment variables
  • Reading and writing stdin and stdout
  • How to detect and handle system call errors
Multiprocessing
  • The memory model and life cycle of a process
  • Creating processes with fork
  • Executing programs with exec
  • Waiting for process termination
  • Returning and retrieving exit status
Multithreading
  • The memory model and life cycle of a thread
  • Creating threads with the pthreads API
  • Waiting for thread termination
  • How are threads and processes different?
  • Synchronising access to shared data
  • When to use multiple processes and threads
Basic I/O
  • Low-level input and output
  • Reading and writing files
  • Changing file attributes
  • Managing files and directories
Interprocess Communication
  • Pipes
  • Message queues
  • Shared memory
  • Semaphores
Signals
  • What are signals for?
  • Sending signals
  • Ignoring and catching signals
  • Writing signal handlers
Working with the Linux Security Model
  • Changing file permissions and ownerships
  • Accessing the user account database
  • Setting the user identity of a process
Network Communication (IPv4)
  • TCP/IP fundamentals
  • Client/server programming
  • Connection-oriented sockets
  • Connectionless sockets
  • Name resolution
Overview of IPv6 and network programming with IPv6 The Linux development environment
  • The traditional build model
  • Header files
  • Automating rebuilds with make
  • Writing platform-independent code with GNU configure
  • Using Eclipse as an integrated C development enviromnent
  • Debugging with gdb
  • Overview of Autoconf and Automake
  • Overview of Version Control using CVS or Subversion (SVN)
  • Overview of Cross Compilers and Cross Compilation Tool Chains

Systems and Network Programming for Embedded Linux

£ 1,750 + VAT