Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Plan Szkolenia
Wprowadzenie
- Cele
- Kim jesteś
- Fundacja Linux
- Szkolenie Linux Foundation
- Programy certyfikacji i odznaki cyfrowe
- Linux Dystrybucje
- Platformy
- Przygotowanie systemu
- Używanie i pobieranie maszyny wirtualnej
- Rzeczy zmieniają się w Linux
Wstęp
- Procedury
- Standardy i LSB
Jak pracować w projektach OSS **
- Przegląd sposobów prawidłowego wnoszenia wkładu
- Pozostań blisko głównej linii dla bezpieczeństwa i jakości
- Przestudiowanie i zrozumienie DNA projektu
- Ustalenie, co chcesz zrobić Scratch
- Identyfikacja opiekunów oraz ich przepływów pracy i metod
- Uzyskaj wczesny wkład i pracuj otwarcie
- Przyczyniaj się do przyrostowych bitów, a nie dużych zrzutów kodu
- Zostaw swoje ego za drzwiami: Don’t Be ThinSkinned
- Bądź cierpliwy, rozwijaj długoterminowe relacje, bądź pomocny
Kompilatory
- GCC
- Inne kompilatory
- Główne opcje gcc
- Preprocesor
- Zintegrowane środowiska programistyczne (IDE)
- Laboratoria
Biblioteki
- Biblioteki statyczne
- Biblioteki współdzielone
- Łączenie z bibliotekami
- Ładowarka z dynamicznym łączeniem
- Laboratoria
Marka
- Korzystanie z plików make i makefile
- Tworzenie dużych projektów
- Bardziej skomplikowane reguły
- Wbudowane reguły
- Laboratoria
Kontrola źródła
- Kontrola źródła
- RCS i CVS
- Subversion
- git
- Laboratoria
Debugowanie i zrzuty rdzenia
- gdb
- Czym są pliki Core Dump?
- Tworzenie zrzutów podstawowych
- Badanie zrzutów podstawowych
- Laboratoria
Narzędzia do debugowania
- Uzyskiwanie czasu
- Profilowanie i wydajność
- valgrind
- Laboratoria
Wywołania systemowe
- Wywołania systemowe a funkcje biblioteczne
- Jak wykonywane są wywołania systemowe
- Wartości zwracane i numery błędów
- Laboratoria
Pamięć Management i alokacja
- Pamięć Management
- Dynamiczna alokacja
- Dostrajanie funkcji malloc()
- Blokowanie stron
- Laboratoria
Pliki i systemy plików w Linux**.
- Pliki, katalogi i urządzenia
- Wirtualny system plików
- System plików ext2/ext3
- Systemy plików z dziennikiem
- System plików ext4/
- Laboratoria
Plik we/wy
- Pliki we/wy systemu UNIX
- Otwieranie i zamykanie plików
- Odczyt, zapis i wyszukiwanie
- Pozycyjne i wektorowe operacje wejścia/wyjścia
- Standardowa biblioteka we/wy
- Obsługa dużych plików (LFS)
- Laboratoria
Zaawansowane operacje na plikach
- Funkcje statystyczne
- Funkcje katalogów
- inotify
- Mapowanie pamięci
- flock() i fcntl()
- Tworzenie plików tymczasowych
- Inne wywołania systemowe
- Laboratoria
Procesy I
- Czym jest proces?
- Limity procesów
- Grupy procesów
- System plików proc
- Metody międzyprocesowe Communication
- Laboratoria
Procesy II
- Użycie funkcji system() do utworzenia procesu
- Użycie funkcji fork() do utworzenia procesu
- Użycie exec() do utworzenia procesu
- Użycie funkcji clone()
- Wyjście
- Konstruktory i destruktory
- Oczekiwanie
- Procesy demona
- Laboratoria
Pipes and Fifos
- Pipes i InterProcess Communication
- popen() i pclose()
- pipe()
- Nazwane potoki (FIFO)
- splice(), vmsplice() i tee()
- Laboratoria
Asynchroniczne wejścia/wyjścia**
- Czym jest asynchroniczne we/wy?
- Interfejs API asynchronicznego wejścia/wyjścia POSIX
- Linux Implementacja
- Laboratoria
Sygnały I
- Czym są sygnały?
- Dostępne sygnały
- Wysyłanie sygnałów
- Alarmy, wstrzymanie i uśpienie
- Konfigurowanie programu obsługi sygnałów
- Zestawy sygnałów
- sigaction()
- Laboratoria
Sygnały II
- Reentrancy i obsługa sygnałów
- Skoki i zwroty nielokalne
- siginfo i sigqueue()
- Sygnały czasu rzeczywistego
- Laboratoria
Wątki POSIX I
- Wielowątkowość w Linux
- Podstawowa struktura programu
- Tworzenie i niszczenie wątków
- Sygnały i wątki
- Rozwidlanie a wątkowanie
- Laboratoria
Wątki POSIX II
- Blokady i warunki wyścigu
- Operacje na muteksach
- Semafory
- Futexy
- Operacje warunkowe
- Laboratoria
Networking i Gniazda
- Networking Warstwy
- Czym są gniazda?
- Gniazda strumieniowe
- Gniazda datagramów
- Gniazda nieprzetworzone
- Porządkowanie bajtów
- Laboratoria
Gniazda Adresy i hosty
- Struktury adresów gniazd
- Konwersja adresów IP
- Informacje o hoście
- Laboratoria
Gniazda Porty i protokoły
- Informacje o porcie usługi
- Informacje o protokole
- Laboratoria
Gniazda Klienci
- Podstawowa sekwencja klienta
- socket()
- connect()
- close() i shutdown()
- Klient UNIX
- Klient internetowy
- Laboratoria
Gniazda Serwery
- Podstawowa sekwencja serwera
- bind()
- listen()
- accept()
- Serwer UNIX
- Serwer internetowy
- Laboratoria
Gniazda Operacje wejścia/wyjścia
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Labs
Gniazda Opcje
- Pobieranie i ustawianie opcji gniazda
- fcntl()
- ioctl()
- getsockopt() i setsockopt()
- Laboratoria
Gniazda Netlink**
- Czym są gniazda netlink?
- Otwieranie gniazda netlink
- Komunikaty netlink
- Laboratoria
Gniazda Multipleksowanie i serwery współbieżne
- Wielokrotne i asynchroniczne wejścia/wyjścia gniazda
- select()
- poll()
- pselect() i ppoll()
- epoll
- I/O sterowane sygnałami i asynchroniczne
- Serwery współbieżne
- Laboratoria
Inter Process Communication
- Metody IPC
- POSIX IPC
- System V IPC**
- Laboratoria
Pamięć współdzielona
- Czym jest pamięć współdzielona?
- Pamięć współdzielona POSIX
- Pamięć współdzielona w systemie V**
- Laboratoria
Semafory
- Czym jest semafor?
- Semafory POSIX
- Semafory systemu V**
- Laboratoria
Ogony wiadomości
- Czym są kolejki komunikatów?
- Kolejki komunikatów POSIX
- Kolejki komunikatów systemu V**
- Laboratoria
Wymagania
Ten kurs jest przeznaczony dla doświadczonych programistów. Studenci powinni być biegli w programowaniu w języku C i znać podstawowe Linux narzędzia i edytory tekstu.
Uczestnicy
Ten kurs jest przeznaczony dla doświadczonych programistów. Studenci powinni być biegli w programowaniu w języku C i znać podstawowe Linux narzędzia i edytory tekstu.
Poziom doświadczenia: Średniozaawansowany
28 godzin