PředmětyPředměty(verze: 945)
Předmět, akademický rok 2023/2024
   Přihlásit přes CAS
Unix/Linux Programming in C - NSWI015
Anglický název: Unix/Linux Programming in C
Zajišťuje: Středisko informatické sítě a laboratoří (32-SISAL)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2021
Semestr: zimní
E-Kredity: 5
Rozsah, examinace: zimní s.:2/1, Z+Zk [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: angličtina
Způsob výuky: prezenční
Způsob výuky: prezenční
Garant: Mgr. Vladimír Kotal
Třída: Informatika Bc.
Kategorizace předmětu: Informatika > Softwarové inženýrství
Prerekvizity : NSWI177
Je neslučitelnost pro: NSWI048
Je prerekvizitou pro: NSWI138, NSWI016
Anotace -
Poslední úprava: Mgr. Lenka Forstová (19.04.2018)
Předmět má za úkol připravit studenty pro vývoj softwaru v prostředí Unixu a Linuxu v programovacím jazyce C. Hlavními cíly je vysvětlit, jak pracuje rozhraní mezi uživatelskými programy a jádrem operačního systému a jaké jsou jeho kontrétní API, jak v těchto API psát složité programy, a také poskytnout znalosti k pochopení toho, jak vnitřně fungují různé projekty ze světa svobodného software napsané v jazyce C, se kterými se studenti mohou setkat. Součástí předmětu je cvičení, které se do hloubky věnuje psaní kódu za pomoci odpřednášených API.
Podmínky zakončení předmětu -
Poslední úprava: Mgr. Vladimír Kotal (31.05.2020)

Předmět je zakončen zápočtem a zkouškou.

Zápočet se uděluje za vypracování zápočtového programu nebo programů v několika fázích, z nichž každá má stanovenou lhůtu na vypracování.

Zkouška se skládá z vypracování programu a ústní části, ve které se bude zkoušející dotazovat na klíčové principy. Na složení zkoušky má student tři pokusy (jeden řádný a dva opravné termíny).

Literatura -
Poslední úprava: Mgr. Vladimír Kotal (17.10.2011)

Stevens R.: Advanced Programming in the UNIX Environment, Second Edition, Addison Wesley, 2005

Stevens R.: UNIX Network Programming, Volume 1, Third Edition: Networking APIs: Sockets and XTI, Prentice Hall, 2003

Stevens R.: UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications, Prentice Hall, 1999

The Single UNIX Specification, Version 3. The Open Group, 2003

Sylabus -
Poslední úprava: Mgr. Vladimír Kotal (26.03.2015)
  • vývoj a současnost UNIXu, standardy (The Single UNIX Specification), základní nástroje pro jazyk C, API/ABI
  • popis funkce jádra OS z pohledu programátora v jazyce C
  • evidence a kategorizace uživatelů/skupin, přístupová práva
  • základy principů filesystémů, VFS, programování vstupů a výstupů, práce s file deskriptory
  • manipulace s procesy, stavy procesů, spouštění programu, rozvržení virtuální paměti, formát ELF
  • práce s rourami, sdílená paměť, rozhraní dynamického linkeru
  • signály a jejich zpracování
  • komunikace a synchronizace procesů, System V IPC
  • síťová komunikace, rozhraní BSD sockets, převod jmen a IP adres
  • vlákna a jejich vztah k procesům, synchronizace vláken (mutexy, rwlocks, podmínkové proměnné, semafory, bariéry)
 
Univerzita Karlova | Informační systém UK