Programowanie systemowe w Linux

LICZBA DNI: 5 (40h)

KOD KURSU: PS/LINUX

# linux

# c

# programming

Autor szkolenia:
Piotr Nazimek

Szkolenie na zamówienie

Szkolenie dostosowane do potrzeb Twojego zespołu. Dostępne WYŁĄCZNIE na zamówienie.

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin

Interesuje Cię ta tematyka i szukasz szkolenia tylko dla siebie?

O szkoleniu

DLA KOGO?

Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać oraz wykorzystać mechanizmy systemowe

WYMAGANIA

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C

ZALETY

Szkolenie warsztatowe, tematyka omawiana jest na praktycznych przykładach realizowanych przez uczestników w formie krótkich zadań programistycznych

Uczestnicy przygotują między innymi aplikacje typu demon oraz oprogramowanie w architekturze klient-serwer

Cele szkolenia

Nauka prawidłowego korzystania z różnorodnych mechanizmów systemowych środowiska Linux, w szczególności związanych z wielowątkowością, synchronizacją, komunikacją międzyprocesową oraz usługami sieciowymi

Omówienie poszczególnych obszarów zastosowań mechanizmów systemowych

Poznanie problematyki projektowania i implementacji aplikacji wykorzystujących dostępne mechanizmy systemowe w Linux

Program

  • Architektura systemu
  • Jądro systemu
  • Pamięć wirtualna
  • Wielozadaniowość i wielowątkowość
  • Współdzielenie zasobów
  • Współbieżność i synchronizacja
  • Narzędzia programisty systemowego
  • Tworzenie i użycie bibliotek statycznych i współdzielonych
  • Struktury systemowe
  • Podsystem plików /proc i /sys
  • Śledzenie wywołań systemowych
  • Pobieranie informacji systemowych
  • Interfejs programistyczny POSIX
  • Tworzenie procesów i wątków, procesy potomne
  • Przestrzeń użytkownika i przestrzeń jądra
  • Stany procesów
  • Priorytety procesów, szeregowanie procesów
  • Zarządzanie procesami, grupy procesów
  • Procesy demony
  • Statystyki procesu, czasomierze
  • Operacje blokujące i nieblokujące
  • Usypianie procesów, obsługa czasu
  • Aspekty bezpieczeństwa: prawa procesu
  • Typy sygnałów
  • Obsługa sygnałów
  • Aktywne oczekiwanie
  • Pojęcie wyścigu
  • Sekcje krytyczne, pojęcie zakleszczenia
  • Muteksy
  • Semafory
  • Prawa dostępu do pamięci
  • Blokowanie pamięci
  • Pamięć współdzielona
  • Mapowanie pamięci
  • Obsługa systemu plików
  • System plików w przestrzeni użytkownika (FUSE)
  • Bufory zapisu/odczytu
  • Dowiązania symboliczne i twarde
  • Aspekty bezpieczeństwa: prawa dostępu do plików
  • Potoki nazwane i nienazwane
  • Kolejki komunikatów
  • Architektura klient-serwer
  • Programowanie gniazd TCP
  • Programowanie gniazd UDP
  • Obsługa protokołów IPv4 i IPv6
  • Gniazda surowe
  • Podsystem plików /dev
  • Rodzaje (znakowe, blokowe, specjalne) i techniki dostępu do urządzeń
  • Uwierzytelnianie z wykorzystaniem modułów PAM
  • Typowe błędy programistyczne
  • Narzędzia analizy statycznej i dynamicznej programów
  • Nowe wywołania systemowe
  • Moduły jądra

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.