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.
Publiczność
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
- Na żywo online (wirtualnie) lub na żywo (w klasie)
- 4 dni zajęć prowadzonych przez instruktora
- Praktyczne laboratoria i zadania
- Zasoby i podręcznik kursu
- Certyfikat ukończenia kursu
- Cyfrowa odznaka
Dowiedz się, jak tworzyć aplikacje dla środowiska Linux. W tym prowadzonym przez instruktora kursie zdobędziesz praktyczne doświadczenie z niezbędnymi narzędziami i metodami tworzenia aplikacji Linux oraz poznasz funkcje i techniki, które są unikalne dla Linux.
Czego się nauczysz?
W tym kursie dowiesz się o narzędziach i metodach tworzenia programów w języku C i programowania systemowego w Linux, technikach debugowania, zarządzaniu procesami, specyficznych dla Linux płatnych i systemowych wywołaniach i nie tylko.
Co zyskasz?
Ten kurs przygotuje cię do tworzenia aplikacji dla środowiska Linux.
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
United Arab Emirates - Developing Applications For Linux (LFD401)
Qatar - Developing Applications For Linux (LFD401)
Egypt - Developing Applications For Linux (LFD401)
Saudi Arabia - Developing Applications For Linux (LFD401)
South Africa - Developing Applications For Linux (LFD401)
Brasil - Developing Applications For Linux (LFD401)
Canada - Developing Applications For Linux (LFD401)
中国 - Developing Applications For Linux (LFD401)
香港 - Developing Applications For Linux (LFD401)
澳門 - Developing Applications For Linux (LFD401)
台灣 - Developing Applications For Linux (LFD401)
USA - Developing Applications For Linux (LFD401)
Österreich - Developing Applications For Linux (LFD401)
Schweiz - Developing Applications For Linux (LFD401)
Deutschland - Developing Applications For Linux (LFD401)
Czech Republic - Developing Applications For Linux (LFD401)
Denmark - Developing Applications For Linux (LFD401)
Estonia - Developing Applications For Linux (LFD401)
Finland - Developing Applications For Linux (LFD401)
Greece - Developing Applications For Linux (LFD401)
Magyarország - Developing Applications For Linux (LFD401)
Ireland - Developing Applications For Linux (LFD401)
Luxembourg - Developing Applications For Linux (LFD401)
Latvia - Developing Applications For Linux (LFD401)
España - Developing Applications For Linux (LFD401)
Italia - Developing Applications For Linux (LFD401)
Lithuania - Developing Applications For Linux (LFD401)
Nederland - Developing Applications For Linux (LFD401)
Norway - Developing Applications For Linux (LFD401)
Portugal - Developing Applications For Linux (LFD401)
România - Developing Applications For Linux (LFD401)
Sverige - Developing Applications For Linux (LFD401)
Türkiye - Developing Applications For Linux (LFD401)
Malta - Developing Applications For Linux (LFD401)
Belgique - Developing Applications For Linux (LFD401)
France - Developing Applications For Linux (LFD401)
日本 - Developing Applications For Linux (LFD401)
Australia - Developing Applications For Linux (LFD401)
Malaysia - Developing Applications For Linux (LFD401)
New Zealand - Developing Applications For Linux (LFD401)
Philippines - Developing Applications For Linux (LFD401)
Singapore - Developing Applications For Linux (LFD401)
Thailand - Developing Applications For Linux (LFD401)
Vietnam - Developing Applications For Linux (LFD401)
India - Developing Applications For Linux (LFD401)
Argentina - Developing Applications For Linux (LFD401)
Chile - Developing Applications For Linux (LFD401)
Costa Rica - Developing Applications For Linux (LFD401)
Ecuador - Developing Applications For Linux (LFD401)
Guatemala - Developing Applications For Linux (LFD401)
Colombia - Developing Applications For Linux (LFD401)
México - Developing Applications For Linux (LFD401)
Panama - Developing Applications For Linux (LFD401)
Peru - Developing Applications For Linux (LFD401)
Uruguay - Developing Applications For Linux (LFD401)
Venezuela - Developing Applications For Linux (LFD401)
Polska - Developing Applications For Linux (LFD401)
United Kingdom - Developing Applications For Linux (LFD401)
South Korea - Developing Applications For Linux (LFD401)
Pakistan - Developing Applications For Linux (LFD401)
Sri Lanka - Developing Applications For Linux (LFD401)
Bulgaria - Developing Applications For Linux (LFD401)
Bolivia - Developing Applications For Linux (LFD401)
Indonesia - Developing Applications For Linux (LFD401)
Kazakhstan - Developing Applications For Linux (LFD401)
Moldova - Developing Applications For Linux (LFD401)
Morocco - Developing Applications For Linux (LFD401)
Tunisia - Developing Applications For Linux (LFD401)
Kuwait - Developing Applications For Linux (LFD401)
Oman - Developing Applications For Linux (LFD401)
Slovakia - Developing Applications For Linux (LFD401)
Kenya - Developing Applications For Linux (LFD401)
Nigeria - Developing Applications For Linux (LFD401)
Botswana - Developing Applications For Linux (LFD401)
Slovenia - Developing Applications For Linux (LFD401)
Croatia - Developing Applications For Linux (LFD401)
Serbia - Developing Applications For Linux (LFD401)
Bhutan - Developing Applications For Linux (LFD401)