+ All Categories
Home > Documents > The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach...

The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach...

Date post: 09-Sep-2018
Category:
Upload: phungdieu
View: 230 times
Download: 0 times
Share this document with a friend
21
Gregor Schmidt Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut Seminar Origins of Operating Systems The Microkernel Mach in NeXTSTEP Gregor Schmidt 2006-06-29 1 1
Transcript
Page 1: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

SeminarOrigins of Operating Systems

The Microkernel Machin NeXTSTEP

Gregor Schmidt2006-06-29

1

1

Page 2: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

Overview

Introduction The road to NeXTSTEP The NeXT computers

The NeXTSTEP operating system The Mach Microkernel

Interprocess Communication by example

The next steps

2

2

Page 3: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

Overview

Introduction The NeXTSTEP operating system The Mach Microkernel The next steps

3

3

Page 4: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The Road to NeXTStep

1986 - NeXT computers, Inc. was founded by Steve Jobs and colleagues from Apple

- Rich Page- George Crow- Bud Tribble- Dan‘L Lewin- Susan Barnes

and - Randy Heffner- Gary H. Moore

1988 - The first computer was presented

4

4

Page 5: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The NeXT computers

based on Motorola 680x0 2 basic models

NeXTcube (1989) NeXTstation (1990)

- 25 MHz resp. 33 MHz- 8 MB RAM (up to 32 MB)- 105 MB SCSI HDD- Floppy Disc Drive- 10Base-T and 10Base-2 Ethernet- Monochrome Display

All later versions of NeXTSTEP operating systems run on these machines

5

$ 4.995,-

5

Page 6: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

Overview

Introduction The NeXTSTEP operating system The Mach Microkernel The next steps

6

6

Page 7: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The NeXTStep Operating SystemMain Features

Mach Kernel BSD4.3 user space server NeXTSTEP user interface

Display Postscript Object-oriented application framework Objective C as standard programming language Extraordinary OO-development tools High integration of all native applications

7

7

Page 8: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The NeXTSTEP Operating SystemDemo - By Steve Jobs

Product Demonstration of NeXTSTEP Release 3.0

8

8

Page 9: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

Overview

Introduction The NeXTSTEP operating system The Mach Microkernel The next steps

9

9

Page 10: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The Mach MicrokernelHistory

1985 - 1994 - developed at Carnegie-Mellon university Microkernel

Deployed in several systems NeXTSTEP / OPENSTEP - Rhapsody - Mac OS X GNU/Hurd MkLinux Tru64 (OSF/1)

NeXTSTEP uses Mach 2.5

10

10

Page 11: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The Mach MicrokernelMicrokernel

Little features - great reliability Only the main features run in privileged mode

Process management- Scheduling

Synchronization and communication

Device drivers and all other services run as user services

11

small interface little trusted computing base

lots of communication overhead

lots of synchronization

11

Page 12: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The Mach MicrokernelMain Features

Preemptive Multitasking Multithreading, Multiprocessing Memory protection, virtual memory Interprocess communication via mach messages

12

12

Page 13: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The Mach MicrokernelInterprocess Communication

Transparent network support Typed messages

including type conversion between different languages

Integrated with virtual memory local messages are not copied but mapped into receiver‘s address space Remote messages are send lazily

Port Rights Management Ownership Receive Send

Port names - unique Integer

13

13

Page 14: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Environment Manager for local use only

Network Message Server enables network-wide communication

Service Server

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The Mach MicrokernelHow to find Ports in NeXTStep

14

3

Jeder Port wird durch einen eindeutigen Namen bezeichnet. Diese Namen sind durchganzzahlige Werte implementiert. Verschiedene Tasks können ihre eigenen, womöglichverschiedenen Namen für denselben Port besitzen. Werden Port-Namen in Nachrichtenversandt, so transformiert der Mach-Kern den für den Absender gültigen Namen in einenin der Empfänger-Task gültigen Namen. Dabei wird der zugehörige Port für dieEmpfänger-Task womöglich erst angelegt.

Interessant bleibt jedoch die Frage, wie eine Task jemals von einer anderen Taskerfahren kann. Erst dann kann sie ihr ja eine Nachricht senden und mitteilen, unterwelchem Port sie selbst erreichbar ist.

3. Verteiltes Rechnen

Modelle für verteiltes Rechnen sollen die physische Verteilung der Komponenten einerAnwendung verbergen und die Existenz des Netzwerks verdecken. KommunizierendeTasks können dann genauso leicht auf verschiedenen Maschinen ausgeführt werden, wieauf einer einzigen. Machs-IPC stellt ein solches Modell dar und unterstützt sogar trans-parente Kommunikation in heterogenen Umgebungen.

Anhand eines Klient/Server-Beispiels wollen wir die Möglichkeiten und Werkzeugedie Mach bietet, erläutern. Die beiden Komponenten unserer verteilten Anwendungheißen packets_client und packets_server. Der Klient kann Nachrichten miteinem Integer-Wert an den Server schicken. Er ruft dazu eine Routine send_pa-cket() auf. Der Server druckt für jeden empfangenen Wert eine Notiz aus. Sendetman sehr viele Nachrichten hintereinander oder senden viele Klienten auf einmal aneinen Server, so kann eine Überflutung von Puffern oder des Netzwerkes autreten. ZumAufspüren derartiger Fälle ist unsere Anwendung geeignet — wenn man Klient undServer noch ein wenig erweitert.

