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
  • Language English
  • format Online
duration
20 hours
location
Online
Language
English
Code
ADM-008
price
€ 400 *

Available sessions



Training for 7-8 or more people?
Customize trainings for your specific needs
customize trainings

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.*).

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).

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

  • Trainer

Alexandru Nedel

Senior Software Architect


Related courses

You may also be interested in

Discover more about professional growth and skills development

contact us