Unix/Linux for embedded/telecom — Systems programming in POSIX® environments

Unix/Linux for embedded/telecom — Systems programming in POSIX® environments
This training course prepares developers to work on communication or embedded-style applications for GNU/Linux or other POSIX environment (BSD, QNX, etc.).
Duration
20 hours
Course type
Training
Language
English
Duration
20 hours
Location
Training
Language
English
Code
ADM-008
Labels
Middle
Training for 7-8 or more people? Customize trainings for your specific needs
Unix/Linux for embedded/telecom — Systems programming in POSIX® environments
Duration
20 hours
Location
Training
Language
English
Code
ADM-008
Labels
Middle
€ 400 *
Training for 7-8 or more people? Customize trainings for your specific needs

Description

This training course prepares developers to work on communication or embedded-style applications for GNU/Linux or other POSIX® environment (BSD®, QNX®, etc.). The course will cover features common to the Unix family of operating systems, mainly APIs from the POSIX® standards (Portable Operating System Interface = IEEE Std 1003.*).
certificate
After completing the course, a certificate
is issued on the Luxoft Training form

Objectives

After finishing the course participants will be able to:
  1. Find the specific information required for their tasks in man pages or standard documents;
  2. Identify simple mistakes and problems/risks in a code that uses POSIX® APIs;
  3. Know what points to consider when designing or modifying embedded-style applications.

Target Audience

  • Software developers

Prerequisites

Important:

  1. Good knowledge of the C programming language;
  2. Ability to use the command-line interface (shell) on GNU/Linux or other Unix system—at least basic tasks like file management, search;
  3. Basic notions of concurrent programming.

To benefit from some of the discussions, it would be nice to have:

  1. Actual development experience—at least debugging bigger C programs, preferably production code;
  2. Basic networking knowledge (TCP/IP introduction, let's say at the level of CCNA 1).
"TYPE"html";}

Roadmap

  • User-kernel interface (system calls, errno, libc)
  • Processes, signals
  • Universal I/O model: everything tries to be a file, or at least a stream of bytes — devices, sockets etc
  • File system
  • A few tools to explore Unix I/O and investigate a program's behavior: strace, dd, netcat/socat
  • Inter-Process Communication (IPC) — including shared memory, mappings (mmap).
  • Overhead: sources (system call, memory copy, scanning, memory allocation, etc.); minimizing overhead
  • POSIX® Threads (‘pthread’) API and its interactions with previously described features
  • Advanced I/O: non-blocking, Async, polling
  • Sync vs. Async, adapting between these approaches
  • Daemon processes
  • System startup

"TYPE"html";}
Still have questions?
Connect with us