Szkolenie: Programowanie systemowe w Linux
Szkolenie Programowanie systemowe w Linux to praktyczny kurs dla programistów C, który uczy projektowania i implementacji aplikacji systemowych z wykorzystaniem wielowątkowości, synchronizacji, komunikacji międzyprocesowej, obsługi procesów, sygnałów oraz usług sieciowych w środowisku Linux
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:5 dni (40h)
Kod kursu:PS/LINUX
Programowanie systemowe w Linux
Cele szkolenia
Szkolenie przygotowuje do samodzielnego projektowania i implementacji aplikacji systemowych w środowisku Linux z wykorzystaniem mechanizmów wielowątkowości, synchronizacji, komunikacji międzyprocesowej oraz usług sieciowych
Szkolenie uczy prawidłowego stosowania narzędzi i technik programowania systemowego, umożliwiając efektywne zarządzanie procesami, pamięcią i zasobami systemowymi
Szkolenie omawia zagadnienia bezpieczeństwa, diagnostyki oraz rozbudowy systemu, przygotowując do rozwiązywania typowych problemów programistycznych w systemie Linux
Dla kogo?
Programiści C posiadający podstawowe doświadczenie w programowaniu, chcący rozwinąć umiejętności w zakresie programowania systemowego w Linux
Inżynierowie oprogramowania odpowiedzialni za rozwój, utrzymanie lub optymalizację aplikacji działających w środowisku Linux
Osoby przygotowujące się do pracy przy projektach embedded lub systemach serwerowych opartych o Linux
Efekty kształcenia
Uczestnik projektuje i implementuje aplikacje systemowe w środowisku Linux
Uczestnik analizuje i rozwiązuje problemy związane z wielowątkowością i synchronizacją
Uczestnik obsługuje komunikację międzyprocesową i usługi sieciowe
Uczestnik stosuje narzędzia diagnostyczne i analizuje wydajność aplikacji
Uczestnik wdraża mechanizmy bezpieczeństwa w aplikacjach systemowych
Uczestnik wykorzystuje biblioteki i interfejsy systemowe Linux
Wymagania
Od uczestników szkolenia wymagana jest umiejętność programowania w języku C
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Wprowadzenie do systemu Linux
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 i System V
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
Limitowanie zasobów
Aspekty bezpieczeństwa: prawa procesu
Sygnały
Typy sygnałów
Obsługa sygnałów
Synchronizacja
Aktywne oczekiwanie
Pojęcie wyścigu
Sekcje krytyczne, pojęcie zakleszczenia
Muteksy
Semafory
Pamięć operacyjna
Prawa dostępu do pamięci
Blokowanie pamięci
Pamięć współdzielona
Mapowanie pamięci
Operacje na plikach
Obsługa systemu plików
Bufory zapisu/odczytu
Dowiązania symboliczne i twarde
Aspekty bezpieczeństwa: prawa dostępu do plików
Komunikacja międzyprocesowa
Potoki nazwane i nienazwane
Kolejki komunikatów
Usługi sieciowe
Architektura klient-serwer
Programowanie gniazd TCP
Programowanie gniazd UDP
Obsługa protokołów IPv4 i IPv6
Gniazda surowe
Obsługa urządzeń
Podsystem plików /dev
Rodzaje (znakowe, blokowe, specjalne) i techniki dostępu do urządzeń
Bezpieczeństwo
Uwierzytelnianie z wykorzystaniem modułów PAM
Typowe błędy programistyczne
Narzędzia analizy statycznej i dynamicznej programów
Rozszerzanie systemu
Nowe wywołania systemowe
Moduły jądra
Wybrane opinie
Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi
