• Like
  • Save
The Microkernel Mach Under NeXTSTEP
Upcoming SlideShare
Loading in...5
×

The Microkernel Mach Under NeXTSTEP

  • 2,724 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,724
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. The Microkernel Mach in NeXTSTEP Gregor Schmidt 2006-06-29 Gregor Schmidt 1 Origins of Operating Systems - The Microkernel Mach
  • 2. Overview  Introduction  The road to NeXTSTEP  The NeXT computers  The NeXTSTEP operating system  The Mach Microkernel  Interprocess Communication by example  The next steps Gregor Schmidt 2 Origins of Operating Systems - The Microkernel Mach
  • 3. Overview  Introduction  The NeXTSTEP operating system  The Mach Microkernel  The next steps Gregor Schmidt 3 Origins of Operating Systems - The Microkernel Mach
  • 4. 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 Gregor Schmidt 4 Origins of Operating Systems - The Microkernel Mach
  • 5. The NeXT computers Gregor Schmidt 5 Origins of Operating Systems - The Microkernel Mach
  • 6. The NeXT computers  based on Motorola 680x0  2 basic models  NeXTcube (1989)  NeXTstation (1990) Gregor Schmidt 5 Origins of Operating Systems - The Microkernel Mach
  • 7. 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 Gregor Schmidt 5 Origins of Operating Systems - The Microkernel Mach
  • 8. 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 $ 4.995,- - Monochrome Display Gregor Schmidt 5 Origins of Operating Systems - The Microkernel Mach
  • 9. 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 $ 4.995,- - Monochrome Display  All later versions of NeXTSTEP operating systems run on these machines Gregor Schmidt 5 Origins of Operating Systems - The Microkernel Mach
  • 10. Overview  Introduction  The NeXTSTEP operating system  The Mach Microkernel  The next steps Gregor Schmidt 6 Origins of Operating Systems - The Microkernel Mach
  • 11. The NeXTStep Operating System Main Features Gregor Schmidt 7 Origins of Operating Systems - The Microkernel Mach
  • 12. The NeXTStep Operating System Main Features  Mach Kernel  BSD4.3 user space server  NeXTSTEP user interface Gregor Schmidt 7 Origins of Operating Systems - The Microkernel Mach
  • 13. The NeXTStep Operating System Main 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 Gregor Schmidt 7 Origins of Operating Systems - The Microkernel Mach
  • 14. The NeXTSTEP Operating System Demo - By Steve Jobs  Product Demonstration of NeXTSTEP Release 3.0 Gregor Schmidt 8 Origins of Operating Systems - The Microkernel Mach
  • 15. Overview  Introduction  The NeXTSTEP operating system  The Mach Microkernel  The next steps Gregor Schmidt 9 Origins of Operating Systems - The Microkernel Mach
  • 16. The Mach Microkernel History  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 Gregor Schmidt 10 Origins of Operating Systems - The Microkernel Mach
  • 17. The Mach Microkernel Microkernel  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 Gregor Schmidt 11 Origins of Operating Systems - The Microkernel Mach
  • 18. The Mach Microkernel Microkernel  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  small interface  little trusted computing base Gregor Schmidt 11 Origins of Operating Systems - The Microkernel Mach
  • 19. The Mach Microkernel Microkernel  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  lots of communication  small interface overhead  little trusted computing base  lots of synchronization Gregor Schmidt 11 Origins of Operating Systems - The Microkernel Mach
  • 20. The Mach Microkernel Main Features  Preemptive Multitasking  Multithreading, Multiprocessing  Memory protection, virtual memory  Interprocess communication via mach messages Gregor Schmidt 12 Origins of Operating Systems - The Microkernel Mach
  • 21. The Mach Microkernel Interprocess 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 Gregor Schmidt 13 Origins of Operating Systems - The Microkernel Mach
  • 22. The Mach Microkernel How to find Ports in NeXTStep  Environment Manager  for local use only  Network Message Server  enables network-wide communication  Service Server Gregor Schmidt 14 Origins of Operating Systems - The Microkernel Mach
  • 23. Anhand eines Klient/Server-Beispiels wollen wir die Möglichkeiten und Werkzeuge die Mach bietet, erläutern. Die beiden Komponenten unserer verteilten Anwendung heißen packets_client und packets_server. Der Klient kann Nachrichten mit The Mach Microkernelan den Server schicken. Er ruft dazu eine Routine send_pa- einem Integer-Wert cket() auf. Der Server druckt für jeden empfangenen Wert eine Notiz aus. Sendet How to man sehr vielein NeXTStep find Ports Nachrichten hintereinander oder senden viele Klienten auf einmal an einen Server, so kann eine Überflutung von Puffern oder des Netzwerkes autreten. Zum Aufspüren derartiger Fälle ist unsere Anwendung geeignet — wenn man Klient und  Environment Server noch ein wenig erweitert. Manager  for local use only Klient und Server kommunizieren können, stellt sich nun die Frage, wie beide Bevor voneinander erfahren. Sie kommunizieren dazu mit einem Namensdienst. Bild 1 zeigt  Network Message Server die Initialisierungsschritte, die vor der ersten Klient/Server-Interaktion nötig sind.  enables network-wide communication  Service Server netname_look_up() 2 netmsgserver packets_client 3 4 netname_check_in() 1 send_packet() packets_server Bild 1: Der Mach-Namensdienst Gregor Schmidt 14 Origins of Operating Systems - The Microkernel Mach
  • 24. Anhand eines Klient/Server-Beispiels wollen wir die Möglichkeiten und Werkzeuge die Mach bietet, erläutern. Die beiden Komponenten unserer verteilten Anwendung heißen packets_client und packets_server. Der Klient kann Nachrichten mit The Mach Microkernelan den Server schicken. Er ruft dazu eine Routine send_pa- einem Integer-Wert cket() auf. Der Server druckt für jeden empfangenen Wert eine Notiz aus. Sendet How to man sehr vielein NeXTStep find Ports Nachrichten hintereinander oder senden viele Klienten auf einmal an einen Server, so kann eine Überflutung von Puffern oder des Netzwerkes autreten. Zum Aufspüren derartiger Fälle ist unsere Anwendung geeignet — wenn man Klient und  Environment Server noch ein wenig erweitert. Manager  for local use only Klient und Server kommunizieren können, stellt sich nun die Frage, wie beide Bevor voneinander erfahren. Sie kommunizieren dazu mit einem Namensdienst. Bild 1 zeigt  Network Message Server die Initialisierungsschritte, die vor der ersten Klient/Server-Interaktion nötig sind.  enables network-wide communication  Service Server netname_look_up() 2 netmsgserver packets_client 3 4 netname_check_in() 1 send_packet() packets_server  in Mac OS X: Bootstrap Server Bild 1: Der Mach-Namensdienst Gregor Schmidt 14 Origins of Operating Systems - The Microkernel Mach
  • 25. The Mach Microkernel Message Sending the Easy Way  Mach Interface Generator  Corba-like Stub-and-Skeleton-Generator Gregor Schmidt 15 Origins of Operating Systems - The Microkernel Mach
  • 26. generiert, während auf der Server-Seite ein message passing interface zu d Funktionen entsteht, die die Server-Funktionalität implementieren. Der Program hat mit dem Erzeugen von Mach-Nachrichten-Strukturen, dem Eintragen von Ty Längeninformation und der Zuordnung verschiedener Typen von Nachrichten z The Mach Microkernel schiedenen Funktionen auf der Server-Seite nichts zu tun. In Bild 4 zeigen wir d MIG generierten Dateien in ihrer Beziehung zu ‘‘von Hand’’ codierten Message Sending grammstücken. Way the Easy  Mach Interface Generator packets.defs  Corba-like Stub-and-Skeleton-Generator mig generate generate packets.h include include packets_client.c packetsUser.c packetsServer.c packets_server_main.c link link packets_server packets_client Gregor Schmidt Bild 4: Generieren von Klient und Systems -aus einer MIGMach 15 Server The Microkernel Spezifikation Origins of Operating In Bild 4 bezeichnen Ellipsen jeweils ausführbare Programme. Zentral is /usr/bin/mig, der Mach Interface Generator (MIG). Namen in Kästchen beze Dateien mit C-Quelltext oder MIG-Spezifikationen. Die in Bild 4 fett gedr Dateinamen deuten auf Programmstücke, die der Programmierer zu erstellen hat, de
  • 27. generiert, während auf der Server-Seite ein message passing interface zu d Funktionen entsteht, die die Server-Funktionalität implementieren. Der Program hat mit dem Erzeugen von Mach-Nachrichten-Strukturen, dem Eintragen von Ty Längeninformation und der Zuordnung verschiedener Typen von Nachrichten z The Mach Microkernel schiedenen Funktionen auf der Server-Seite nichts zu tun. In Bild 4 zeigen wir d MIG generierten Dateien in ihrer Beziehung zu ‘‘von Hand’’ codierten Message Sending grammstücken. Way the Easy  Mach Interface Generator packets.defs  Corba-like Stub-and-Skeleton-Generator mig generate generate  Message encoding and decoding for free packets.h include include  Little RPC-specific code packets_client.c packetsUser.c packetsServer.c packets_server_main.c link link packets_server packets_client Gregor Schmidt Bild 4: Generieren von Klient und Systems -aus einer MIGMach 15 Server The Microkernel Spezifikation Origins of Operating In Bild 4 bezeichnen Ellipsen jeweils ausführbare Programme. Zentral is /usr/bin/mig, der Mach Interface Generator (MIG). Namen in Kästchen beze Dateien mit C-Quelltext oder MIG-Spezifikationen. Die in Bild 4 fett gedr Dateinamen deuten auf Programmstücke, die der Programmierer zu erstellen hat, de
  • 28. The Mach Microkernel Interprocess Communication by Example  Calculator example  Server providing calculation facilities  Client using command line interface to receive tasks and queries server for the answer Gregor Schmidt 16 Origins of Operating Systems - The Microkernel Mach
  • 29. Overview  Introduction  The NeXTSTEP operating system  The Mach Microkernel  The next steps Gregor Schmidt 17 Origins of Operating Systems - The Microkernel Mach
  • 30. 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 Gregor Schmidt 18 Origins of Operating Systems - The Microkernel Mach
  • 31. The next steps OpenStep 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 Gregor Schmidt 19 Origins of Operating Systems - The Microkernel Mach
  • 32. 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 Gregor Schmidt 20 Origins of Operating Systems - The Microkernel Mach
  • 33. 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 Gregor Schmidt 21 Origins of Operating Systems - The Microkernel Mach