Adresaci szkolenia

Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać oraz wykorzystać charakterystyczne mechanizmy systemowe tej rodziny systemów operacyjnych.

Cel szkolenia

Uczestnicy szkolenia będą wiedzieli jak prawidłowo korzystać z różnorodnych mechanizmów systemowych w środowisku Linux, w szczególności związanych z wielowątkowością, synchronizacją, komunikacją międzyprocesową oraz usługami sieciowymi. Omówione zostaną poszczególne obszary zastosowań mechanizmów systemowych.

Mocne strony szkolenia

Podczas szkolenia uczestnicy:

  • w praktycznych zadaniach poznają problematykę projektowania i implementacji aplikacji wykorzystujących dostępne mechanizmy systemowe w Linux,
  • wykonają wiele praktycznych zadań, które zobrazują poruszane problemy implementacyjne,
  • zrealizują aplikacje wykorzystujące między innymi mechanizmy współbieżności oraz komunikacji międzyprocesowej i sieciowej.

Wymagania

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Specjalne wymagania techniczne

Uczestnicy w trakcie zajęć korzystają z komputera z systemem Linux.

Parametry szkolenia

5 * 8 godzin (5 * 7 godzin netto) wykładów i warsztatów.

Program szkolenia

  1. Wprowadzenie do systemu Linux

    • architektura systemu
    • cechy systemu operacyjnego Linux
    • jądro systemu
    • pamięć wirtualna
    • wielozadaniowość i wielowątkowość
    • współdzielenie zasobów i synchronizacja
    • praca z powłoką, kompilator GCC, debugger, program make
    • tworzenie i wykorzystanie bibliotek statycznych i współdzielonych
    • biblioteka glibc
    • struktury systemowe
    • podsystem plików /proc i /sys
    • śledzenie wywołań systemowych
    • pobieranie informacji systemowych
    • interfejs programistyczny POSIX
  2. Procesy i wątki

    • 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
  3. Sygnały i ich obsługa

    • typy sygnałów
    • obsługa sygnałów
  4. Synchronizacja

    • aktywne oczekiwanie
    • pojęcie wyścigu
    • sekcje krytyczne, pojęcie zakleszczenia
    • muteksy, szybkie muteksy w przestrzeni użytkownika
    • semafory
  5. Pamięć

    • prawa dostępu do pamięci
    • blokowanie pamięci
    • pamięć współdzielona
    • mapowanie pamięci
  6. Operacje na plikach

    • 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
  7. Komunikacja międzyprocesowa

    • potoki nazwane i nienazwane
    • kolejki komunikatów
  8. Usługi sieciowe

    • architektura klient-serwer
    • programowanie gniazd TCP
    • programowanie gniazd UDP
    • obsługa protokołów IPv4 i IPv6
    • gniazda surowe
  9. Obsługa urządzeń

    • podsystem plików /dev
    • rodzaje (znakowe, blokowe, specjalne) i techniki dostępu do urządzeń
  10. Bezpieczeństwo

    • uwierzytelnianie, moduły PAM (ang. pluggable authentication modules)
    • typowe błędy programistyczne
    • narzędzia analizy statycznej i dynamicznej programów
  11. Rozszerzanie systemu

    • nowe wywołania systemowe
    • moduły jądra

Pytania?

* Wymagane.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email