Echtzeit AG

Hauptseminar

MorphOS

Stefan Scholze

08.07.05 EZAG: MorphOS 1 Motivation

● 1985: -User: „Der Amiga ist seiner Zeit weit voraus!“ – 32 bit-Architektur, programmierbare Echtzeit- – preemptives Multitasking – AutoConfig-Mechanismus = Plug&Play – fensterorientierte Oberfläche ● große Amiga Gemeinde – Shared-Libraries – Public Domain ➔ Übergang des auf PPC-Architektur

08.07.05 EZAG: MorphOS 2 Übersicht:

1. Geschichte 2. 3. Struktur 4. Mikrokern 5. A-Box 6. Q-Box 7. Emulation in MorphOS

08.07.05 EZAG: MorphOS 3 Geschichte

● Sep 1995: Idee: Beschleunigung des Amigas mit PPC - Prozessoren – Zusammenarbeit Amiga Technologies mit phase 5 – „PowerUp-Projekt“: von 68k Prozessor zu PPC – Eventuell neues OS mit Amiga Kompatibilität ● 1997 PowerUp Erweiterungskarten für Amiga – 2 Prozessoren (68k + PPC) – Erstmals RISC basierte Beschleunigung ● 1999 Start des MorphOS Projektes – OS, das gute Eigenschaften von AmigaOS „morpht“ 08.07.05 EZAG: MorphOS 4 Geschichte

● Feb 2000: Pleite phase5

● Später Neugründung bplan GmbH – Ziele:

● Weiterentwicklung MorphOS ● Entwicklung eigener Hardwareplattform: Pegasos ● Ende 2000: erste Beta für PowerUp-Karten

● Sommer 2002: Veröffentlichung MorphOS V1.0 unter Firma: Genesi

● Aktuell am 30.04.2005 – MorphOS V1.4.5 veröffentlicht, ständig weiterentwickelt 08.07.05 EZAG: MorphOS 5 Pegasos Reihe

● Streng gebunden an MorphOS Entwicklung

● Moderne, offene Computerarchitektur – CHRP Standard – OPA neuer Standard für PPC ● Prozessor: Motorola und IBM – 750CXe (G3) mit 600MHz (Sommer 2002) – MPC7447RXLB (G4) 1000MHz / MPC7447A 1670 MHz ● Smart Firmware

● Sommer 2002: erste Auslieferung

08.07.05 EZAG: MorphOS 6 Struktur

● Basiert auf Quark Mikrokern

● Auf Kern laufen 2 Boxen: A-Box, Q-Box

andere A-BOX Q-BOX Boxen User-Mode

Quark Mikrokern Kernel-Mode

HAL

Hardware

08.07.05 EZAG: MorphOS 7 Struktur

● Momentane Entwicklung im Endstatium: A-Box – Kann Amiga Anwendungen laufen lassen – Vollständige erweiterte Reimplementation von AOS V3.1 – JIT-basierter 68k Emulator für alte AOS Anwendungen ● Im Entwicklungsstadium: Q-Box – Eigene MorphOS Programme ● In Zukunft weitere Boxen möglich

08.07.05 EZAG: MorphOS 8 Quark Mikrokern

● Kleiner Mikrokern

User-Level Exception CPU Config Adress Server T i me Server S erver Server

Speicher- Message- SystemInit Management Passing

HAL Layer Kern-Modus 08.07.05 EZAG: MorphOS 9 Quark Mikrokern

● Kleiner Mikrokern Aufbau – CPU Kontextswitch zw. Kern- und Nutzerprozess teuer

➢ Viele OS monolitisch aufgebaut

➢ Aber: zu Lasten der EZ-Fähigkeit, Stabilität, Sicherheit ● Auf PPC Kontextswitch 10x schneller als auf x86

➢ Kein MorphOS für x86 geplan ● Keine Nachteile der monolitischen OS ● Speicherschutz, Standard für virtuellen Speicher

● ohne Cache-Probleme des Amigas

● Symmetrisches Multiprocessing (SMP)

08.07.05 EZAG: MorphOS 10 A-Box

● Ziel: auf moderner Hardware, Prinzipien des AmigaOS nutzen und weiterführen

● Normale Emulation: – Emulation vollständig und genau – Emuliert 68k Prozessor – Aber: Performanceverlust – Keine Modernisierung und funktionelle Erweiterung ● MorphOS – AmigaOS V3.1 Funktionalität und Erweiterungen – Nutzung moderner Hardware 08.07.05 EZAG: MorphOS 11 A-Box

● PPC nativ (für PPC geschrieben und compiliert)

● Zusätzlich 68k Emulator für fertige Anwendungen

● JIT 68k Code -> PPC Code – Emulationsoverhead beseitigt ● Keine Emulation der Amiga Custom Chips – Seit AOS V2.0 API für hardwareunabhängige Aufrufe – UAE verfügbar, komplette Amiga-Hardware Emulation ● Performance: G3 (600MHz) 1000x schneller wie 68000er Amiga

08.07.05 EZAG: MorphOS 12 A-Box

● Filesystem: – Erweiterbar durch Plugins – HD Filesystem:

● OFS,FFS,FFS2,PFS3,SFS – CD Filesystem:

● ISO9660, Multisession, Rockridge, Joliet ● AHI: – Audiosystem erweitert durch AHI – Hardwareunabhängige API – Aktuelle moderne Audio-HW nutzbar

08.07.05 EZAG: MorphOS 13 A-Box

● Grafiksystem: – CGX (Cybergraphics) basiert – Vollständig von Hardware abstrahiert

● Verschiedene Grafikkarten nutzbar – 3D Beschleunigung mit Rave3D API – Warp3D Kompatibilität – OpenGL 1.4 Layer „Jungl“

08.07.05 EZAG: MorphOS 14 A-Box

● MUI: – Grafiktoolkit, objektorientiert – Stark erweitert zu früher und auf PPC portiert – Vollständig ins System integriert – Stark an Anforderungen anpassbar – Von den meisten Anwendungen genutzt ● Ambient – MorphOS Desktop – Look and Feel der Amiga Workbench – Multithreadfähig, 64 Bit Dateizugriff 08.07.05 EZAG: MorphOS 15 Ambient - Screenshoot

08.07.05 EZAG: MorphOS 16 A-Box

● Sonstiges: – Enthält Treiber für Hardware – Druckerunterstützung – Shellkonsole – Viele Tools und Utilities enthalten

08.07.05 EZAG: MorphOS 17 A-Box

● 1985 – AmigaOS mit preemptivem Multitasking

● Andere Desktop OS viel später – Kritische Begrenzungen

● Kein Speicherschutz ● Kein Standard für virtuellen Speicher ● A-Box = Reimplementation der AOS V3.1 Spezifikation

● Design beibehalten für Kompatibilität ● Viele Begrenzungen behoben, aber auch einige beibehalten ➔ Beschränkungen der A-Box

08.07.05 EZAG: MorphOS 18 Q-Box

● Bis jetzt A-Box entwickelt

● Zukunft: Q

● Besteht aus – Erweitertem Quark Kern – Mehrere Server für verschiedene Funktionen (Hauptarbeit) – Q-Box ● Erweiterter Quark Kern: – Speichermanagement, Hardwareabstraktion, Treiber und Nachrichtenzustellsystem

08.07.05 EZAG: MorphOS 19 Q-Box Anwendungen: A-Box Q-Box

User-Level

Grafik N etzwerk Da teisystem S i c h erheit Server: Server Server Server Server

Config Adress CPU Exception Server S erver T i me Server S erv er

Speicher- Message- Management Sys t emInit Mikrokern: Passing HAL Hardware Abstraction Layer Kern-Modus

08.07.05 EZAG: MorphOS 20 Q-Box

● Nachrichtenzustellsystem geplant – Schnelle Prozesskommunikation – Statt Daten zu verschieben wird Speicher der Nachricht in Anwendung eingeblendet – Kleine Nachrichten direkt kopiert – Macht System skalierbar

● Sender und Empfänger können auf versch. Prozessoren/Rechnern sein ● Ermöglicht Clusteraufbau ● Als 64 – Bit System gebaut

08.07.05 EZAG: MorphOS 21 Q-Box

● Q-Box – Enthält die laufenden Anwendungen – API Aufrufe durch Nachrichtensystem übermittelt – API nicht auf eine Programmiersprache beschränkt ● Weiterhin A-Box enthalten für Amiga-Kompatibilität

● Macht MorphOS stärker zu eigenständigem System mit eigenen Anwendungen

● Im frühen Enwicklungsstadium

08.07.05 EZAG: MorphOS 22 Emulation in MorphOS

● Effektiv, wenn Code auf PPC Prozessor läuft – Durch geschicktes Programmieren kann Code zwischen 68k-Emulation und PPC geteilt werden (shared library) – Geschwindigkeitsgewinn ohne Emulation – Leichte Programmierung des Amigas auch auf PPC ohne großen Aufwand ● Emulation nutzt spezielle Opcodes

● 5 verschiedene Emulationssysteme – Integer-Emulation (68060 EC) ohne FPU – 3 versch. FPU-Emulationen – JIT-Emulation (68k Opcode -> PPC Opcodes) 08.07.05 EZAG: MorphOS 23 68k Anwendung

PPC native Emulation Opcodes

Anwendung wird emuliert

• 68k opcode wird zu PPC opcode übersetzt

Quark • Ausführung der Funktion

08.07.05 EZAG: MorphOS 24 68k Code Shared library

Anwendungscode wird für PPC compiliert JIT - Compiler • Verwendung von shared libraries (mit PPC) möglich • Universal beschrieben

• Compilierung des 68k-Codes für PPC

Quark Schnellere Ausführung als bei Emulation

08.07.05 EZAG: MorphOS 25 Fazit

● Amiga-User findet sein System wieder – erhält Philosophie – Einfachheit der Programmierung – Kompatibilität „zu früher“

● Überführung bekannter Programme ● den Amiga an die aktuelle Zeit angepasst

● Weiterentwicklung durch OS-Erweiterung

Der Amiga lebt weiter!

08.07.05 EZAG: MorphOS 26 Quellen

● www.-news.de

● www.morphzone.de

● MorphOS Development Reference Manual

● www.zapek.com

● www.genesi.lu

08.07.05 EZAG: MorphOS 27