0,00  0

Koszyk

Brak produktów w koszyku.

RHD251 Red Hat Linux Programming

Produkt dostępny na zamówienie

Opis

Opis: Kurs przygotowuje do tworzenia aplikacji pracujących w środowisku systemu operacyjnego Red Hat Enterprise Linux. Przez pięć dni zajmujemy się koncepcjami, poznawaniem wewnętrznych mechanizmów API systemu operacyjnego oraz ich wykorzystywaniem w realnych aplikacjach. Kurs kładzie nacisk na realistyczne labolatoria oraz ćwiczenia. W ramach zajęć kształcimy umiejętności i rozwijamy wiedzę dotyczącą tworzenia wydajnych aplikacji we wszystkich dystrybucjach systemu Linux.

Cel:

  • Wykształcenie umiejętności obejmujących tworzenie wydajnych aplikacji na platformę Red Hat Enterprise Linux.
  • Zapoznanie się z właściwościami środowiska pracy programisty systemowego Linux
  • Dostarczenie wiedzy dotyczącej wywołań bibliotek i jądra systemu

Grupa docelowa: Wiedza i rozwijane umiejętności w ramach zajęć, będą przydatne twórcom aplikacji tworzonych także w systemach Windows i przenoszących swoje programy do środowiska systemu operacyjnego Linux.

Uwagi: Szkolenie trwa: 5 dni.
Oferujemy szkolenia w naszych ośrodkach w Warszawie, Wrocławiu, Krakowie i Gdyni, jak i w lokalizacjach wskazanych przez klienta.
W celu ustalenia szczegółów prosimy o kontakt na osec@osec.pl

Wymagania:

  • Średnio zaawansowana znajomość języka C.
  • Wiedza i umiejętności tożsame z zakresem certyfikaty RHCSA lub równoważnego (praca w środowisku tekstowym systemu GNU/Linux lub z rodziny Unix).
  • Tworzenia skryptów w środowisku powłoki systemowej.
  • Znajomości zasad pracy w środowisku edytorów systemowych vi lub emacs

