Avancerad programmering i Unix-miljö

4 dagar

Den här kursen ges på begäran. Klicka här för mer information.

När du ska skriva systemnära program i olika Unix-system är detta kursen för dig. Du får lära dig använda systemanrop, som att läsa och skriva på filer, processhantering, interprocesskommunikation, trådar, nätverkskommunikation etc.

Kursen innefattar också områden inom Unix där det krävs kunskaper för att kunna konstruera bra applikationer för Unix-miljö, som exempelvis processgrupper, rättigheter, och sessioner.

Övningarna går ut på att skriva C-program som nyttjar olika systemanrop, där också stor vikt läggs vid portabilitet. Övningarna är koncentrerade på de områden som vanligtvis Unix-programmeraren kommer i kontakt med och du får lära dig hur man hanterar egenskaper hos processer, environment, fildeskriptorer m m.

Förkunskaper och mål

Programmeringsvana i C eller C++ samt grundläggande erfarenhet av Unix är lämpligt som förkunskaper. Kursen vänder sig till dig som skall konstruera olika program i Unix-miljö och därför behöver djupa kunskaper om vilka mekanismer som finns, samt hur man uppnår en god design.

Pris: 21 900 kr (exkl. moms)

Presentation av kursmaterial
Bild på kursboken

Kursmaterial på svenska + kursbok: "Advanced programming in the UNIX Environment" av W.Richard Stevens

Presentation av kursansvarig
<p>Gösta Malmström</p>

Gösta Malmström

Arkitektur

  • Samspelet mellan processer och kärna
  • Kort om standarder och portabilitet
  • Designprinciper

Filhantering

  • Läsa och skriva på filer: read, write
  • Hantering av filer: open, close, lseek
  • Info om filer: stat, fstat, lstat
  • Filsystemet

Processbegreppet

  • Processattribut: id, grupp etc
  • Hantering av processer: fork, exec, wait
  • Övervakning av processer
  • Globala hopp setjmp, longjmp
  • Hierarkier och relationer

Signalbegreppet

  • Olika typer
  • Säker/osäker signalering
  • Sända och mottaga

Terminal-I/O

  • Kontroll av portar
  • ioctl
  • termio, termios
  • Pseudo-terminaler

Avancerad I/O

  • Fillås
  • Icke-blockerande, multiplexing och
  • Asynkron I/O
  • Minnesmappade filer

Interprocess- kommunikation

  • Grundläggande anrop: pipe, dup
  • Message queues
  • Shared memory och semaforer
  • Named pipes

Applikationsdesign

  • Felhantering och spårning
  • Internationalisering
  • Processindelning
  • Demonprocesser
  • Rättigheter och säkerhet

Unix nätverks-miljö

  • Introduktion till TCP/IP
  • Client/Server-modellen
  • Distribuerade applikationer
  • Socket-begreppet
  • Uppsättning av server
  • Clienthantering

Trådar

  • Designprinciper bakom trådar
  • Vad ger trådar?

Övningar