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