Bevor Klient und Server kommunizieren können, stellt sich nun die Frage, wie beidevoneinander erfahren. Sie kommunizieren dazu mit einem Namensdienst. Bild 1 zeigtdie Initialisierungsschritte, die vor der ersten Klient/Server-Interaktion nötig sind.

netmsgserver

packets_server

packets_client

netname_check_in()

netname_look_up()

send_packet() 1

2

3

4

Bild 1: Der Mach-Namensdienst in Mac OS X: Bootstrap Server

14

Page 15: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The Mach MicrokernelMessage Sending the Easy Way

Mach Interface Generator Corba-like Stub-and-Skeleton-Generator

15

6

senden kann. Mit dem Mach Interface Generator (MIG) existiert jedoch ein leistungs-

fähiges Werkzeug, das uns viel von diesem Programmieraufwand abnimmt.

4. Der Mach Interface Generator

Ausgehend von einer Spezifikation, packets.defs in unserem Beispiel (der Suffix

.defs ist üblich), erzeugt der Mach Interface Generator C-Code für Klient und Server.

Auf der Klienten-Seite wird dabei ein procedure call interface zu Mach-Nachrichten

generiert, während auf der Server-Seite ein message passing interface zu den C-

Funktionen entsteht, die die Server-Funktionalität implementieren. Der Programmierer

hat mit dem Erzeugen von Mach-Nachrichten-Strukturen, dem Eintragen von Typ- und

Längeninformation und der Zuordnung verschiedener Typen von Nachrichten zu ver-

schiedenen Funktionen auf der Server-Seite nichts zu tun. In Bild 4 zeigen wir die von

MIG generierten Dateien in ihrer Beziehung zu ‘‘von Hand’’ codierten Pro-

grammstücken.

packets.defs

mig

packets.h

packetsUser.c

packetsServer.c

packets_client.c

packets_server_main.c

packets_client packets_server

includeinclude

generategenerate

link link

Bild 4: Generieren von Klient und Server aus einer MIG Spezifikation

In Bild 4 bezeichnen Ellipsen jeweils ausführbare Programme. Zentral ist hier

/usr/bin/mig, der Mach Interface Generator (MIG). Namen in Kästchen bezeichnen

Dateien mit C-Quelltext oder MIG-Spezifikationen. Die in Bild 4 fett gedruckten

Dateinamen deuten auf Programmstücke, die der Programmierer zu erstellen hat, der Rest

Message encoding anddecoding for free

Little RPC-specific code

15

Page 16: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The Mach MicrokernelInterprocess Communication by Example

Calculator example Server providing calculation facilities Client using command line interface to receive tasks and queries server for

the answer

16

16

Page 17: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

Overview

Introduction The NeXTSTEP operating system The Mach Microkernel The next steps

17

17

Page 18: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The next steps

1995 - reorganization of NeXT towards software NeXT computers, Inc. - NeXT software, Inc. NeXTSTEP - OPENSTEP support for different platforms

all NeXT computers Intel based computers PA-RISC Workstations Sun SPARC (IBM PPC) in labs

WebObjects - first application server

18

18

Page 19: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The next stepsOpenStep and OPENSTEP

OpenStep is an object oriented API Designed by NeXT and Sun OPENSTEP is an implementation Other for

Windows NT Solaris Linux - GNUStep

Main components Display PostScript Objective-C Runtime and Compilers Majority of NeXTSTEP's Objective-C libraries

19

19

Page 20: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

The next steps

1996 - take over by Apple, Inc. - 400 Millions US$ OPENSTEP becomes Mac OS X

with a new User Interface - Aqua but the same underlying system components

Mach enhanced to XNU (hybrid kernel) within Darwin

20

20

Page 21: The Microkernel Mach - uni-potsdam.de · Origins of Operating Systems - The Microkernel Mach Betriebssysteme und Middleware / Prof. Andreas Polze Hasso-Plattner-Institut The next

Gregor SchmidtOrigins of Operating Systems - The Microkernel Mach

Betriebssysteme und Middleware / Prof. Andreas PolzeHasso-Plattner-Institut

References

BOYKIN, Joseph; KIRSCHEN, David; LANGERMAN, Alan; LoVERSO; Susan: Programming under Mach. Addison-Wesley UNIX and Open System Series, ISBN 0-201-52739-1, Addison-Wesley 1993

GARFINKEL, Simon L.; MAHONEY, Michael K.: NeXTSTEP PROGRAMMING STEP ONE: Object-Oriented Applications. TELOS. The Electronic Library of Science ISBN 0-387-97884-4, Springer-Verlag 1993

POLZE, Andreas: Vereiltes Rechnen unter Mach. unix/mail 2/1995, Carl Hanser Verlag München. Verfügbar im Internet: <http://www.informatik.hu-berlin.de/~apolze/papers/um2-95.ps>. - online im Internet

SLABIHOUD, Stephan: NeXT Computer, Inc., 1998-2005, Verfügbar im Internet: <http://www.8bit-museum.de/docs/next1.htm>. Stand: Juni 2006 - online im Internet

Special References:

en.wikipedia.org - for lots of information around NeXTStep and Mach

lists.apple.com - for good code example and special information

21

21


Recommended