| Abstract: An operating system (OS) is the software responsible for controlling and managing hardware and basic system operations, as well as running application software such as word processing programs, Web browsers, and many others. In general, the operating system is the first layer of software loaded into memory when a computer starts up. All other software that gets loaded after it depends on the operating system to provide various common core services, such as disk access, memory management, process scheduling, and user interfaces. As operating systems evolve, ever more services are expected to be common core. These days, an OS may be required to provide network and Internet connectivity and also to protect the computer's other software from damage by malicious programs, such as viruses. Operating systems in widespread use on personal computers (PC) have consolidated into two families: the Microsoft Windows family and the Unix-like family. Mainframe computers and embedded systems use a variety of different operating systems, many with no direct connection to Windows or Unix.
Building Operating Systems is much about studying existing systems, knowing common problems, knowing what other people did, and figuring out if their ideas can be applied to a given new problem. These long-lasting principles - as opposed to implementation details and user interfaces of today's systems/software - is what this lecture is about.
| Synopsis:- Praktische Informatik, Master, 8 SP.
- Offered regularly, at least once every two years, usually in winter.
- 2 lectures per week, 2h each, over one semester (4SWS VL).
- 1 lab (Übungen/Praktikum) per week, 2h each, over one semester (2SWS UE).
Credits and grading: - There will be a few, short, unannounced, closed-book quizzes to verify your existence and to test your understanding.
- To qualify for the final written examination (at the end of the semester), you have to complete all lab assignments to the satisfaction of the teaching assistant (70% of all points).
- Regular class attendance is expected; frequent absences are grounds for a failing grade regardless of other performance. You may be missing up to 1 lecture per semester without prior and reasonable excuse. 'prior' means notification by email before the end of business the day before the lecture. 'reasonable' means sickness or study-related events that require your attendance.
- Lectures begin on time. Students arriving more than 10 minutes late will not be admitted to the lecture and will be counted as 'missing' that day.
Lab (Praktikum): Lab-0: Lab-Overview, Matlab (examples), Lab-0 (Make-Performance) Lab-1: Events & Threads (Beispiele) Lab-2: EventQueue (Beispiele, Aufgabenvorlage) Lab-3: C++11 (Beispiele) Lab-4: FUSE (Beispiel: hello_fs), Aufgabe (securefs), Vorlage für die Aufgabe, Readlink Lab-5: Valgrind (Beispiele) Lab-6: Cache Performance (Beispiel) Lab-7: Byzantine generals Lab-8: Byzantine generals 2 Lab-9: Consistency Lab-10: Overview
Syllabus:
- Getting Started
Lecture slides: Getting Started Requitred Reading: how-to-read-a-paper How to read a scientific paper? - Read for an overview. What is the purpose of this work?
- Read again, with focus on the "story". Annotate the paper.
- Read one more time, with focus on the details. Have a discussion with others. Take notes of arguments that came up during the discussion.
- Thread vs. Event -based Concurrency
Lecture Slides: (final set as of 2013-11-14) Required Reading: Threads Cannot Be Implemented As a Library by Hans-J. Boehm Recommended Reading: Additional Reading: - Local (HDD) Filesystems - revisited
( The hard life of a hard drive - The tension between performance and durability/reliability. )Lecture Slides: (final set as of 2013-12-17) Required Reading: Failure_Trends_in_a_Large_Disk_Drive_Population optional (not required): More than an interface — SCSI vs. ATA Recommended Reading: Additional Reading (common production file systems): - ZFS (2002?): The Zettabyte File System
- ZFS: End-to-end Data Integrity for File Systems: A ZFS Case Study
- ZFS: Raid-Z: https://blogs.oracle.com/bonwick/entry/raid_z (cached)
- ZFS: Howto: https://www.freebsd.org/doc/de/books/handbook/filesystems-zfs.html (cached)
- BSD-FFS (1984): A Fast File System for UNIX
- ext1 (1992), ext2 (1993), vfs: Design and Implementation of the Second Extended Filesystem
- ext3 (1998): Journaling the Linux ext2fs Filesystem
- ext4 (2007): Ext4 block and inode allocator improvements. Kumar,Cao,Santos,Dilger. (mathur)
- Sprite-LFS (1991). The Design and Implementation of a Log-Structured File System. Rosenblum, Ousterhout.
- BSD-LFS (1993). An Implementation of a Log-Structured File System for UNIX. Seltzer, Bostic, McKusick, Staelin,
- WAFL (19994). Write Anywhere File Layout. File System Design for an NFS File Server Appliance. Technical Report.
- ReiserFS (2001?): The structure of the Reiser file system
- Fsck − The UNIX File System Check Program. Marshall Kirk McKusick, 1996
- Soft Updates: A Solution to the Metadata Update Problem in File Systems.Ganger, McKusick, Soules, Patt. 2000
- Venti: a new approach to archival storage (annotated) (deduplication)
- Fast, Inexpensive Content-Addressed Storage in Foundation
- Remote (access to) Filesystems
Lecture Slides: (final set as of 2014-01-08) Recommended Reading: - Data Center Storage Clusters
Lecture Slides: (final set as of 2014-01-15) Lecture Slides: (DHT,Dynamo - as of 2014-01-07) Recommended Reading: - Concepts: Time, Consistency and Consensus
6.1 Consistency Lecture Slides: (final set as of 2014-01-20) Recommended Reading:
6.2 Time, Clocks Lecture Slides: Uhr-Zeit (final set as of 2014-01-27) Lecture Slides: Clock Synchronization (final set as of 2014-01-27) Lecture Slides: Logical Time (final set as of 2014-01-27) Recommended Reading: - Probabilistic clock synchronization (Cristian' Algorithm). Flaviu Cristian, 1989.
- An Election Algorithm for a Distributed Clock Synchronization Program (Berkeley's Algorithm). Riccardo Gusella, Stefano Zatti, 1985
- Maintaining the Time in a Distributed System. Keith Marzullo, 1983
- Time Synchronization in DCNET Hosts. Mills, 1981
- Time, Clocks, and the Ordering of Events in a Distributed System (Lamport Time). Leslie Lamport, 1978.
- Timestamps in Message-Passing Systems That Preserve the Partial Ordering (Vector Time). Colin J. Fidge, 1988.
- Virtual Time and Global States of Distributed System (Vector Clocks, Consistent Cuts). Friedemann Mattern, 1989.
Additional Material: 6.3 Consensus Lecture Slides: RAFT (final set as of 2014-01-22) Lecture Slides: Byzantine Generals (final set as of 2014-02-06) Recommended Reading:
- (Google's) Spanner
Lecture Slides: Spanner (final set as of 2014-02-12) Recommended Reading: - System/Language-Level Security, Fault Isolation
Lecture Slides: not yet available - Sandboxing
- Virtualization
- Lawyers, Guns and Money: Open Source Software
Lecture Slides: (very early draft - as of 2014-01-27) - motivation for "free software" ("free" as in "free speech" and not as in "free beer")
- intellectual property law (US, Europe)
- common "free" License Models
- open software based business models
- famous open source projects / business models
| |
|