INF422 —
Components of a Computing System
Introduction to Computer Architecture and
Operating Systems
École Polytechnique — Licence 3
Overview
-
A rich yet accessible and synthetic introduction to the design of
computers, with a double hardware-software perspective. These
concepts are important to understand and to harness modern
computing systems, from embedded and consumer electronics to the
largest networks. This course takes a top-down approach, from the
general goals and principles of an operating system down to the
hardware and software layers implementing it. It brings a
technological perspective essential to thorough understanding of
the INF431 course and of the motivations and technical challenges
behind. The course also brushes an overview of concepts covered in
the Master courses of computer architecture, operating system,
parallel programming, networking and databases.
-
- Lectures:
Albert Cohen
(INRIA Paris-Rocquencourt and École Polytechnique).
-
Labs:
Albert Cohen,
Fabrice Le Fessant
(INRIA Saclay and École Polytechnique),
Erven Rohou
(INRIA Rennes),
Frédéric Brault
(Kalray).
Antoniu Pop
(INRIA Paris-Rocquencourt),
Guillaume Quintin
(École Polytechnique).
-
Entry in the
course
directory.
Online Course Material
-
Documentation and references.
-
Frequently Asked Questions: read the FAQ.
-
Slides.
- Handouts (3 slides per page), printed and distributed with
the first course.
- Additional Documentation
Labs
The labs are in French for now. Based on student feedback, we will
consider translating them to English.
The labs take the form of design and
implementation projects covering the main aspects of a computing
system. Some exercices have to be completed before the next course,
uploading the answers on the web page
These exercises will be graded, contributing a [-1, ..., +2]
bonus/malus added to the grade of the final exam.
Exercise 3 of TD 3 must be uploaded through
the dedicated form on the lab's web page. You can upload several
times; we will look at the last uploaded version. In case of technical
difficulties, you may email the teacher in charge of your group. Your
work is due on Thursday December 8th at 23:59.
Direct links to the labs:
Introduction
FAQ
Glossary
- TD 1 : Installation d'Android et prise en main
- TD 2 : Interface graphique et threads (2 semaines)
- TD 3 : Programmation réseau
- TD 4 : Programmation shell du réseau
- TD 5 : Programmation shell du système de fichiers
- TD 6 : Appels système et modules noyau
- TD 7 : Accès direct au périphérique écran
- TD 8 : Langage d'assemblage, compilation
Suggested Readings
The following books are not required for the course but can provide
interesting complements to the printed handouts.
- Textbooks.
-
A. Silberschatz and P. Galvin.
Operating
System Concepts. Eight Edition, John Wiley & Sons, 2008
(you may download a few online chapters). The Seventh
Edition is still very relevant, and comes with a more
applied Java-oriented book (algorithm examples in Java, not
Java system API).
-
D. P. Bovet and M. Cesati.
Understanding the
Linux Kernel. Third Edition, O'Reilly, 2005.
Detailed and insightful, complementary with classical textbooks about
operating systems. Requires an advanced level in the C
programming language.
-
T. Noergaard.
Embedded Systems Architecture. Elsevier, 2005. An industry and
standards-oriented view, a very accessible survey and an entry
point to more advanced material.
-
J. A. Fisher.
Embedded
Computing: A VLIW Approach to Architecture, Compilers and
Tools. Elsevier, 2005. From the hardware to the tools, wide
view on embedded computing, principles and practice. By one of the
pionneers of microprocessor and compilation design.
-
James E. Smith and Ravi Nair: Virtual Machines:
Versatile Platforms for Systems and Processes, Elsevier
2005. Covers processor, full system and language/process-level
virtualization, with an emphasis on performance issues.
-
P. Ficheux.
Linux embarqué. Second Edition, Eyrolles 2005.
Case studies, operating-system-oriented, a reference
for students and embedded Linux engineering.
[FRANÇAIS]
-
C. Blaess.
Shells
Linux et UNIX par la pratique. Eyrolles, 2008.
[FRANÇAIS]
-
C. Blaess.
Programmation
Système en C sous Linux. Third Edition, Eyrolles, 2005.
[FRANÇAIS]
- Android.
-
If you wish to discover all the secrets behind the tools
we are using for the labs, and exploring the innards of
Android smarphones, Frédéric Brault digested his 2008 INF422 experience
in a convenient and inexpensive e-book.
Hackez
Google Android - Introduction à la programmation
système. Eyrolles, e-book edition, 2009. [FRANÇAIS]
-
There are many books on Android development. They are
essentially Java-oriented, combining Google's reference
information with introductory and context material, as well as
case studies. M. L. Murphy wrote The Busy Coder's
Guide to Android Development, currently the most
appraised book in this category. But the book is very
expensive and Google's online documentation is really good
already.
- Java.
-
There are many more books on Java. Make sure you do not get one
specifically tight to your operating system or development
environment (Eclipse, Netbeans...).
Final Exam
The final exam will be bilingual.
All documents are authorized for reference (notes, slides,
books, etc.), but not communication-capable computers..
Archives of past exams: