Siirry suoraan sisältöön

Sulautettu Linux-ohjelmointi (3 op)

Toteutuksen tunnus: TT00BM28-3001

Toteutuksen perustiedot


Ilmoittautumisaika
23.08.2021 - 19.09.2021
Ilmoittautuminen toteutukselle on päättynyt.
Ajoitus
01.08.2021 - 31.12.2021
Toteutus on päättynyt.
Opintopistemäärä
3 op
Lähiosuus
3 op
Toteutustapa
Lähiopetus
Yksikkö
Teknologia
Opetuskielet
suomi
Koulutus
Tieto- ja viestintätekniikan koulutus
Opettajat
Eero Huusko
Ryhmät
TTV19SP
TTV19SP
Opintojakso
TT00BM28
Toteutukselle TT00BM28-3001 ei löytynyt varauksia!

Tavoitteet

Linux-systeemiohjelmointi-kurssin opiskelija oppii Linux-arkkitehtuurin, Linux-ytimen rakenteen ja tehokkaiden sovellusten toteuttamisen C-kielellä. Kurssin käytyään opiskelija hallitsee myös moniajojärjestelmään toteutettavien sovellusten suunnittelun ja toteutuksen.

Sisältö

Linux-systeemiohjelmointi kurssin sisältö painottuu Linux / POSIX-ympäristössä tapahtuvaan ohjelmointiin käyttäen ANSI C:tä. Erityinen painopiste on Linux / Posix-järjestelmän vaatimissa systeemikutsuissa, prosessinohjauksessa, säikeistyksessä ja prosessien välisessä kommunikoinnissa. Eri I/O-tekniikkoiden läpikäynti, standardi-C-kirjaston I/O-toiminnot ja Unix/Linux systeemikutsut käydään myös läpi yksityiskohtaisesti.
Kurssi sisältää myös Linux laiteajuri ohjelmointi osuuden, jossa käydään läpi käydään Linuxin laitemalli (device model) ja sen käyttäminen sekä MMIO (memory mapped I/O) ja DMA (direct memory access). Lisäksi käydään läpi PCI-, I2C, Serial, 1-Wire, USB-, kiintolevy-, verkko- sekä tty-laiteajureiden ohjelmoiminen ja näiden erikoispiirteitä.
Linux kernel moduuliosiossa käännetään ja asennetaan yksinkertainen LKM:n (Loadable kernel module). Lisäksi opetellaan tuntemaan Linuxin ytimen arkkitehtuuri ja opetellaan miten konkurenssi- ja race condition-tilanteet tulee käsitellä. Edelleen opetellaan käsittelemään viiveitä ja ajastimia ytimessä, jakamaan muistia ja käsittelemään erityyppisiä keskeytyksiä, keskustelemaan hardwaren kanssa sekä käsittelemään perusdatatyyppejä ytimessä.
Kurssi sisältää runsaasti ohjattuja harjoituksia sekä harjoitustyökirjan tehtävien tekemisen.

Arviointiasteikko

0 - 5

Arviointikriteerit, kiitettävä (5)

Kurssi arvioidaan palauttettujen Harjoitustyökirjan tehtävistä saatujen pisteiden perusteella.
Arvosana 5 edellyttää yli 90 % maksimipistemäärästä.

Arviointikriteerit, hyvä (3)

Kurssi arvioidaan palauttettujen Harjoitustyökirjan tehtävistä saatujen pisteiden perusteella.
Arvosana 3-4 edellyttää 70-90 % maksimipistemäärästä.

Arviointikriteerit, tyydyttävä (1)

Kurssi arvioidaan palauttettujen Harjoitustyökirjan tehtävistä saatujen pisteiden perusteella.
Arvosana 1-2 edellyttää 40- 70 % maksimipistemäärästä.

Esitietovaatimukset

Esitietoina vaaditaan Linuxin perusosaaminen ja C-ohjelmointikurssin suoritus.

Lisätiedot

Kurssimateriaali on englanninkielinen. Kurssiin kuuluu itsenäisesti tehtävät harjoitukset.
TKI pisteet 2.

Osaamistavoitteet

Linux-systeemiohjelmointi-kurssin opiskelija oppii Linux-arkkitehtuurin, Linux-ytimen rakenteen ja tehokkaiden sovellusten toteuttamisen C-kielellä. Kurssin käytyään opiskelija hallitsee myös moniajojärjestelmään toteutettavien sovellusten suunnittelun ja toteutuksen.

Sisältö

Linux-systeemiohjelmointi kurssin sisältö painottuu Linux / POSIX-ympäristössä tapahtuvaan ohjelmointiin käyttäen ANSI C:tä. Erityinen painopiste on Linux / Posix-järjestelmän vaatimissa systeemikutsuissa, prosessinohjauksessa, säikeistyksessä ja prosessien välisessä kommunikoinnissa. Eri I/O-tekniikkoiden läpikäynti, standardi-C-kirjaston I/O-toiminnot ja Unix/Linux systeemikutsut käydään myös läpi yksityiskohtaisesti.
Kurssi sisältää myös Linux laiteajuri ohjelmointi osuuden, jossa käydään läpi käydään Linuxin laitemalli (device model) ja sen käyttäminen sekä MMIO (memory mapped I/O) ja DMA (direct memory access). Lisäksi käydään läpi PCI-, I2C, Serial, 1-Wire, USB-, kiintolevy-, verkko- sekä tty-laiteajureiden ohjelmoiminen ja näiden erikoispiirteitä.
Linux kernel moduuliosiossa käännetään ja asennetaan yksinkertainen LKM:n (Loadable kernel module). Lisäksi opetellaan tuntemaan Linuxin ytimen arkkitehtuuri ja opetellaan miten konkurenssi- ja race condition-tilanteet tulee käsitellä. Edelleen opetellaan käsittelemään viiveitä ja ajastimia ytimessä, jakamaan muistia ja käsittelemään erityyppisiä keskeytyksiä, keskustelemaan hardwaren kanssa sekä käsittelemään perusdatatyyppejä ytimessä.
Kurssi sisältää runsaasti ohjattuja harjoituksia sekä harjoitustyökirjan tehtävien tekemisen.

Esitietovaatimukset

Esitietoina vaaditaan Linuxin perusosaaminen ja C-ohjelmointikurssin suoritus.

Siirry alkuun