# Application Systems Heidelberg Softwareinfo

## MagiC-Info

#### Dieses Produkt läuft unter:

### MagiC, MagiC-Mac, MagiC-PC

#### Eilige finden unten eine kurze Zusammenfassung

## MagiC, das zauberhafte Betriebssystem

Die Geschichte von MagiC ist lang und bewegt. Am Anfang stand die Idee einer schnellen Multitasking-Betriebssystemerweiterung und am Ende kam ein Multiplattform-Betriebssystem heraus. MagiC wurde ursprünglich als TOS-kompatibles Betriebssystem entworfen.

TOS ist diese Kreuzung aus DOS, CP/M 68k und GEM, die Atari dereinst für die Computer der 68k-Serie schuf. TOS hatte, so wie alles, was schnell zusammengezimmert wird, konzeptionelle Mängel und war in einigen Dingen sehr viel langsamer als es hätte sein müssen. Multitasking-Eigenschaften fehlten ihm ganz.

Dies bot Raum für Neues. Hier war die Lücke für MagiC. MagiC ist kompatibel zu TOS, aber sehr viel schneller. Das führte dazu, daß man auf einer Singletasking-TOS-Maschine MagiC installieren konnte und obwohl das System nun multitaskingfähig war liefen die Anwendungen schneller als zuvor.

Heute ist MagiC ein modernes Betriebssystem, das präemptives Multitasking beherrscht, einen modularen Aufbau des Dateisystems bietet, so daß Module für andere Filesysteme einfach eingehängt werden können, es beherrscht Threads und Signale, es gibt Systemerweiterungen für Object-Linking (vergleichbar dem OLE von Windows), symbolische Dateilinks und vieles andere mehr, was man von einem heutigen Betriebssystem erwartet.

Wer nur etwas über die Betriebssystemeigenschaften von MagiC wissen möchte, kann jetzt auch weiterblättern, bis zum Abschnitt "Was kann MagiC?". Allerdings halten wir die folgenden Ausführungen mit gelegentlichen Ausflügen in die Geschichte der Computer für lesenswert.
Sprung zu Was kann MagiC?

## Ein Programm, aber welcher Computer?

Schon lange gibt es den Traum von Programmen, die auf allen Computern funktionieren. Verschiedene Lösungsansätze hat es im Laufe der Zeit gegeben, aber wenn man ehrlich ist, dann wird man eingestehen müssen, daß alle bisher gescheitert sind. Sehen wir uns doch mal an, was es da bisher gab.

## P-Code

Mit dem P-Code wollte man die Idee realisieren, daß ein Compiler keinen echten Code erzeugt, der direkt vom Prozessor der Maschine verstanden wird, weil das eine maschinenabhängigkeit des Programms bedeutet hätte. Daher wurde der P-Code erzeugt, eine Codierung, die relativ schnell und mehr oder weniger direkt in Maschinencode umgesetzt werden kann.

Zur Komplettierung dieses Konzeptes ist es dann erforderlich, daß für die jeweiligen Zielmaschinen, auf denen die P-Code-Programme laufen sollen, Programme zur Verfügung stehen, die den P-Code in den jeweiligen Maschinencode übersetzen.

Eine zeitlang war diese Idee modern und fand begeisterte Anhänger. Es gab auf verschiedenen Maschinen Compiler für die unterschiedlichsten Programmiersprachen, die P-Code erzeugten. Aber letzten Endes ist dieses Experiment im Sande verlaufen.

Mit Java ist diese Idee wieder modern geworden und wer sich mit der Idee eines Netzcomputers anfreundet, der muß sich auch mit der alten Idee des P-Code wieder anfreunden.

## Portierbarkeit

Eine bessere Idee als der P-Code repräsentieren die Konzepte von Programmiersprachen wie C oder Modula. Die Idee hinter beiden Sprachen ist die, daß ein Programm systemunabhängig codiert werden soll, also so, daß der Aufwand, um es auf einem anderen Computer zum Laufen zu bringen im wesentlichen darin besteht, das Programm auf der Zielmaschine einmal zu compilieren.

Man kann sagen, daß im wesentlichen für C-Programme gilt, daß unter Unix eine Menge davon existieren, die auf den verschiedensten Unix- Maschinen durch einfaches Compilieren benutzbar werden. Dies ist jedoch weder dem normalen Anwender zuzumuten, noch wird man in allen Fällen der Hersteller den Quellcode herausgeben können. Außerdem ist diese Methode nicht unabhängig vom Betriebssystem durchführbar.

Spätestens wenn man eine nette Benutzerschnittstelle einbauen will, wird man auf Funktionen des jeweiligen Betriebssystems zurückgreifen und schon wenn man ein Fenster für den Benutzer öffnen möchte, wird man feststellen, daß so ziemlich jedes Betriebssystem da was anderes macht.

## Unabhängige Bibliotheken

Eine Erweiterung der vorangegangenen Idee ist nun die, daß man Systembibliotheken bastelt, die das Benutzer-Interface steuern und dabei die jeweiligen Eigenheiten des Betriebssystems berücksichtigen. Das bedeutet, daß man sich überlegt welche Aktionen zum öffnen eines Fensters nötig sind und dafür einen Systemaufruf in einer Bibliothek festlegt.

Die Bibliothek enthält nun für allen Funktionen, die zur Steuerung der Benutzerschnittstelle und generell zur Kommunikation mit dem Betriebssystem benötigt werden, entsprechenden Code und wird auf jeder in Frage kommenden Maschine für das jeweilige Betriebssystem angepaßt.

Das Ergebnis sieht so aus, daß ein Programm so geschrieben werden kann, daß es auf jeder Maschine, auf der die Systembibliothek vorhanden ist, ohne Veränderungen compiliert werden kann und dann immer wieder dasselbe Programm dabei herauskommt, nur daß es auf einem anderen Computer mit einem anderen Betriebssystem läuft.

Im Grunde eine geniale Idee, nur leider haben die einzelnen Systeme verschiedene Eigenschaften, die sich nicht unter einen Hut bringen lassen. Deswegen muß man zwangsweise Kompromisse eingehen, die dazu führen, daß man Spezialitäten eines Betriebssystems möglicherweise nicht nutzen kann.

## Die virtuelle Maschine

Alle nun geschilderten Sachverhalte laufen auf eines heraus. Am besten wäre es, wenn es nur ein Betriebssystem und vor allem auch nur auf einem Prozessor gäbe, denn dann könnte man alle Programme auf einem Computer einsetzen. Dazu wird es aber nicht so schnell kommen, denn neue Prozessoren eröffnen neue Möglichkeiten und angestaubte Konzepte verhindern echte Innovation.

Wie wäre es also, wenn man Programme für eine virtuelle Maschine, also für einen Computer der nur als Gedankenmodell existiert, schreibt? Das ist bisher schon daran gescheitert, daß es sehr schwerfällt einen solchen Computer zu entwerfen. In Gedanken ist eben alles erlaubt und ob es eine realistische Basis hat, muß sich erst noch zeigen.

Ferner gibt es ein ganz anderes handfestes Problem: Die Software! Wo ist die Textverarbeitung in P-Code oder Java? Gibt es nicht neue Betriebssysteme, die gerne eine stattliche Auswahl an Software böten? Wo ist die breite Palette von Software, die auf zig Maschinen läuft? Warum hat sich GEM auf PCs nie durchgesetzt?

Wer ist schon bereit Programme für eine nicht existierende Maschine zu schreiben? Eben, keiner! Daher kann eine virtuelle Maschine nur durch Zufall entstehen und zwar genau dann, wenn eine bisher existente Maschine, für die es Hardware und Software in rauhen Mengen gibt, vom Markt verschwindet.

Innovation durch Zufall? Das verwundert nicht so sehr, wenn man sich die Geschichte der Computer mal vor Augen führt. Die meisten scheinbar genialen Erfindungen beruhten auf Zufällen und nicht etwa auf genialer Planung.

Wie stießen Jobs und Wozniak aufeinander, so daß sie Apple gründen und den ersten Personal Computer bauen konnten? Durch Zufall! Wieso wurde DOS das Betriebssystem für IBM-PCs? Durch Zufall! Es gibt ein ganzes Buch darüber mit dem Titel "Unternehmen Zufall" (nebenbei bemerkt eine empfehlenswerte Lektüre).

Kommen wir zu dem Zufall, der uns im Zusammenhang mit der virtuellen Maschine interessiert. Atari fing 1985 damit an, die Computer der ST- Serie mit großem Erfolg in Deutschland zu verkaufen. Bis 1990 waren etwa eine Million davon an den Mann gebracht. Daher gab es auch eine rege Tätigkeit bei den Softwareentwicklern, die dazu führte, daß es für nahezu alle Anwendungen eine reichhaltige Auswahl an Software entstand. Vom C-Compiler bis zur Textverarbeitung alles da.

Dann konnte Atari der Entwicklung des Marktes nicht mehr folgen. Der Erfolg, der sich auf die Umsetzung des Mottos "Power without the price" stützte, begann zu schwinden. Schließlich stellte man 1994 die Produktion der Computer ein. Nachbauten kamen auf den Markt, die jedoch mit demselben Problem zu kämpfen haben, nämlich dem Preis, der einfach verglichen mit den Massenprodukten anderer Hersteller zu hoch ist.

Da das Arsenal an Software aber noch genauso da ist wie eine große Masse von Anwendern, denen ihre Software aus guten Gründen ans Herz gewachsen ist, folgte ein logischer Schritt: Die virtuelle Maschine wurde geboren.

Mit MagiC-Mac und MagiC-PC läuft MagiC auf Apple-Macintosh-Computern bzw. auf PCs mit Windows 95 (oder Windows NT für Intel-Maschinen). Das hat einige Vorteile:

- Sämtliche Anwendungsprogramme können das Betriebssystem, nämlich MagiC, und alle seine Eigenschaften voll nutzen.
- Das "neue" Betriebssystem bietet hunderte von Programmen sowohl aus dem kommerziellen Bereich, wie auch PD- oder Shareware.
- Parallel zur virtuellen Maschine unter MagiC läuft immer noch das Wirtsbetriebssystem, also Mac OS oder Windows 95.
- Programme unter MagiC laufen parallel zu Anwendungen, die auf dem Wirtssystem gestartet wurden. Auf dem Macintosh kommt es dabei zu der etwas grotesken Situation, daß die Programme unter MagiC-Mac präemptiv multitasken, während MagiC-Mac insgesamt ein kooperativer Task zu den gestarteten Mac-Programmen ist (daher gibt es auch eine Option, um den Mac-Programmen gänzlich die Rechenzeit zu stehlen).
- Datenaustausch zwischen MagiC und den Programmen des Wirtssystem ist möglich.
- MagiC und das Wirtssystem teilen sich die Platte.
- MagiC kann die gesamte Peripherie des Wirtssystems nutzen incl. Netzwerklaufwerken.
- Der Benutzer muß sich nicht auf eine bestimmte Maschine festlegen. Er kann dieselben Programme auf einem Macintosh unter MagiC-Mac oder auf einem PC unter Windows 95 mit MagiC-PC nutzen. Ob er nun zwischen Büro-PC und Heim-Mac pendelt oder ob er von dem einen auf den anderen Computer umsteigt ist dabei völlig egal.
- MagiC ist eine deutsche Entwicklung und auch die meisten Anwendungsprogramme kommen aus Deutschland. Das bedeutet für den Benutzer, daß die Programme von Leute geschrieben wurden, die wissen wozu man so merkwürdige Zeichen wie das "ß" benötigt. Außerdem sind die Firmen ansprechbar und reagieren sogar auf Vorschläge.

  Man fragt sich natürlich wo der Haken ist. Natürlich gilt auch für MagiC das, was eingangs erläutert wurde. Die Systeme haben unterschiedliche Eigenschaften. Dafür gibt es aber jeweils einen Emulationskern, der dafür sorgt, daß beispielsweise das völlig andere Dateisystem des Mac für MagiC genauso aussieht wie das unter Windows 95 oder das eines Atari.

  Sicher wird man sich fragen, wie sich das alles mit der Geschwindigkeit des Computers verträgt. MagiC ist ein hochoptimiertes System und die Programme, die darauf laufen, lassen sich auch ohne weiteres auf einem Rechner mit 8 MHz 68000er-Prozessor verwenden, nämlich einem alten Atari. Die Geschwindigkeit einens solchen Rechners nachzuahmen ist mit heutigen Prozessoren sehr leicht. Daher ist MagiC-Mac zum Beispiel bis zu zehnmal schneller als auf einer solchen Maschine.

  Die Performance aller Anwendungsprogramme kann sich sowohl unter MagiC-Mac als auch unter MagiC-PC sehen lassen. Während die meisten Betriebssysteme immer fetter, träger und behäbiger werden, ohne wesentlich mehr zu leisten, ist MagiC nach wie vor ein gertenschlankes System, das gerne das Wirtssystem für sich schuften läßt.

  Ferner ist es so, daß MagiC-Programme in der Regel keine speicherfressenden Monster sind. Welche Windows-Textverarbeitung kann schon für sich in Anspruch nehmen, mit eineinhalb Megabyte RAM auszukommen, welche Windows-Datenbank könnte das? In 8 MB MagiC- Systemspeicher passen zur gleichen Zeit locker die Textverarbeitung Signum!4, das Tabellenkalkulationsprogramm Texel, die relationale Datenbank Phoenix, das Grafikprogramm Papillon und das eine oder andere Utility, wie zum Beispiel PLZ-Postfix zum Nachschlagen der Postleitzahlen. Das ganze Office also sozusagen auf einmal.

  Das bedeutet aber auch, daß man nicht im Zweimonatsrhytmus einen neuen Computer braucht, weil die neue Version des Betriebssystems fällig ist oder ein neues Anwendungsprogramm den Rechner fast zum Stillstand bringt.

  ## Was kann MagiC?

  MagiC ist, wie derweil schon mehrfach gesagt, ein Betriebssystem. Somit erfüllt es alle Aufgaben, die einem Betriebssystem zukommen. Es verwaltet die Daten auf der Festplatte, sorgt für die Kommunikation mit der Peripherie, kümmert sich um die Bildschirmausgaben und so weiter und so fort. Wir wollen mal im folgenden auf ein paar Highlights näher eingehen. Alle Funktionen eines Betriebssystems zu beschreiben ist in einem solchen Rahmen wohl schlichtweg unmöglich.

  Alle Programme laufen auf voller 32-Bit-Breite. Es gibt keine unterschiedlichen Zugriffsmodes und keine sonderbare Speichersegmentierung in 640 KB und mehr oder ähnliches.

  MagiC hat einen präemptiven Multitasking-Kern. Wozu das gut ist? Nun, das erlaubt dem Benutzer mehrere Programme gleichzeitig zu starten und zu benutzen. Im Gegensatz zum kooperativen Multitasking ist es beim präemptiven Multitasking so, daß das Betriebssystem den Programmen die Rechenzeit zuweist und nicht umgekehrt die Programme sich einfach beim System bedienen können. Das hat den Vorteil, daß die Verteilung der Resourcen sehr viel harmonischer ist und nicht eine Anwendung eine andere völlig blockieren kann.

  MagiC beherrscht Threads. Das heißt, daß nicht nur einzelne Programme parallel zueinander laufen dürfen, sondern daß die Programme wiederum einzelne Funktionen parallel zueinander starten können. Eine Datenbank kann also zum Beispiel in einem Thread Daten sortieren, während sie parallel dazu in einem anderen Thread Etiketten druckt, der Benutzer aber dennoch weiterhin manuell nach Adressen suchen darf.

  Damit TOS-Programme, die keine grafische Benutzeroberfläche bieten (z.B. Komprimierer etc.), sich mit den Multitasking-Eigenschaften von MagiC vertragen, werden die Ausgaben solcher Programme in ein VT52- Terminalfenster umgelenkt. Die TOS-Programme laufen hier dann schön ordentlich in einem Fenster und stören den weiteren Betrieb von MagiC nicht.

  Programmen, die unnötigerweise grundsätzlich den gesamten Systemspeicher anfordern, kann man mit dem Tool Limitmem beikommen. Damit läßt sich festlegen wieviel Speicher ein solches Programm maximal bekommen soll.

  Für mehr Ordnung auf dem Bildschirm sorgt Iconify. Damit lassen sich Fenster einer Anwendung schnell mal wegklappen und verschwinden am Bildschirmrand in einem Miniwindow, das sich durch Anklicken wieder auf seine alte Größe bringen läßt.

  Es lassen sich aber auch komplette Anwendungen aus- und wieder einblenden. Sie verschwinden dann mit allen ihren Fenstern, bzw. kommen wieder zum Vorschein.

  Fenster, Dialoge und Knöpfe können wahlweise in schickem 3D-Design dargestellt werden. Damit macht das Arbeiten gleich noch mehr Spaß, denn wer arbeitet nicht gerne in einer hübschen Umgebung?

  Über einen System-Fontselektor kann man in Programmen bequem und übersichtlich den Zeichensatz wählen, der verwendet werden soll.

  Das System erlaubt Drag & Drop. Das heißt, daß man Objekte mit der Maus von einem Programm in ein anderes ziehen kann, also zum Beispiel den Text einer Mail auf das Fenster eines ASCII-Editors. Natürlich kann man ebenso über das Systemklemmbrett Informationen von einem Programm in ein anderes kopieren.

  Mit symbolischen Links, lassen sich zum Beispiel Icons auf dem Desktop ablegen, die eine bestimmte Datei oder ein Programm repräsentieren.

  MagiC verfügt über ein modulares Filesystem. Mit dem Installieren eines weiteren Moduls, kann auch ein anderes Filesystem verwendet werden. Beispielsweise kann man auf einer Plattenpartition ein FAT-System verwenden, so wie auf dem alten TOS oder MS-DOS verwendet wurde, bei dem die Dateinamen 8+3 Zeichen umfassen dürfen. Parallel dazu kann man aber einer anderen Partition ein Windows-95-Filesystem verpassen, so daß man dort dieselbe Dateiverwaltung hat wie unter Windows 95.

  Nebenbei bemerkt regeln MagiC-Mac und MagiC-PC sowas natürlich automatisch und MagiC-Mac kann dann eben auch auf das Mac-Filesystem zugreifen.

  ## Das Desktop

  Zu einem kompletten Betriebssystem gehört natürlich auch ein Desktop. Deswegen wird zu MagiC das Desktop MagiC-Desk mitgeliefert. MagiC-Desk ist so aufgebaut, daß möglichst wenig Speicher für das Desktop-Programm verwendet wird, da dieses normalerweise ständig im Speicher bleibt.

  Aktionen, die nur relativ selten benötigt werden, wie beispielsweise das Konfigurieren bestimmter Anwendungsprogramme, das Zuordnen von Tastenkürzeln, die Installation von Systemfonts und so weiter, überläßt MagiC-Desk kleinen Hilfsprogrammen, die jeweils bei Bedarf automatisch nachgeladen werden. Der Benutzer muß sich darum nicht kümmern, hat aber den Vorteil des geringen Speicherverbrauchs.

  Wir empfehlen den Gebrauch des Desktops Ease, der bei MagiC-Mac oder MagiC-PC beiliegt oder separat erworben werden kann. Letzten Endes ist die Wahl des Desktops aber natürlich Geschmackssache wie die Auswahl der Möbel zuhause. Für den einen tun es Kisten, der andere will die feudale Eichenschrankwand.

  ##

  ## MagiC

- 32-Bit-Betriebssystem
- Präemptives Multitasking
- Bis zu 126 verschiedene Prozesse gleichzeitig

  ## Systemanforderungen

- MagiC-Atari: Atari ST, TT oder Falcon mit mind. 4 MB RAM
- Für MagiC-Mac: Macintosh mit MacOS Version 7, 8 MB RAM (bei PowerMac 16 MB empfohlen).
- Für MagiC-PC: PC mit Windows 95 oder Windows NT (Intel Basis). Pentium empfohlen.

  ## Lieferumfang

- 1 Diskette
- Handbuch
- Diverse Utilities
- VT52-Terminal
- Desktop MagiC-Desk

  Infos über MagiC , MagiC-Mac , MagiC-PC , NVDI
  Zur ASH-Produktübersicht
  Zur ASH-FTP-Site
  Zur ASH-Homepage
  Copyright © 1996 - Application Systems Heidelberg