Konspekt:

  1. GCC – Narzędzia GNU Compiler Collection
    • GNU Compiler Collection
    • Historia GCC
    • Cztery etapy przetwarzania programu w GCC
    • Wstrzymywanie pracy kompilatora na wybranych etapach
    • Kompilacja programu w języku C
    • Właściwości i mechanizmy preprocesora
    • Predefiniowane makra i symbole preprocesora
    • Ostrzeżenia i rozszerzenia kompilatora
    • Optymalizacja
    • Konsolidacja (ang. Linking) obiektów do programu
  2. Automatyzacja tworzenia aplikacji z użyciem narzędzia Make
    • Wstęp do make(1)
    • Zasady działania programu make
    • Składnia definicji celu w pliku Makefile
    • Przykłady: Pierwsze kroki z plikiem Makefile
    • Optymalizacja pliku Makefile
    • Cele domyślne (ang. Implicit Rules)
    • Przykład: Prostota jest lepsza w pliku Makefile
    • Zmienne
    • Definiowanie zmiennych
    • Przykład: Tworzenie Makefile z użyciem zmiennych
    • Zmienne automatyczne
    • Cele specjalne
    • Definiowanie przydatnych celów zastępczych
  3. Biblioteka GNU libc i wywołania systemowe
    • Właściwości i mechanizmy biblioteki glibc
    • Standardy bibliotek libc
    • GNU C Library – glibc
    • Funkcje biblioteki kontra wywołania systemowe
    • Użycie wywołań systemowych
    • Obsługa błędów z użyciem errno
    • Dekodowanie informacji o błędach poprzez errno
    • Użycie narzędzia systrace
  4. Argumenty wywołania programu i środowisko
    • Start programu
    • Użycie argc/argv
    • Obsługa opcji z użyciem getopt()
    • Obsługa opcji ,,długich” z użyciem getopt_long()
    • Środowisko
    • Manipulowanie zmiennymi środowiska
    • Zakończenie działania programu
    • Rejestrowanie procedury obsługi zakończenia programu
  5. Tworzenie bibliotek
    • Dlaczego używamy bibliotek?
    • Biblioteki statyczne i współdzielone
    • Plusy bibliotek statycznych
    • Plusy bibliotek współdzielonych
    • Tworzenie biblioteki statycznej
    • Użycie biblioteki statycznej
    • Tworzenie biblioteki współdzielonej
    • Użycie biblioteki współdzielonej
    • Zarządzanie bibliotekami współdzielonymi
    • Miejsca instalacji i dostępność bibliotek
    • Narzędzie ldconfig
  6. Działania związane z czasem
    • Jak jest obsługiwany czas w systemie?
    • Typy danych związanych z czasem
    • Czas rzeczywisty
    • Rzutowanie i konwersja typu time_t
    • Konwersja struktury tm
    • Czas w procesie
    • Arytmetyka związana z czasem
    • Zegary pracujące z dokładnością sekund
    • Zegary drobnoziarniste (ang. Fine-Grained Timers)
    • Zegar czasu rzeczywistego (ang. Real Time Clock)
  7. Zarządzanie procesem
    • Czym jest proces?
    • Zależności pomiędzy procesami
    • Tworzenie procesów potomnych
    • Uruchamianie innego kodu w procesie potomnym
    • Funkcje z rodziny exec*()
    • Oczekiwanie na działanie procesu potomnego (wait())
    • Oczekiwanie – dokładniej
    • Zmiana priorytetu procesu i poziomy uprzejmości (ang. nice)
    • Priorytety czasu rzeczywistego
  8. Operacje na pamięci
    • Alokacja i zwalnianie pamięci
    • Wyrównywanie struktur w pamięci
    • Blokowanie przestrzeni danych w pamięci
    • Inicjalizacja i kopiowanie pamięci
    • Porównywanie danych w pamięci
  9. Odpluskwianie (ang. Debugging)
    • Jakie działania wykonuje mój program?
    • Odpluskwianie na poziomie źródeł
    • Uruchamianie gdb
    • Wstęp do użycia gdb
    • Wyświetlanie zawartości i zmiana pamięci
    • Biblioteka debuginfo
    • Użycie gdb dla działającego procesu
    • Użycie gdb do autopsji w załamanym programie
    • Biblioteka ElectricFence
    • Odpluskwianie z użyciem valgrind
    • Profilowanie programu i strojenie wydajności
  10. Proste operacje na plikach
    • Strumień kontra wywołania systemowe
    • Otwieranie i zamykanie strumienia
    • Funkcje wejścia/wyjścia w strumieniu
    • Status i błędy strumienia
    • Pozycja kursora w strumieniu plikowym
    • Buforowanie strumienia
    • Pliki tymczasowe
    • Otwieranie i zamykanie deskryptorów plików
    • Operacje wejścia/wyjścia na deskryptorach plików
    • Repozycjonowanie w deskryptorach plików
    • Konwersje strumienia i deskryptora pliku
    • cat z użyciem wywołań ANSI I/O
    • cat z użyciem wywołań POSIX I/O
  11. Komunikowanie się z użyciem potoków
    • Wstęp do mechanizmu potoków
    • Standardowe wywołania wejścia/wyjścia: popen()/pclose()
    • Użycie popen()/pclose()
    • Wywołanie systemowe: pipe()
    • Użycie pipe()
    • Nazwane potoki
    • Użycie nazwanych potoków
    • Co warto jeszcze wiedzieć?
  12. Zarządzanie sygnałami
    • Czym jest sygnał w środowisku GNU/Linux
    • Blokowanie i sprawdzanie sygnałów
    • Praca z użyciem zbioru sygnałów
    • Przykład blokowania sygnału
    • Przechwytywanie sygnału z użyciem sigaction()
    • Przykład sigaction()
    • Przechwytywanie sygnału z użyciem signal()
    • Wysyłanie sygnału
    • Sygnały czasu rzeczywistego
  13. Programowanie z użyciem wątków
    • Wstęp do programowania wielowątkowego
    • Klasy aplikacji wielowątkowych
    • Tworzenie programu wielowątkowego
    • Tworzenie wątku
    • Identyfikacja wątku
    • Synchronizacja i przyłączanie
    • Odłączanie wątku
    • Zatrzymywanie wątku
    • Synchronizacja z użyciem wzajemnego wykluczania (ang. Mutex)
    • Użycie struktur Mutex
    • Blokady zapisu i odczytu
    • Zmienne warunkowe
    • Użycie zmiennych warunkowych
    • Ciekawostki i haczyki przy używaniu zmiennych warunkowych
    • Co warto jeszcze wiedzieć?
  14. Zaawansowane operacje na plikach
    • Operacje na katalogach
    • Operacje na systemie plików
    • Multipleksowane wejście/wyjście z użyciem select()
    • Różne funkcje wejścia/wyjścia
    • Operacje wejścia/wyjścia mapowane na pamięci
    • Użycie operacji wejścia/wyjścia mapowanych na pamięci
    • Blokowanie plików
  15. Komunikacja międzyprocesowa (ang. IPC)
    • Czym jest Interprocess Communication (IPC)?
    • Wstęp do wywołań POSIX IPC
    • Pamięć współdzielona POSIX
    • Semafory POSIX
    • Kolejki komunikatów POSIX
    • Wstęp do System V IPC
    • Pamięć współdzielona System V IPC
    • Tablice semaforów System V IPC
    • Kolejki komunikatów System V IPC
  16. Obsługa komunikacji sieciowej
    • Wstęp do podsystemu sieciowego Linux
    • Podstawowe wywołanie socket()
    • Funkcje klienta
    • Specyfikowanie adresu IPv4
    • Kolejność bajtów: sieciowa i hosta
    • Przykładowy klient TCP/IP
    • Funkcje konwersji adresów
    • Użycie getaddrinfo()
    • Funkcje serwera
    • Przykładowy serwer TCP/IP
    • Komunikacja datagramowa z użyciem protokołu UDP
  17. Praca w społeczności
    • Śledzenie pracy członków zespołu i społeczności
    • Główne wytyczne
    • Tworzenie społeczności
    • Licenses
    • GPL
    • LGPL
    • BSD
    • Creative Commons

