Siirry suoraan sisältöön

Windows/Linux ohjelmointi (3op)

Opintojakson tunnus: TT00BB79

Opintojakson perustiedot


Laajuus
3 op

Osaamistavoitteet

Linuxin ja avoimen lähdekoodin ohjelmistojen yleistyessä UNIX/Linux-maailmasta tuttujen ohjelmointimenetelmien ja -tekniikoiden käyttö yleistyy enstistä enemmän myös ARM-perustaisille prosessoriarkkitehtuuria käyttäville ohjelmille.
Itsenäisesti tehtävässä ohjelmistoprojektissa opetellaan käyttämään kehitystyökaluja, joita pääsääntöisesti käytetään tämän päivän ohjelmistoprojekteissa. Referenssilaitteena projektissa käytetään Raspberry Pi:tä.
Linux-systeemiohjelmointi-kurssin opiskelija oppii Linux-arkkitehtuurin, Linux-ytimen rakenteen ja tehokkaiden laiteläheisten sovellusten toteuttamisen C-kielellä. Kurssin käytyään opiskelija hallitsee myös moniajojärjestelmään toteutettavien sovellusten suunnittelun ja toteutuksen.
Opetuksessa käydään läpi laiteajurin (device driver) ohjelmointi ja Linux-kerneliin lisättävän oman ns. Kernel-moduulin tekemiseen liittyvät erityispiirteet.

Sisältö

Tavoitteena on tuottaa Raspberry Pi:llä toimiva ohjelmisto, joka monitoroi ympäristöään antureiden avulla, prosessoi saamansa mittausdatan ja sen perusteella ohjaa kytkettyä laitetta. Harjoitustyössä yhdistetään anturiteknologia, korkeamman tason ohjelmointikielellä tehty ohjauslogiikka, säikeistetyn ohjelman tekeminen, prosessien välinen vuorovaikutus ja tarvittavan laiteajurin (device driver) toteutus. Laiteajuri liitetään osaksi kernel -moduulia. Ohjelmistoprojekti antaa valmiudet käyttää em. tyyppisessä projektissa tarvittavia ohjelmointityökaluja (Qt Creator tai Eclipse IDE ja Remote debuggaus).
LKM:n (Loadable kernel module) osuudessa opetellaan tuntemaan Linuxin ytimen arkkitehtuuri ja opetellaan miten prosessien ja säikeiden samanaikaisuustilanteet tulee ohjelmoinnissa käsitellä. Edelleen opetellaan käsittelemään viiveitä ja ajastimia ytimessä, jakamaan muistia ja käsittelemään erityyppisiä keskeytyksiä sekä käsittelemään perusdatatyyppejä ytimessä.
Kurssi sisältää runsaasti ohjattuja harjoituksia sekä harjoitustyökirjan, jossa ovat pisteytetyt tehtävät. Kurssiin kuuluu myös itsenäisesti tehtävä Raspberry Pi projekti.

Arviointikriteerit, kiitettävä (5)

Harjoitustyökirjan tehtävistä 80-100 p, Itsenäisen projektin toteutus vaatimuksia vastaavasti.

Arviointikriteerit, hyvä (3)

Harjoitustyökirjan tehtävistä 60-79 p, Itsenäisen projektin toteutus suurimmaksi osaksi vaatimuksia vastaavasti.

Arviointikriteerit, tyydyttävä (1)

Harjoitustyökirjan tehtävistä 40-59 p, Itsenäisen projektin toteutus esimerkkiprojekti toistamalla.

Lisätiedot

Opetus tapahtuu lähiopetuksena ja verkko-opetusympäristöä käyttäen (Moodle).

Siirry alkuun