UE Advanced aspects of operating systems

Diplômes intégrant cet élément pédagogique :

Descriptif

Operating systems are the foundation of computer systems, often complemented with middleware systems to help with more domain-specific features. Operating systems wrap the underlying hardware platforms into an effective software platform, creating an illusion, hiding hardware details away and offering instead high-value services such as processes, threads, or files. In the end, operating systems create an effective virtual world for software developers and end users alike. As such, operating systems are virtual machines.

Virtual platforms come in many shapes and sizes, creating virtual platforms with different specifics, for different application domains. Some virtual platforms are real-time operating systems for mission-critical systems such as avionics or aerospace systems. Others are sheer veneers above very specific hardware like in certain Game consoles or small embedded systems for the Do-It-Yourself communities (Arduino and others). Others are combining operating system kernels with high-level languages, such as the Google Android platform that combines a Linux kernel and a Java virtual machine. Others are for Cloud infrastructures, often associating para-virtualized Linux distributions and hypervisors, with massive scalability in mind.

Fortunately, there are only a few key concepts and a few corresponding enabling technologies, technologies that this course will help you learn and master. Think of this way: this lecture will be a fantastic journey beyond the world of Linux. We will start with the fundamentals of traditional kernels like Linux, along with the underlying hardware fundamentals of today’s computers. Then you will learn what is micro-kernel versus an hypervisor. We will also discuss the specific design challenges for small kernels intended for embedded systems. We will reflect on these different possible architectures for kernels and discuss their pros and cons. We will discuss these different architectures, debating their original design goals versus what they were able to achieve.

 

Organization and evaluation :

The courses is organized into several types of activities: lectures, classroom studies, and hands-on projects. It will require reading influential research papers. The evaluation will combine a final exam with continuous evaluation throughout the semester.

Targeted audience and contents :

This course is intended for students interested in the design of operating system kernels and how they virtualize the underlying hardware. This course is primarily aimed at students of the Digital Infrastructures option, but it is self-contained and can complement any other bouquet of other lectures. It requires an inquisitive mind, interested in the design challenges of operating systems.

Pré-requis

A good knowledge of the C programming language is preferable, with some previous experience with assembly programming. Also, knowing the basics of operating system design is definitely a plus. More importantly, you must be interested by these topics.

Informations complémentaires

Méthode d'enseignement : En présence
Lieu(x) : Grenoble - Domaine universitaire
Langue(s) : Anglais