FunTime: Hi Sam, erzähl uns mal wie es zu der Idee kam noch ein
PPC System wie WarpOS zu entwickeln, welche Schwierigkeiten es
gab und wer überhaupt daran beteiligt war?
|
Das ist natuerlich eine recht lange Geschichte. Meine
PPC-Karriere begann im Fruehling 1996, als ich damit begann,
einen PPC-Assembler zu schreiben. Damals hatte ich natuerlich
noch keine PPC-Hardware, dafuer war ich mit vielen Fachbuechern
ausgestattet, welche es mir erlaubten, auch ohne Hardware zuegig
weiterzuarbeiten. Dann aber kam der Punkt, wo ich unbedingt
wissen musste, wie denn die Objekt-Dateien und ausfuehrbaren
Programme fuer den PPC auszusehen haben. Nach einigen
erfolglosen Anfragen bei Phase5 (es hiess, es gaebe noch
keinerlei Informationen) fragte ich bei HAAGE&PARTNER an. Ich
wurde praktisch mit offenen Armen empfangen. Kurze Zeit spaeter
gabs das erste Treffen und schon bald bekam ich ein PPC-Board zur
Verfuegung gestellt. Das war im November 1996.
Als ich das Board bekommen hatte, hatte ich bereits mein erstes
PPC-Programm erfolgreich mit meinem Assembler uebersetzt und
brannte foermlich darauf, zu sehen, was der PowerPC so drauf hat.
Dann kam der grosse Moment: ich startete das 'cybermand'
(Mandelbrot-Programm) und das Ergebnis hatte mich schockiert. Es
lief um mehrere Faktoren langsamer als der 68060-Prozessor. Die
Ursache des Problems war schnell gefunden: die Kontextwechsel
(Wechsel des Programmablaufs von einer CPU zur anderen) waren
einfach unglaublich langsam, was wiederum an der ppc.library lag,
welche die Schnittstelle zum PPC darstellte.
Auch meine Kollegen hatten massive Probleme mit der ppc.library
und so entstand schnell der Wunsch nach einer besseren Loesung.
Kurze Zeit darauf habe ich die erste Version einer neuen
Hardware-Schnittstelle zum PPC fertig. Das Resultat war sehr
beeindruckend, das Mandelbrot-Programm war wirklich unglaublich
schnell geworden. Diese powerpc.library V1 ist sozusagen der
Urahn des heutigen WarpOS.
Da sich am Zustand der ppc.library nichts gebessert hatte,
arbeiteten wir weiterhin mit der powerpc.library, welche dann
immer mehr verbessert wurde. Bereits zum Jahreswechsel waren
Features wie MMU-Support, Crash-Requester implementiert. Das
erlaubte es H&P, sehr effizient weiterzuarbeiten, was sich dann
auch darin aeusserte, dass H&P praktisch als einzige schon sehr
bald beeindruckende Software zeigen konnte, wie zum Beispiel das
Voxelspace- Demo, welches schon anfangs 1997 lief.
Ende Maerz 1997 kam dann ein Tiefschlag. Bisher war die
powerpc.library beim Hochfahren auf die ppc.library angewiesen
aber auf einmal erschien eine ppc.library, welche es unmoeglich
machte, die powerpc.library V6 weiterzuverwenden. Das traf mich
ganz unvorbereitet und jetzt stellte sich die Frage, wie es denn
weitergehen sollte.
Dann fassten wir den Beschluss, eine powerpc.library zu
entwickeln, welche auf der ppc.library basieren sollte, die V7.
Die war in kurzer Zeit erstellt und die Software lief dann
wieder. Nur war die Performance immer noch grausig und es
fehlten auch viele Features, so dass die meisten Features der
alten V6 nicht mehr eingebaut werden konnten. Also versuchte H&P
zunaechst, Phase5 dazu zu bringen, unsere Wuensche bei der
Weiterentwicklung der ppc.library zu beruecksichtigen. Leider
blieb das voellig erfolglos, die Wuensche wurden praktisch
ignoriert. Jedenfalls waren wir schnell der Meinung, dass man
auch mit dieser Loesung nicht vernuenftig arbeiten konnte.
Als Folge davon entstand die powerpc.library V8, das WarpOS. Es
wurde in Rekordzeit fertiggestellt, da jederzeit mit dem Release
der Boards gerechnet werden musste (im Fruehling/Sommer 1997
wurden ja die Ankuendigungen im 2-Wochen-Takt jeweils
verschoben). Die Kontextwechsel waren damals etwa um den Faktor
100 schneller als mit der ppc.library. Zudem bot das WarpOS
alles, was wir uns so wuenschten. Seither hat sich das WarpOS zu
einem aeusserst leistungsfaehigen und zuverlaessigen OS-Kern
entwickelt. Die neueste Version ist die V14, welche vor kurzem
veroeffentlicht wurde. |
FunTime: Die Anzahl der PPC Programme die zur Zeit erscheinen
ist noch relativ klein, meistens handelt es sich dabei noch um
kleine Tools die relativ wenig von einem PPC Prozessor
profitieren. Die Zahl der WarpOS Programme ist verglichen mit
den Programmen für die ppc.library noch kleiner. Profesionelle
Anwendungen von anderen Firmen außer jetzt Haage&Partner wurden
kaum für WarpOS angekündigt. Wie kommt das, wo es doch mit dem
StormC++ Entwicklungspaket relativ einfach sein sollte auch
größere Projekte für PPC umzusetzen? |
Es herrscht zur Zeit immer noch eine grosse Verunsicherung, die
auch durch diese Auseinandersetzung beim ersten WarpOS-Release
verursacht wurde. Deswegen haben wohl viele Entwickler immer
noch etwas Angst davor, sich auf ein System festzulegen.
Das StormC++ Entwicklungspaket erleichtert zwar das Erstellen von
PPC-Software ungemein, nur darf sich niemand einfach erhoffen,
simples Neucompilieren von existierender Software wuerde
ausreichen, um effiziente PPC-Software zu erstellen. Diese
Dual-Prozessor-Hardware stellt die Entwickler vor enorme
Probleme, was wohl mit ein Grund ist, warum noch sehr wenig
effiziente PPC-Software vorhanden ist. |
FunTime: Die relativ kleine Anzahl an PPC Programmen für WarpOS
läßt sich damit auch erklären das es außer StormC++ keinen
anderen Compiler gibt welcher WarpOS unterstützen würde.
StormC++ ist mit Sicherheit keine schlechte Software aber bei
weitem noch nicht für alle Programmierer bezahlbar. Wird es
vielleicht eine andere Lösung außer StormC++ geben? |
Ein Freeware-Compiler fuer WarpOS ist zur Zeit in Arbeit, erste
Beta- Versionen laufen bereits. Damit sollten auch fuer die
Leute mit knappem Geldbeutel jegliche Hindernisse aus dem Weg
geraeumt werden. |
FunTime: Immer wieder heißt hört man von vielen Programmierern
das es sehr schwer ist Programme für PowerUp umzusetzen. Kannst
Du uns mal in einigen kurzen Sätzen erklären wo die größten
Schwierigkeiten liegen und wieso wir noch Heute auf soviele
Programme warten müssen? |
Man fragt sich natuerlich, warum das beim AMIGA nicht so klappen
will, wie z.B. beim PowerMac. Der Hauptgrund ist die
Dual-Prozessor-Architektur, welche unserer Meinung nach absolut
keine Zukunft hat und schnell verschwinden muss. Ich werde mal
kurz skizzieren, womit die Entwickler heute zu kaempfen haben.
Das Hauptproblem ist das, dass das gesamte AMIGA-Betriebssystem
komplett auf dem 68K-Prozessor basiert. Das AMIGA-OS weiss
absolut gar nichts ueber den PPC, also profitiert es auch nicht
vom schnelleren Prozessor. Die Applikationen muessen den PowerPC
speziell unterstuetzen, was mit Hilfe der vorliegenden Loesungen
(WarpOS, ppc.library) gemacht wird. Schlussendlich heisst das,
dass der PPC nicht mehr ist als ein sehr schneller Koprozessor.
Viele Applikationen fuer den AMIGA arbeiten intensiv mit dem
AMIGA-OS, indem sie Systemfunktionen aufrufen. Wenn jetzt ein
solcher Aufruf in einer PPC-Funktion geschieht, muss ein Wechsel
des Programmablaufs von einer CPU zur anderen durchgefuehrt
werden. Diese Wechsel dauern beim WarpOS zur Zeit 0.5
Millisekunden (hin und zurueck). Das heisst jetzt, dass
PPC-Software, welche intensiv das AMIGA-Betriebssystem nutzt
stark gebremst wird und damit ist auch schon erklaert, warum
viele PPC-Software fuer den AMIGA nur sehr ineffizient laeuft.
Diese langen Kontextwechsel kommen auch daher, dass dauernd die
Prozessor- Caches geflusht werden, was mich auf das zweite
Problem bringt. Wenn eine CPU einen Wert in den Speicher
schreibt, dann landet der Wert meistens noch gar nicht im
Speicher sondern nur im Cache. Wenn jetzt der andere Prozessor
diesen Wert vom Speicher lesen will, bekommt er einen falschen
Wert. Der 68K und der PPC sind nicht in der Lage,
hardwaremaessig dafuer zu sorgen, dass die Inhalte der Caches
abgeglichen werden. Wenn man jetzt existierende Programme vom
68K her uebernimmt und die zu portieren versucht, kann man dabei
eine boese Ueberraschung erleben. Was auf dem 68K so wunderbar
funktioniert klappt auf einmal nicht mehr.
Das dritte Problem haengt mit dem zweiten zusammen. Wenn der PPC
auf Speicher direkt zugreift, welche direkt von EXEC (auf der
68K-Seite) alloziert wurde, so besteht eine grosse Gefahr, dass
sich beide Prozessoren im Randgebiet des allozierten Speichers
gegenseitig die Daten kaputtmachen. Das ist in der Tat ein
Problem, dass von sehr vielen Entwicklern total unterschaetzt
oder sogar ignoriert wird. Ich bin mir fast sicher, dass viele
der existierenden PPC-Software einfach System-Calls auf
Funktionen wie 'AllocMem' und 'AllocVec' machen, was dazu fuehrt,
dass diese Software potentiell instabil laeuft. Falls die
Entwickler das nicht merken, muss man befuerchten, dass die
Instabilitaeten immer mehr zunehmen werden.
All diese Probleme bedeuten fuer viele Entwickler einen enormen
Mehraufwand und damit auch erhoehte Entwicklungskosten. Zudem
ist die Aussicht auf Erfolg auch nicht immer grad rosig, wenn es
sich um Software handelt, welche extrem AMIGA-OS-lastig ist. |
FunTime: Phase5 ist für viele Amiga User sowas wie ein Gott.
Schließlich hat kein anderer Hardware Hersteller wie phase5
soviel für den Amiga getan. Was wird bei Haage&Partner denn
unternommen damit sich die WarpOS Lösung gegenüber der
ppc.library durchsetzt? |
Erste Grundregel: Wir wollen unsere Loesung durchsetzen, indem
wir hohe Qualitaet und Innovation bringen. Das WarpOS hat mit
der Zeit auesserst interessante Features bekommen wie
fakultativer Speicherschutz oder dynamisches Multitasking. Das
sind wichtige Features, welche auf alternativen Plattformen schon
laengst Standard sind.
Wir moechten auch zeigen, dass das WarpOS als ein erster
Vorlaeufer des zukuenftigen EXEC betrachtet werden kann. Das
ganze WarpOS wurde stark auf die Kompatibilitaet zu EXEC
getrimmt, so dass WarpUp-Software spaeter problemlos mit dem
neuen portierten EXEC laufen wird. |
FunTime: Mit dem erscheinen der BlizzardPPC Karten kam auch das
erste große Problem wo es einfach unmöglich war Programme welche
WarpOS unterstützen zum Laufen zu bewegen. Zum glück ist es Dir
gelungen dieses Problem zu beheben. Ähnliche Probleme werden in
Zukunft mit Sicherheit nicht selten auftreten, glaubst Du das es
Dir immer gelingen wird diese dann zu lösen? Was müßte es Deiner
Meinung nach passieren um phase5 zu einer Zusammenarbeit mit
Haage&Partner in der PPC Sache zu bewegen? |
Kompromissbereitschaft von beiden Seiten. H&P hat immer betont,
dass eine zusaetzliche Unterstuetzung des ELF-Formats durchaus im
Bereich des Moeglichen liegen koennte. Das bedingt aber, dass
auch P5 einen Schritt in unsere Richtung macht und zu
Zugestaendnissen bereit ist. Wie man bei der BlizzardPPC gesehen
hat, war das Gegenteil der Fall.
Ich rechne ganz fest mit weiteren Problemen, bin aber auch davon
ueberzeugt, dass sich alle Probleme loesen lassen. Jedenfalls
kann es uns nicht wieder passieren, dass uns das unvorbereitet
trifft. |
FunTime: Wenn man sich mal mit Leuten im Z-Netz oder auch
anderen Netzen über das Thema WarpOS und ppc.library unterhält
dann merkt man sehr schnell, das viele gegen WarpOS schon alleine
deshalb sind nur weil es phase5 nicht in den Kram passt. Wir
findest Du es das man einfach etwas kritisiert ohne sich damit
überhaupt auseinander gesetzt zu haben? |
Gegen Kritik habe ich gar nichts, aber sie muss auf etwas beruhen
und sie muss sachlich und hoeflich formuliert sein. Ich habe
hier schon sehr Positives und auch sehr Negatives erlebt.
Wenn Leute WarpOS deswegen als schlecht ansehen, weil es von
Phase5 nicht unterstuetzt ist, so ist das einfach nicht objektiv.
Man sollte seine Meinung anhand von eigenen Erfahrungen bilden. |
FunTime: Bevor wir zu einem anderem interessantem Thema kommen,
hier noch die letzte WarpOS Frage. Wieso soll WarpOS für den
Anwender und auch Programmierer Deiner Meinung nach besser sein
als die ppc.library? |
WarpOS bot seit jeher eine sehr hohe Zuverlaessigkeit, welche von
der ppc.library selbst heute noch nicht erreicht wird, was fuer
den Andwender als auch fuer den Entwickler bestimmt ein sehr
wichtiges Argument ist. Zudem darf sowohl der Anwender als auch
der Entwickler auf den bestmoeglichen Support zaehlen, z.B.
beantworte ich nahezu immer alle ankommenden Mails sofort, was
schon viele Leute dankbar zur Kenntnis genommen haben, nachdem
sie vom Phase5-Support enttaeuscht wurden. Die WarpUp-Releases
bringen auch dem Anwender eine einfache Handhabung und
Installation, dem Entwickler umfangreiche und detaillierte
Dokumentation.
Das WarpOS wird staendig weiterentwickelt und ich scheue mich
auch nicht davon, umfangreiche Arbeiten durchzufuehren, um
hochklassige Features zu unterstuetzen (der dynamische Scheduler
hat mich mehrere Wochen gekostet). Hier darf man in Zukunft noch
ganz heisse Sachen erwarten :)
WarpOS bietet auch maechtige Funktionen an, um
Lowlevel-Applikationen zu realisieren. Man darf nicht vergessen,
unter dem WarpOS liegt der WarpUp-HAL, der wiederum mit ueber 50
Funktionen alles bietet, was ein Programmierer einer
LowLevel-Applikation (z.B. Emulatoren) sich so wuenscht. Ich
moechte hier auch noch hinzufuegen, dass der WarpUp-HAL
problemlos auch fuer ein PPC-EXEC verwendet werden koennte.
Damit koennten sich die Entwickler des PPC-EXEC eine ganze Menge
Zeit einsparen.
Last but not least: WarpUp ist ein offenes System, seit der V14
ist das durch die Hardware-Treiber offensichtlich geworden.
Hersteller von alternativer PPC-Hardware koennen sogar
selbststaendig einen Treiber fuer das WarpOS erstellen, wonach
das WarpOS sofort auf jeglicher PPC-AMIGA-Plattform laufen wird.
Wir sind davon ueberzeugt, dass es bald alternative Hardware
geben wird. |
FunTime: Themawechsel: Seit kurzem bist Du auch an der
Portierung der MesaGL/OpenGL Library beteiligt. Schon jetzt soll
MesaGL vollständig Kompatibel zu OpenGL sein. Das alles klingt
natürlich wieder sehr toll, doch leider nützt uns das ohne
passender Hardware recht wenig. Selbst ein PPC Prozessor hat da
gewisse Schwierigkeiten. Auf dem Amiga Markt sieht es zur Zeit
mit der passender Hardware sehr schlecht aus, wie soll sich dann
Deiner Meinung so ein interessantes Produkt durchsetzen? |
Es ist halt ein Teufelskreis: solange keine Software da ist,
welche 3D-Hardware unterstuetzt, will niemand 3D-Hardware bauen
(denn es wuerde ja niemand damit was anfangen koennen) und
solange keine 3D-Hardware da ist, will niemand Software dafuer zu
entwickeln. Es gilt, jetzt aus diesem Teufelskreis auszubrechen
und das Storm-MESA ist der erste Schritt in die Richtung.
OpenGL ohne 3D-Hardware ist natuerlich unbrauchbar, da die CPU
einfach mit der Komplexitaet ueberfordert ist. Deswegen kann
sich OpenGL erst durchsetzen, sobald eine GL-Implementation
3D-Hardware unterstuetzt. Und genau das ist zur Zeit geplant und
es wird nicht mehr lange dauern, bis das verwirklicht wird.
Damit kann der AMIGA einen gewaltigen Sprung in die 3D-Zukunft
unternehmen, denn dann ist es praktisch ein Kinderspiel, jegliche
OpenGL-unterstuetzte Applikationen (man denke an gewisse
PC-Spiele) auf den AMIGA umzusetzen.
Wir wollen mit dem MESA auch ein Zeichen in Richtung
Grafikkarten- Hersteller setzen. Wir wollen zeigen, dass es sich
lohnt, 3D-Hardware auf Grafikkarten einzusetzen und dass es sich
lohnt, leistungsfaehige Chips einzusetzen. |
FunTime: Mit OpenGL wäre es auch fast schon ein Kinderspiel eine
große Anzahl der PC 3D Spiele für den Amiga zu portieren. Leider
wird es dazu, das wohl durch die magere Anzahl an gut
ausgestatteten Amigas und der Verbohrheit einiger Firmen nie
kommen. Denkst Du nicht das alle Amiga Firmen langsam ihren
eigenen Weg gehen und so den technischen Fortschritt des Amigas
hindern? |
Ich denke, dass keine AMIGA-Spiele-Firma an Portierungen von
PC-Games vorbeikommt. Es gibt zwar viele Talente beim AMIGA,
welche in der Lage waeren, hochklassige Spiele zu entwickeln,
aber das reicht natuerlich nicht, um die Spiele-Welt des AMIGA
wieder in Schwung zu bringen.
Ich hoffe hier etwas auf die Signalwirkung von den Firmen, welche
jetzt Portierungen von PC-Games fuer den AMIGA bringen. Das
koennte dazu fuehren, dass andere Firmen auf den Zug aufspringen.
|
FunTime: Wir möchten Dich natürlich bei Deiner Arbeit an neuen
Sache nicht hindern deshalb folgt hier unsere letzte Standart
Frage. Was machst Du sonst noch außer programmieren? |
Ich studiere Telekommunikation an der Fachhochschule in Chur
(Schweiz). Zur Zeit im 6. Semester (von 6). Sind ueber 30
Lektionen die Woche, und sobald ich heimkomme, bin ich fast
pausenlos mit dem AMIGA beschaeftigt. Da bleibt praktisch keine
Zeit mehr fuer anderes. |