EtusivuHae koulutuksiaLinux-systeemiohjelmointi

Linux-systeemiohjelmointi

Koulutuksessa käydään läpi Linux käyttöjärjestelmän arkkitehtuuria ja toimintamalleja. Koulutuksen käynyt osaa Linux-arkkitehtuurin, ytimen rakenteen ja tehokkaiden sovellusten toteuttamisen kyseiseen ympäristöön C-kielellä.

Kurssilla tarkastellaan myös moniajojärjestelmään toteutettavien sovellusten suunnittelussa ja toteutuksessa huomioitavia seikkoja. Tämän lisäksi käytetään automatisointityökaluja ohjelmistokehitykseen.

Linuxin ja avoimen lähdekoodin ohjelmistojen yleistyessä UNIX-maailmasta tuttujen ohjelmointimenetelmien ja -tekniikoiden suosio on taas huimassa kasvussa. Käyttöjärjestelmän arkkitehtuurin ja toimintamallien tunteminen on välttämätön edellytys tehokkaiden sovellusten kehityksessä. Projektien laajetessa on myös tärkeää osata käyttää aikaa säästäviä kehitystyökaluja.


Koulutusmuoto
Classroom

Kesto
3 päivää

Hinta
1990 €

Kohderyhmä

Kurssi on tarkoitettu sovelluskehittäjille, jotka toteuttavat sovelluksia Linux-ympäristöön.

Esitiedot

Esitietoina vaaditaan Linuxin perusosaaminen ja C-kielen ohjelmointitaito.

Linux-systeemiohjelmointi -kurssin sisältö

1. päivä


Linuxin arkkitehtuuri

  • Linuxin lyhyt historia
  • Linux ydin vs. käyttöjärjestelmä
  • Systeemikomponentit
  • Versiointi
  • Distribuutiot

Kehitysympäristöt ja työkalut

  • Kääntäjä
  • Virheenjäljitin
  • Make
  • Kirjastot
  • Editorit ja IDEt

Virheiden/suorituksen selvittämistä

  • Strace ja muita työkaluja

Systeemikutsut

  • Tarkoitus ja toiminnallisuus
  • Systeemikutsujen käyttäminen
  • Systeemikutsut vs. ohjelmointikielen kirjastofunktiot

Tiedostojärjestelmä

  • Rakenne
  • Tiedostotyypit
  • Palvelut
  • Tiedostojen lukeminen ja kirjoittaminen
  • Systeemi I/O
  • Ansi C I/O
  • Hakemistojen käsittely
  • Tiedoston tila, fcntl
  • Tiedostojen lukitseminen
  • Laitteet ja tiedostot

Muistinhallinta

  • Virtuaalimuisti
  • Muistinhallintafunktiot
  • Palvelut
  • Työkalut

2. päivä

Prosessit

  • Prosessimalli
  • Prosessien hallinta
  • Ryhmät, attribuutit ja oikeudet
  • fork systeemikutsu
  • exec ja kumppanit
  • Prosessin odottaminen

Taustaprosessit

  • Signalointi
  • Daemonit
  • Lokeihin kirjoittaminen

Säikeet

  • Säiemalli
  • POSIX säikeet
  • Muita säietoteutuksia
  • Säikeiden synkronointi: mutexit ja semaforit
  • Säieturvallisuus: Rentrant koodi
  • Irralliset (detached) säikeet

3. päivä


Prosessien välinen kommunikointi (IPC)

  • POSIX IPC vs. System V IPC
  • Putket (pipes)
  • Semaforit
  • Sanomajonot
  • Jaettu muisti

Pistokkeet (sockets)

  • Pistokkeet
  • Internet pistokkeet
  • Unix paikalliset pistokkeet (local sockets)
  • select käyttö

Kirjastot

  • Dynaamiset kirjastot
  • Jaettujen kirjastojen kehitys
  • Jaettujen kirjastojen asennus

Käyttöjärjestelmän ytimen moduulit (kernel modules)

  • Perusteet
  • Ytimen moduulit vs. laiteajurit
  • Hoi maailma -moduulin toteutus
  • Moduulin lataaminen
  • Laiteajurit

Aikataulu

Koulutuspäivä alkaa klo 9 ja päättyy noin klo 16-16.30. Aamiainen on tarjolla klo 8.15-9.00.

Saattaisit olla kiinnostunut myös näistä koulutuksista:

Aiheeseen liittyvät blogit: