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
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.