Echtzeit AG
Hauptseminar
MorphOS
Stefan Scholze
08.07.05 EZAG: MorphOS 1 Motivation
● 1985: Amiga-User: „Der Amiga ist seiner Zeit weit voraus!“ – 32 bit-Architektur, programmierbare Echtzeit-Interrupts – preemptives Multitasking – AutoConfig-Mechanismus = Plug&Play – fensterorientierte Oberfläche ● große Amiga Gemeinde – Shared-Libraries – Public Domain ➔ Übergang des Amigas auf PPC-Architektur
08.07.05 EZAG: MorphOS 2 Übersicht:
1. Geschichte 2. Pegasos 3. Struktur 4. Quark 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 Hardware Abstraction 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 Compiler 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: Magic User Interface – 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.morphos-news.de
● www.morphzone.de
● MorphOS Development Reference Manual
● www.zapek.com
● www.genesi.lu
08.07.05 EZAG: MorphOS 27