Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Masterseminar AKSS im WS 2015/16

Multics
The MULTiplexed Information and Computing Service

Übersicht / Overview

Seminar Ausgewählte Kapitel der Systemsoftwaretechnik: Multics (MS_AKSS)

Dozentinnen/Dozenten
PD Dr.-Ing. habil. Daniel Lohmann, Akad. ORat, Prof. Dr.-Ing. Wolfgang Schröder-Preikschat, Christian Dietrich, M. Sc.

Angaben
Vorlesung

Zeit und Ort: Mo 12:15 - 13:45, 0.035
Vorbesprechung: 12.10.2015, 14:15 - 15:45 Uhr, Raum 0.035

Studienfächer / Studienrichtungen
WPF CE-MA-SEM ab 1
WPF INF-MA ab 1
WPF IuK-MA ab 1

Inhalt des Seminars / Seminar content

„Alter Wein in alten Schläuchen“

Multics (MULTiplexed Information and Computing Service) war ein Betriebssystem für Großrechner, dass von 1969 bis zum Jahr 2000 im kommerziellen und universitären Einsatz war. Das Multics-Forschungsprojekt von MIT, Bell Labs und General Electric (ab 1970: Honeywell) lief von 1964 bis 1984. Der Source Code von Multics ist inzwischen unter einer OpenSource-Lizenz verfügbar.

Multics gilt heute als Ursprung für viele richtungsweisenden Betriebssystemkonzepte, wie dem Prozess als Isolationsraum, der interaktiven Shell, dynamisches Binden, hierarchisches Dateisystem (mit langen Namen und ACLs), speicherabgebildete Dateien, dynamische Rekonfigurierung, „hot swapping“ von Hardwarekomponenten, symmetrisches Multiprozessing und vieles mehr. Andere Ideen, wie Segementierung, seitenbasierter virtueller Speicher, Schutzringe, DMA, oder auch die Entwicklung (in) einer Hochsprache (in diesem Fall: PL/1) wurden von Multics und der zugrundeliegenden Hardware, dem GE-645, fundamental geprägt. Multics war außerdem der Ursprung von UNIX: Ken Thompson und Dennis Ritchie waren Mitglieder der Entwicklungsmannschaft; nach dem Ausstieg der Bell Labs aus dem Projekt 1969 begannen sie die Arbeit an UNIX.

Die oben genannten Hardware- und Betriebssystemkonzepte sind seit Jahren ein „Klassiker“ für Seminarvorträge – üblicherweise jedoch am Beispiel von Intel x86, Windows, Linux oder anderen „modernen“ Rechnerarchitekturen und Betriebssystemen. Letztlich ist das jedoch fast immer alter Wein in neuen Schläuchen! In diesem Seminar wollen wir zum Original vordringen.

Die Seminarteilnehmerinnen erwartet dabei eine spannende Themenpalette von der Rechnerarchitektur des GE-654 über das Multics-Betriebssystem bis zur Programmiersprache PL/1, die sich alle gegenseitig beeinflusst haben. Multics ist ein Paradebeispiel für die geschickte Ausnutzung von Hardwareeigenschaften zur Implementierung effizienter und mächtiger Betriebssystemabstraktionen.

Themen und Termine / Topics and Dates

Termin Thema Vortragender Ausarbeitung Folien Betreuer
12.10.2015 Organisation und Einführung
MIT Science Reporter
Christian 1
19.10.2015 Geschichte von Multics
Wie lese ich ein Paper?
Christian
Daniel
1
26.10.2015 "Botschaft angekommen?" Daniel 1
2.11.2015 Systems Science Christian
Daniel
11
9.11.2015 ISER Führung
16.11.2015
23.11.2015 Die Multics Hardware: GE-645 Maximilian Krüger 12 1 Daniel
30.11.2015 Everything is a Segment entfällt
7.12.2015 Paging in Multics Jonas Rabenstein 12 1 Christian
14.12.2015 Dynamisches Binden Daniel Götz 12 1 Christian
21.12.2015 Schutzkonzepte in Multics Benedict Herzog 12 1 Christian
11.01.2016 Hierarchische Dateisysteme Daniel Laffling 12 1 Christian
18.01.2016 Dynamische Rekonfiguration entfällt
25.01.2016 Der Emacs Editor: Visuelle Textverarbeitung entfällt

1. Die Multics Hardware: GE-645

Multics und die verwendete Hardwarearchitektur haben sich gegenseitig beeinflusst und wurden aneinander adaptiert. Die General Electric 645 Maschine hatte mit Segmentierung, Kachelung und Schutzringen viele Funktionen, die auch noch in modernen Prozessoren anzutreffen sind.

2. Everything is a Segment

Ein segmentierter logischen Addressraum erlaubt einzelne Komponenten, seien es nun Code oder Daten, konzeptionell wie auch räumlich voneinander zu trennen. In Multics ist Segmentierung essentieller Bestandteil des Systems und beeinflusst andere Konzepte, wie das Dateisystem, maßgeblich.

3. Paging in Multics