Notyfikacja: Note: The course outline is subject to change as technology advances and the underlying job evolves. For questions or confirmation on a specific objective or topic, please contact us at osec@osec.pl

Najczęściej zadawane pytania:

Potrzebujesz więcej informacji, napisz do nas:

Note:
The course outline is subject to change as technology advances and the underlying job evolves. For questions or confirmation on a specific objective or topic, please contact us at osec@osec.pl
Autoryzowany partner
Cena netto
12 882,87 zł
Cena brutto (23%)
15 845,93 zł
Cena netto w EUR
3 025,00 €
Kurs przyjęty do powyższej kalkulacji 1 EUR = 4.2588 PLN – tabela nr. 169/C/NBP/2025, z dnia 2025-09-02. Obowiązująca od: 2025-09-02. Cena w PLN jest orientacyjna (wyliczana z EUR/USD wg kursu sprzedaży NBP z dnia wystawienia faktury). Przyjmujemy wpłaty w PLN lub EURO.

Uwagi

Oferujemy szkolenia wirtualne, self-paced oraz stacjonarne (w Warszawie i w lokalizacjach klienta).
W celu ustalenia szczegółów prosimy o kontakt na osec@osec.pl

Produkt dostępny na zamówienie

Brak zaplanowanych terminów.

Twoje IT. Twoje zasady. Twoje możliwości.

Join our newsletter to stay up to date on features and releases.

By subscribing, you agree to our Privacy Policy and consent to updates.
© 2025  OSEC sp. z o.o.  All rights reserved.
Polityka prywatności