Logowanie:

Zarejestruj się
zapamiętaj mnie | nie pamiętam hasła

Szkolenia

Podstawy programowania w systemie GNU/Linux

Zapraszamy do zgłaszania chęci udziału w wybranych szkoleniach. W tym celu wystarczy się z nami skontaktować telefonicznie, e-mailowo lub za pośrednictwem tej strony. Zapraszamy do rejestracji.

Zgłoś chęć udziału

Charakterystyka szkolenia:

Kurs dotyczy postaw programowania w systemie GNU/Linux. Uczestnikom przedstawiony zostanie ogólny model aplikacji w systemach zgodnych z POSIX, sposoby zastosowania wywołań i funkcji systemowych, podstawowe zasady i techniki tworzenia aplikacji pracujących w środowisku graficznym oraz metody tworzenia tzw. modułów jądra (sterowniki).

Profil słuchaczy:

Kurs przeznaczony jest dla osób mających wcześniej styczność z programowaniem.

Wymagania wstępne:

Zakłada się, że uczestnicy:

  • dysponują podstawową wiedzą o technikach programowania funkcyjnego (znają pojęcie funkcji, zmiennej, pętli, instrukcji warunkowej itp.)
  • znają składnię języka ANSI C
  • potrafią posługiwać się podstawowymi poleceniami systemu GNU/Linux Językiem programowania używanym w części warsztatowej będzie język ANSI C, chociaż zdobyta przez uczestników wiedza może być równie dobrze wykorzystana w aplikacjach tworzonych w C++. Inne języki programowania nie są szczególnie popularne w środowisku GNU.

Zagadnienia:

  • podstawowe środowisko programistyczne GNU (rodzina kompilatorów gcc, zarządzanie projektami za pomocą Makefiles, debugger gdb)
  • aplikacja w systemie Linux (pojęcie procesu, biblioteki dynamicznej, wywołania systemowego)
  • wykorzystanie standardowej biblioteki C (libc) (includes, źródła informacji o funkcjach libc)
  • model aplikacji konsolowej (standardowe wejście i wyjście w Linuksie, konwencje dotyczące przekazywania programom opcji)
  • zarządzanie zasobami (praktyki oszczędzające czas procesora; zarządzanie pamięcią - przydzielanie, zwalnianie; organizacja
  • programu, projektowanie pod kątem wydajności i/lub bezpieczeństwa)
  • podstawowe wywołania systemowe; plik w Linuksie (pojęcie deskryptora pliku, obsługa plików dyskowych)
  • pliki specjalne i ich zastosowanie w aplikacjach (systemowe kolejki FIFO, pliki urządzeń, fcntl() i ioctl())
  • zarządzanie procesami (tworzenie procesów, komunikacja między wątkami, sygnały, sekcje krytyczne, semafory, współdzielone segmenty pamięci)
  • programowanie sieciowe TCP/IP oraz komunikacja asynchroniczna (gniazda, funkcje związane z wykonywaniem oraz przyjmowaniem połączeń i przetwarzaniem nazw i adresów internetowych protokołu IP4, select(), epoll())
  • podstawy wykorzystywania przez aplikacje środowiska graficznego X11 (biblioteka gtk+)
  • glade - zautomatyzowane narzędzie do tworzenia interfejsów użytkownika korzystających z gtk+
  • budowa jądra systemu Linux
  • tworzenie aplikacji pracujących jako część jądra systemu (moduły) - sterowniki urządzeń, programy wykonujące operacje uprzywilejowane
  • inne źródła wiedzy

Nabyta wiedza:

Po ukończeniu kursu słuchacz powinien być w stanie samodzielnie stworzyć aplikację pracującą w trybie tekstowym, wykorzystującą środowisko graficzne bądź też pracującą jako część jądra systemu. Słuchacz po ukończeniu kursu będzie znał zasady korzystania z podstawowych wywołań systemowych oraz wywołań biblioteki libc oraz będzie w stanie samodzielnie odnaleźć informacje na temat wywołań nie omówionych na kursie.