Målgrupp
Denna kurs vänder sig till dig som vill kunna utnyttja avancerade funktioner i Unix miljön.
Kursinnehåll
Standardisering och implementationer
I detta inledande avsnitt görs en översikt över de standarder som finns inom området. Du får god kunskap om hur du skall planera dina applikationer så att de blir så portabla som möjligt.

Direktaccess filer, minnesmappade filer
Hur du kommer åt data i en fil. Hur du mappar in en fil mot minnet och gör förändringar där så att de sedan återspeglas på disken.

Filer och filkataloger
För att lagra data effektivt är det nödvändigt med en god kunskap om hur filer och lagring i filer går till. I detta avsnitt går vi igenom hur du skall programmera för att snabbt och enkelt kunna hantera filer på filsystemet.

In- och utdata
I ett Unix-system är många operationer buffrade för att nå högsta möjliga prestanda. I detta avsnitt behandlas hur man kan försäkra sig om att ha full kontroll och förståelse över I/O subsystemet och dess funktion.

Unixprocessen och dess omgivning
Avsnittet går igenom hur en process i Unix-miljön fungerar. Hur används miljövariabler, kommandoradsargument och processpecifika variabler?

Processkontroll
Skapa och ta bort processer. Fork, execl (med flera) behandlas utförligt.

Signaler
Hur man sänder signaler till processer och hur dessa tas om hand och behandlas.

Terminaler och serieportar
Programmering mot serieportar. SystemV specifika och BSD specifika egenskaper och beteendemönster.

Demoner
Hur du skapar demoner och ser till att de självständigt kan leva i systemet.

Interprocesskommunikation

Hur du åstadkommer kommunikation mellan dina program. Hur du kan dela upp dina uppgifter i systemet.

Pipes och Fifos
När processer vill utbyta data på ett enkelt sätt så kan pipes eller fifos vara på sin plats. I detta avsnitt får du lära dig hur man skapar fifos och pipes och hur dessa manipuleras.

Semaforer
När processer skall synkronisera eller meddela att resurser är upptagna så kan semaforer användas. Du får lära dig hur man skapar semafor-set och hur dessa skall manipuleras.

Delat minne
Om processer vill utbyta stora mängder data så kan delat minne vara en snabb teknik. Du får lära dig hur gemensamt minne skapas och hur man läser och skriver i det.

Sockets
Nätverkskommunikation är idag ett måste. Avsnittet behandlar hur sockets över TCP/IP skapas och manipuleras. Du får lära dig hur sockets över TCP och UDP fungerar och vad de används till.

Systemdesign
Detta avsnitt behandlar hur du gör en övergripande design av ett system. Vi går igenom hur du skapar en monitor för systemet och ser till att denna alltid hålls igång. Monitorn körs lämpligen av init och bevakar att alla andra processer i systemet uppför sig som de skall. Monitorn samlar också information om processerna och ser till att dessa rapporterar sin status på ett bra sätt. Se bilden.
Laborationer
Läsa filer och kataloger
Denna laboration lär dig hur du man läser filer och genomsöker kataloger efter filer.

Demoner
Bakgrundsprocesser kallas i Unix-miljön för demoner. I denna laboration visar vi hur en sådan skapas och underhålls.

Delat minne
En applikation som läser och skriver till gemensamt minne.

Meddelandeköer
En applikation som postar meddelanden och läser dem från meddelandekö.

Semaforer
En applikation som via semaforer meddelar att det finns data att läsa och skriva i gemensamt minne eller på en meddelandekö.

Sockets
Denna laboration visar hur man kan utbyta data mellan applikationer över nätverket. I laborationen visar vi hur man kan styra ett relä i en klient servertillämpning.