SlideShare ist ein Scribd-Unternehmen logo
1 von 33
The Microkernel Mach
                      in NeXTSTEP



Gregor Schmidt
2006-06-29




                                                                       Gregor Schmidt
                                                                                          1
                                    Origins of Operating Systems - The Microkernel Mach
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
Overview


 Introduction
 The NeXTSTEP operating system
 The Mach Microkernel
 The next steps




                                                                     Gregor Schmidt
                                                                                        3
                                  Origins of Operating Systems - The Microkernel Mach
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
The NeXT computers




                                                        Gregor Schmidt
                                                                           5
                     Origins of Operating Systems - The Microkernel Mach
The NeXT computers


 based on Motorola 680x0
 2 basic models
     NeXTcube (1989)
     NeXTstation (1990)




                                                               Gregor Schmidt
                                                                                  5
                            Origins of Operating Systems - The Microkernel Mach
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
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
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
Overview


 Introduction
 The NeXTSTEP operating system
 The Mach Microkernel
 The next steps




                                                                     Gregor Schmidt
                                                                                        6
                                  Origins of Operating Systems - The Microkernel Mach
The NeXTStep Operating System
Main Features




                                                                   Gregor Schmidt
                                                                                      7
                                Origins of Operating Systems - The Microkernel Mach
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
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
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
Overview


 Introduction
 The NeXTSTEP operating system
 The Mach Microkernel
 The next steps




                                                                     Gregor Schmidt
                                                                                        9
                                  Origins of Operating Systems - The Microkernel Mach
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
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
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
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
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
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
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
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
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
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
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
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
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
Overview


 Introduction
 The NeXTSTEP operating system
 The Mach Microkernel
 The next steps




                                                                     Gregor Schmidt
                                                                                        17
                                  Origins of Operating Systems - The Microkernel Mach
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
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to char device driver
Introduction to char device driverIntroduction to char device driver
Introduction to char device driverVandana Salve
 
Security Monitoring with eBPF
Security Monitoring with eBPFSecurity Monitoring with eBPF
Security Monitoring with eBPFAlex Maestretti
 
Address/Thread/Memory Sanitizer
Address/Thread/Memory SanitizerAddress/Thread/Memory Sanitizer
Address/Thread/Memory SanitizerPlatonov Sergey
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Linaro
 
Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Brendan Gregg
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation Jiann-Fuh Liaw
 
Page cache in Linux kernel
Page cache in Linux kernelPage cache in Linux kernel
Page cache in Linux kernelAdrian Huang
 
Linux booting Process
Linux booting ProcessLinux booting Process
Linux booting ProcessGaurav Sharma
 
Linux BPF Superpowers
Linux BPF SuperpowersLinux BPF Superpowers
Linux BPF SuperpowersBrendan Gregg
 
Introduction to yocto
Introduction to yoctoIntroduction to yocto
Introduction to yoctoAlex Gonzalez
 
OpenStack Tutorial
OpenStack TutorialOpenStack Tutorial
OpenStack TutorialBret Piatt
 
Linux Kernel Startup Code In Embedded Linux
Linux    Kernel    Startup  Code In  Embedded  LinuxLinux    Kernel    Startup  Code In  Embedded  Linux
Linux Kernel Startup Code In Embedded LinuxEmanuele Bonanni
 
Memory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux KernelMemory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux KernelAdrian Huang
 

Was ist angesagt? (20)

Qemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System EmulationQemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System Emulation
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Introduction to char device driver
Introduction to char device driverIntroduction to char device driver
Introduction to char device driver
 
Security Monitoring with eBPF
Security Monitoring with eBPFSecurity Monitoring with eBPF
Security Monitoring with eBPF
 
Address/Thread/Memory Sanitizer
Address/Thread/Memory SanitizerAddress/Thread/Memory Sanitizer
Address/Thread/Memory Sanitizer
 
Hacking QNX
Hacking QNXHacking QNX
Hacking QNX
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_
 
Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)Performance Wins with eBPF: Getting Started (2021)
Performance Wins with eBPF: Getting Started (2021)
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation
 
Page cache in Linux kernel
Page cache in Linux kernelPage cache in Linux kernel
Page cache in Linux kernel
 
Linux booting Process
Linux booting ProcessLinux booting Process
Linux booting Process
 
Construct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoTConstruct an Efficient and Secure Microkernel for IoT
Construct an Efficient and Secure Microkernel for IoT
 
Linux BPF Superpowers
Linux BPF SuperpowersLinux BPF Superpowers
Linux BPF Superpowers
 
Introduction to yocto
Introduction to yoctoIntroduction to yocto
Introduction to yocto
 
Making Linux do Hard Real-time
Making Linux do Hard Real-timeMaking Linux do Hard Real-time
Making Linux do Hard Real-time
 
Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
 
OpenStack Tutorial
OpenStack TutorialOpenStack Tutorial
OpenStack Tutorial
 
Linux Kernel Startup Code In Embedded Linux
Linux    Kernel    Startup  Code In  Embedded  LinuxLinux    Kernel    Startup  Code In  Embedded  Linux
Linux Kernel Startup Code In Embedded Linux
 
Linux Audio Drivers. ALSA
Linux Audio Drivers. ALSALinux Audio Drivers. ALSA
Linux Audio Drivers. ALSA
 
Memory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux KernelMemory Mapping Implementation (mmap) in Linux Kernel
Memory Mapping Implementation (mmap) in Linux Kernel
 

The Microkernel Mach Under NeXTSTEP

  • 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