Szkolenia The Linux Foundation

Cel szkolenia dlearning

kod: LFD401

Ten czterodniowy kurs ma na celu pomóc doświadczonym programistom w szybkim przygotowaniu aplikacji w środowisku Linux. Podczas tego kursu zdobędziesz praktyczne doświadczenie z niezbędnymi narzędziami i metodami tworzenia aplikacji dla systemu Linux oraz poznasz funkcje i techniki unikalne dla systemu Linux.

Podczas tego kursu:

  • Poznasz narzędzia i metody tworzenia programów w C i programowania systemów pod Linuxa.
  • Nauczysz się techniki debugowania i zarządzania procesami.
  • Poznasz wywołania systemowe specyficzne dla systemu Linux.
  • I więcej.

Informacje zawarte w tym kursie będą kompatybilne z każdą główną dystrybucją Linux.

Plan szkolenia Rozwiń listę

  1. Wprowadzenie
    • Cele
    • Kim jesteś
    • Linux Foundation
    • Linux Foundation Training
    • Dystrybucje Linux
    • Platformy
    • Przygotowanie system
    • Pobieranie i używanie maszyny wirtualnej
    • Rzeczy zmieniają się w Linux
    • Rejestracja kursu
  2. Czynności wstępne
    • Procedury
    • Standardy i LSB
  3. Jak pracować w projektach OSS **
    • Omówienie wniesienia prawidłowego udziału
    • Pozostań blisko głównej linii bezpieczeństwa i jakości
    • Badanie i zrozumienie DNA projektu
    • Określ czym chcesz się zająć
    • Zidentyfikowanie osób odpowiedzialnych, ich przepływu pracy i metod
    • Uzyskaj wczesne wejście i pracę w otwartym środowisku
    • Przekazuj przyrostowe bity, zamiast dużych fragmentów kodu
    • Zostaw swoje ego przed drzwiami: nie bądź wrażliwy
    • Bądź cierpliwy, rozwijaj relacje długoterminowe, bądź pomocny
  4. Kompilatory
    • GCC
    • Inne kompilatory
    • Główne opcje GCC
    • Preprocesor
    • Zintegrowane środowiska programistyczne (IDE)
    • Laboratorium
  5. Biblioteki
    • Biblioteki statyczne
    • Wspólne biblioteki
    • Łączenie z bibliotekami
    • Dynamiczny program ładujący
    • Laboratorium
  6. Make
    • Używanie Make i Makefile
    • Budowanie dużych projektów
    • Bardziej skomplikowane zasady
    • Wbudowane reguły
    • Laboratorium
  7. Kontrola źródła
    • Kontrola źródła
    • RCS i CVS
    • Subversion
    • Git
    • Laboratorium
  8. Debugowanie i Core Dumps
    • Gdb
    • Co to jest Core Dump Files?
    • Produkcja Core Dumps
    • Badanie Core Dumps
    • Laboratorium
  9. Narzędzia debugowania
    • Electric Fence
    • Zdobywanie czasu
    • Profilowanie i wydajność
    • Valgrind
    • Laboratorium
  10. Wywołania systemowe
    • Wywołania systemowe, a funkcje biblioteki
    • Jak wykonywane są wywołania systemowe
    • Wartości zwrotne i numery błędów
    • Laboratorium
  11. Zarządzanie pamięcią i alokacją
    • Zarządzanie pamięcią
    • Dynamiczna alokacja
    • Tuning malloc()
    • Blokowanie stron
    • Laboratorium
  12. Pliki i systemy plików w Linux **
    • Pliki, katalogi i urządzenia
    • Wirtualny system plików
    • System plików ext2/ext3
    • Systemy plików dziennika
    • System plików ext4/
    • Laboratorium
  13. File I/O
    • UNIX File I/O
    • Otwieranie i zamykanie
    • Czytanie, pisanie i szukanie
    • Pozycyjne i wektorowe I/O
    • Standardowa biblioteka I/O
    • Obsługa dużych plików (LFS)
    • Laboratorium
  14. Zaawansowane operacje na plikach
    • Funkcje statystyczne
    • Funkcje katalogu
    • Inotify
    • Mapowanie pamięci
    • Flock() i fcntl()
    • Tworzenie plików tymczasowych
    • Inne wywołania systemowe
    • Laboratorium
  15. Procesy – I
    • Co to jest proces?
    • Limity procesowe
    • Grupy procesowe
    • System plików proc
    • Metody komunikacji między procesami
    • Laboratorium
  16. Procesy – II
    • Używanie system() do tworzenia procesu
    • Używanie fork() do tworzenia procesu
    • Używanie exec() do utworzenia procesu
    • Korzystanie z polecenia clone()
    • Wyjście
    • Konstruktorzy i destruktory
    • Oczekiwanie
    • Procesy demon
    • Laboratorium
  17. Pipes i Fifos
    • Pipes i komunikacja między procesami
    • Popen() i pclose()
    • Pipe()
    • Nazwane powłoki (FIFO)
    • Splice(), vmsplice() i tee()
    • Laboratorium
  18. Asynchroniczne I/O **
    • Co to jest Asynchroniczne I/O?
    • API Asynchronicznego I/O POSIX
    • Implementacja Linux
    • Laboratorium
  19. Sygnały – I
    • Co to są sygnały?
    • Dostępne sygnały
    • Wysyłanie sygnałów
    • Alarmy, pauzy i uśpienie
    • Konfiguracja Signal Handler
    • Zestawy sygnałów
    • Sigaction()
    • Laboratorium
  20. Sygnały – II
    • Reentrancy i Signal Handler
    • Skoki i zwroty nielokalne
    • Siginfo i sigqueue()
    • Sygnały w czasie rzeczywistym
    • Laboratorium
  21. Wątki POSIX – I
    • Wielowątkowość w Linux
    • Podstawowa struktura programu
    • Tworzenie i niszczenie wątków
    • Sygnały i wątki
    • Forking a Threading
    • Laboratorium
  22. Wątki POSIX – II
    • Deadlocks i Race Conditions
    • Operacje Mutex
    • Semafory
    • Futexy
    • Operacje warunkowe
    • Laboratorium
  23. Sieci i gniazda
    • Warstwy sieciowe
    • Co to są gniazda?
    • Gniazda strumieniowe
    • Gniazda datagramowe
    • Surowe gniazda
    • Kolejność bajtów
    • Laboratorium
  24. Gniazda – adresy i hosty
    • Struktura adresów gniazd
    • Konwersja adresów IP
    • Informacje o gospodarzu
    • Laboratorium
  25. Gniazda – porty i protokoły
    • Informacje o porcie usług
    • Informacje o protokole
    • Laboratorium
  26. Gniazda – klienci
    • Podstawowa sekwencja klientów
    • Socket()
    • Connect()
    • Close() i shutdown()
    • Klient UNIX
    • Klient internetowy
    • Laboratorium
  27. Gniazda – serwery
    • Podstawowa sekwencja serwerów
    • Bind()
    • Listen()
    • Accept()
    • Serwer UNIX
    • Serwer internetowy
    • Laboratorium
  28. Gniazda – operacje wejścia/wyjścia
    • Write(), read()
    • Send(), recv()
    • Sendto(), recvfrom()
    • Sendmsg(), recvmsg()
    • Sendfile()
    • Socketpair()
    • Laboratorium
  29. Gniazda – opcje
    • Pobieranie i ustawianie opcji gniazd
    • Fcntl()
    • Loctl()
    • Getsockopt() i setsockopt()
    • Laboratorium
  30. Gniazda Netlink **
    • Co to są gniazda Netlink?
    • Otwieranie gniazd Netlink
    • Wiadomości Netlink
    • Laboratorium
  31. Gniazda – multipleksowanie i serwery współbieżne
    • Gniazda multipleksowe i asynhroniczne I/O
    • Select()
    • Poll()
    • Pselect() i ppoll()
    • Epoll
    • Sygnałowe I asynchroniczne I/O
    • Serwery współbieżne
    • Laboratorium
  32. Komunikacja między procesami
    • Metody IPC
    • POSIX IPC
    • System V IPC **
    • Laboratorium
  33. Pamięć współdzielona
    • Co to jest pamięć współdzielona?
    • Pamięć współdzielona POSIX
    • Pamięć współdzielona System V **
    • Laboratorium
  34. Semafory
    • Co to jest semafor?
    • Semafory POSIX
    • Semafory systemowe V **
    • Laboratorium
  35. Kolejki komunikatów
    • Czym są kolejki komunikatów?
    • Kolejki komunikatów POSIX
    • Kolejki komunikatów systemu V **
    • Laboratorium
  36. Ankieta zamknięcia i oceny

** Te sekcje mogą być uznane za częściowo lub w całości opcjonalne. Zawierają materiały źródłowe, tematy specjalistyczne lub przedmioty zaawansowane. Instruktor może zdecydować się na ich omówienie lub nie, w zależności od doświadczenia grupy i ograniczeń czasowych.

Pobierz konspekt szkolenia w formacie PDF

Dodatkowe informacje

Wymagania

Ten kurs przeznaczony jest dla doświadczonych programistów. Uczestnicy powinni być biegli w programowaniu w języku C i zaznajomieni z podstawowymi narzędziami Linux oraz edytorami tekstu.

Poziom trudności
Czas trwania 4 dni
Certyfikat

Uczestnicy otrzymają certyfikaty podpisane przez The Linux Foundation.

Prowadzący

Certyfikowany trener The Linux Foundation.

Pozostałe szkolenia The Linux Foundation | Linux

Szkolenia powiązane tematycznie

Programowanie

Systemy operacyjne