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.).
20 hours
Online
English
ADM-008
Unix/Linux for embedded/telecom — Systems programming in POSIX® environments
Sign Up
Duration
20 hours
Location
Online
Language
English
Code
ADM-008
Schedule and prices
€ 400 *
Training for 7-8 or more people? Customize trainings for your specific needs
Unix/Linux for embedded/telecom — Systems programming in POSIX® environments
Sign Up
Duration
20 hours
Location
Online
Language
English
Code
ADM-008
Schedule and prices
€ 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.*).
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

a:2:{s:4:"TEXT";s:691:"

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).
";s:4:"TYPE";s:4:"html";}

Roadmap

a:2:{s:4:"TEXT";s:822:"
  • 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

";s:4:"TYPE";s:4:"html";}
Schedule and prices
View:
Register for the next course
Registering in advance ensures you have priority. We will notify you when we schedule the next course on this topic
+
Courses you may be interested in
Linux Essentials
The purpose of this course is to provide an introduction to the Linux operating system, mainly from the perspective of a system administrator. The focus is on practical skills backed by hands-on examples, but adequate theoretical notions are also given when needed.
Online:
08.01.2024 - 12.01.2024
Linux Routing and Switching
The purpose of this course is to explore the most important aspects of networking in Linux, especially routing and switching. The approach of this training is mainly from an administrative point of view.
Python® Basics
This Python® training course leads the students from the basics of writing and running Python® scripts to more advanced features such as file operations, regular expressions, error handling, system and network programming and the use of the extensive functionality of Python® modules.
View Catalog
Your benefits
Expertise
Our trainers are industry experts, involved in software development project
Live training
Facilitated online so that you can interact with the trainer and other participants
Practice
A focus on helping you practice your new skills
Still have questions?
Connect with us
Thank you!
The form has been submitted successfully.