Theory combined with practical exercises and a number of
assignments involving practical use of (an embedded)
Linux.
Kursets varighed:
[Kurset følger ikke DTUs normale
skemastruktur]
Evalueringsform:
Bedømmelsesform:
Tidligere kursus:
IOSLX-U1
Anbefalede forudsætninger:
Overordnede kursusmål:
Pervasive computing ("it-i-alting") har udviklet sig til
et meget betydeligt marked, og antallet af computere anvendt i
indlejrede systemer overstiger langt alle andre anvendelser af
computere. Tidligere bestod sådanne systemer overvejende af
specialbygget hardware og anvendelsesspecifik software. Markedets
hurtige vækst har øget behovet for de facto standarder for både
hardware og software. Førstnævnte i form af CPU-moduler med et
passende udbud af IO-interfaces og busser. Sidstnævnte i form af et
'passende' operativsystem som basis for programudvikling og
understøttet af udviklingsværktøjer og her er 'embedded
Linux' af mange gode grunde blevet industriens foretrukne
platform.
Dette kursus har til formål at bibringe den nødvendige baggrund og
sammenhæng for at forstå de principper, der ligger til grund for
operativsystemers udformning og praktisk viden om, hvordan disse
principper er realiseret og virker i et aktuelt operativsystem.
Kursets praktiske element baseres på en de facto standard
HW-platform kombineret med en Linux distribution beregnet til
indlejrede systemer.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
identificere de ydelser, som leveres af et moderen
operativsystem.
forklare begrebet lagdeling og beskrive et operativsystems
interne struktur som et hierarki af abstraktionslag.
forklare hvordan brugen af 'interrupts',
'dispatching' og 'contect switching' muliggør
samtidig afvikling af flere programmer (concurrency eller
multitasking).
reflektere over behovet for 'concurrency' og
demonstrere sådanne problemer, som kan forårsages af
multitasking.
forklare nødvendigheden af gensidig udelukkelse ('mutual
exclusion') og synkronisering i systemer med multitasking og
demonstrere anvendelsen af operativsystemets mekanismer til
synkronisering og kommunikation mellem processer ('inter
process communication').
beskrive hvad man forstår ved et tidstro system ('real-time
system') og opsummere de særlige problemstillinger i tidstro
systemer og hvordan disse problemstillinger håndteres.
forklare og sammenligne almindeligt forekommende algoritmer til
'preemptive' og 'non-preemptive scheduling' og i
særdeleshed diskutere sådanne algoritmer som er egnede til realtids
formål.
forklare begrebet virtuelt lager og hvordan det er realiseret i
hardware og software.
sammenligne og forklare fordele og ulemper ved forskellige
måder, hvorpå en fil kan organiseres.
forklare et filsystems grundlæggende karakteristika og
almindeligt forekommende filsystemer til UNIX-lignende systemer og
deres indpasning i indlejrede systemer.
beskrive grundlæggende kommandoer og kommandofortolkerens
('shell') opgaver.
begrunde nødvendigheden af beskyttelse og sikkerhed og forklare
brugen af 'access control lists' og kapabilitetslister til
opretholdelse af tilgangsrettigheder.
Kursusindhold:
- Overblik over Linux distributioner til indlejrede systemer og
deres typiske karakteristika.
- Værktøjer til krydsudvikling.
- Filsystemer.
- Kommandofortolkeren og kommandoer.
- Processer og tråde.
- Samarbejdende processer og synkronisering.
- Lageradministration og virtuelt lager
- IO-systemet, 'device drivers', and administration af
IO-enheder.
- Sikkerhedsaspekter: konfidentialitet, integritet, tilgængelighed,
pålidelighed.
Litteraturhenvisninger:
Textbook:
Will be announced at the beginning of the course.
Supplementary:
Linux Device Drivers Third Edition
Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
ISBN 0-596-00590-3. O'Reilly Media
(The book can be downloaded for free from
http://lwn.net/Kernel/LDD3/)
Bemærkninger:
Den studerende skal i løbet af kurset løse et antal obligatoriske
opgaver. Til hver opgave skal udarbejdes en øvelsesrapport som
opsummerer teorien og beskriver den udarbejdede løsning og
eventuelle måleresultater.
Ved eksamen skal den studerende præsentere en af de obligatoriske
opgaver. Opgaven vælges ved lodtrækning. Fremlæggelsen skal dække
relevant teori såvel som en redegørelse for den praktiske løsning
af opgaven. Eksaminationen af en studerende varer ca. 30
minutter.