Theory combined with practical exercises involving practical
use of (an embedded) Linux.
Kursets varighed:
[Kurset følger ikke DTUs normale
skemastruktur]
Evalueringsform:
Bedømmelsesform:
Tidligere kursus:
IOSLX4-U1
Obligatoriske forudsætninger:
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:
Identify the services provided by a modern operating
system.
Explain the concept of a logical layer and describe the
internal structure of an operating system as a hierarchy of
abstraction layers.
Describe how the use of interrupts, dispatching, and context
switching ('process dispatching') supports concurrency in
an operating system.
Reflect on the need for concurrency and demonstrate the
potential run-time problems arising from multitasking.
Explain the need of mutual exclusion and synchronization in
multitasking systems and demonstrate the use of operating system
mechanisms for synchronization and inter process
communication.
Describe what makes a system a real-time system and summarize
special concerns that real-time systems present and how these
concerns are addressed.
Compare and contrast common algorithms for preemptive as well
as non-preemptive scheduling and especially discuss such scheduling
algorithms that are applicable for real-time purposes.
Explain the concept of virtual memory and how it is realized in
hardware and software.
Compare and contrast different approaches to file organization,
recognizing the strengths and weaknesses of each.
Describe the basic characteristics of a file system and some
commonly used file systems for UNIX-like systems and their adaption
into embedded systems
Describe basic system commands and the role of the command
interpreter (the shell).
Defend the need for protection and security, and explain the
role of access control lists and capability lists in maintaining
access permissions.
Kursusindhold:
- Embedded Linux distributions overview and typical
characteristics.
- Tools for cross development.
- The file system.
- Shells and Commands.
- Processes and Threads.
- Cooperating Processes and Synchronization.
- Memory Management and Virtual Storage.
- IO-system, Device drivers, and Device Management.
- Security overview: Confidentiality, Integrity, Availability,
Accountability.
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:
Individual oral examination based on the fourth semester project
and theoretical subjects picked at random.