Paging erlaubt es virtuelle Addresseräume anzulegen, die größer sind als der Speicher den die tatsächliche Maschine bereitstellt. Das Konzept von Paging wurde in Multics nicht erfunden, aber vielfältig eingesetzt.

4. Dynamisches Binden

Das Binden zur Laufzeit, das sog. Dynamische Binden, wurde in Multics eingeführt. Es erlaubt andere Komponenten innerhalb von Programartefakten mittels symbolischen Namen zu referenzieren. Diese symbolischen Referenzen werden zur Laufzeit aufgelöst.

5. Schutzkonzepte in Multics

Die Abschirmung unterschiedlicher Komponenten wurde in Multics mit vielfältigen Mechanismen implementiert, die wir auch noch in modernen Systemen wiederfinden. So wird auch heute noch häufig eine Unterscheidung zwischen Kernel und Benutzerprozessen getroffen. Benutzer wurden untereinander abgeschirmt und Zugriffskontrolllisten (ACLs) erlauben eine feingranulare Zugriffsvergabestrategie. Das Multicssystem hat mit seinen Schutzkonzepten die Sicherheitsstufe B2 des US Militärs erhalten

6. Die Programmiersprache PL/1

Die Programmiersprache PL/1 wurde im Rahmen des Projekts System/360 bei IBM entwickelt und beinhaltet Konzepte sowohl aus Algol als auch aus Cobol. Im Rahmen der MAC Projekts wurde PL/1 als Systemprogrammiersprache verwendet und mit speziellen Fähigkeiten ausgestattet. So waren Interrupts als Sprachkonzept verfügbar.

7. Prozesskonzepte in Multics

Multics war das erste System das mehrere schwergewichtige Prozesse unterstützt hat. Prozesse ohne eignen virtuellen Addressraum waren bereits im Compatible Timesharing System verfügbar, aus dem das MAC Projekt hervorging.

8. The Input/Output System

Das Eingabe-/Ausgabesystem von Multics hat verschiedene Systeme in einer einheitlichen Schnittstelle abstrahiert. Zum Zwecke dieser Abstraktion wurde der Symbolische Link erfunden.

9. Hierarchische Dateisysteme

Multics war das erste System, dass ein hierarchisches Dateisystem zur Verfügung gestellt hat. Der Einfluss dieses Systems ist bis heute in modernen Betriebssystemen zu finden.

10. Rekonfiguration eines Multicssystems

Ein Multicssystem wurde üblicherweise mit mehreren Prozessoren aufgebaut. Diese Systemkonfiguration konnte zur Laufzeit beliebig verändert werden und es wurde von dieser Möglichkeit aus rege Gebrauch gemacht. Es wird berichtet, dass das System jede Nacht in ein Produktivsystem und ein Entwicklungssystem gespalten wurde.

11. Der Emacs Editor: Visuelle Textverarbeitung

Emacs, der heute noch verwendet wird, war einer der ersten visuellen Editoren, der von einer breiteren Benutzergruppe verwendet wurde. Visuelles editieren von Texten bedeutet, dass man auf einem Terminal ein Abbild des aktuellen Bearbeitungszustand sehen kann. Bis zu diesem Zeitpunkt waren zeilenbasierte Editoren gebräuchlich. Emacs ist ein Vertreter einer neuen Generation von Programmen, die von der Interaktiviät eines Time-Sharing Systems gebrauch gemacht haben.

Die Seminarteilnehmer können frei wählen, ob sie den Vortrag und die Ausarbeitung auf Deutsch oder Englisch erstellen.

The seminar's participants are free to choose German or English as language for their presentation and paper.

Organisatorisches / Organisational Matters

Jeder Teilnehmer fertigt eine Ausarbeitung mit mindestens sechs Seiten an und hält einen 40-minütigen Vortrag. Eine erste Version der Ausarbeitung sollte spätestens zwei Wochen vor dem Vortrag dem jeweiligen Betreuer zur Durchsicht vorliegen. Eine Vortragsfassung für die restlichen Seminarteilnehmer muss eine Woche vor dem Vortrag abgegeben werden. Die Vortragsfolien sind eine Woche vor dem Vortragstermin und die endgültige Fassung der Ausarbeitung spätestens eine Woche nach dem Vortrag beim jeweiligen Betreuer abzugeben. Die Ausarbeitungen sind im ACM SIG Style anzufertigen. Die Ausarbeitung und der Vortrag müssen unter Zuhilfenahme der Wissensbasis erstellt werden. Die Teilnehmer können sich über Waffel für das Seminar anmelden.

Each attendee writes a paper with at least six pages and gives a 40-minute presentation. For reviewing, a first version of the paper should be sent to the respective supervisor no later than two weeks before the presentation. A preliminary version for the other attendees of the seminar should be submitted no later than one week before the presentation. The presentation slides shall be submitted no later than one week before the presentation; the final version of the paper shall be submitted no later than one week after the presentation. All papers should be in single-spaced, two-column ACM SIG style format. The supplied knowledge base has to be used for creating the presentation and writing the paper. The attendees can sign up for the seminar using Waffel.

Betreuer / Supervisors

Christian Dietrich Daniel Lohmann Wolfgang Schröder-Preikschat