Zurück


Bernd Leitenberger

CP/M, der erste Betriebssystemstandard für PC's


PC's vor CP/M

Jeder Rechner benötigt ein Betriebssystem - ein Programm, welches die Hardware ansteuert und zumindest einige Kommandos entgegennimmt. Ohne Betriebsystem ist selbst ein 2 GHZ - Rechner absolut wertlos. Sie können das testen, wenn sie Ihr Betriebssystem von der Platte putzen... 

Als 1975 der "Altair 8800" erschien, gab es für diesen Rechner kein Betriebssystem. Der Rechner war eigentlich ein Elektronikbausatz, in dem der Anwender mit Kippschaltern binären Code für den Prozessor eingeben konnte. Bald jedoch gab es Zusatzgeräte für diesen Rechner, und diese mußten angesteuert werden. Mehr noch, viele andere Firmen wie "IMSAI", "Prozessor Technologies" oder "Cromenco", bauten Rechner auf der Basis des Intel "8080" - Prozessors. 

Wollte jemand Zubehör für diese Rechner bauen, so mußte er die Routinen mitliefern, mit denen man die Peripherie einbinden konnte. Dies war absolut unbefriedigend. Wollte man ein Diskettenlaufwerk für mehrere Rechner anbieten, so hätte man die Routinen für jeden Typ einzeln entwerfen müssen. Noch schlimmer: Wer Programme schrieb, konnte diese, mangels einheitlicher Ansteuerung von Bildschirm oder Massespeicher, nicht auf andere Rechner portieren. 

Gary Kildall

1972 erschien der Intel "8008", Intels erster 8 Bit - Prozessor. Gary Kildall kannte durch die Arbeit an den IBM - Großrechnern die Programmiersprache "PL/1". Heute weitgehend vergessen, war "PL/1" Anfang der 70er Jahre, zumindest in der Großrechnerwelt, weit verbreitet. Kildall wollte eine Version für Mikrocomputer entwickeln, und schrieb in "FORTRAN 66" einen "PL/1" - Compiler für den "8008", später auch für den Nachfolger "8080". Er nannet die Sprache "PL/M". 

Nun gab es bei der Entwicklung einer jeder Programmiersprache ein Problem: Sie mußte irgendwann Code für einen Computer kodieren, der den Bildschirm oder die Diskette ansteuerte, Daten von der Tastatur einlas - und so weiter. Es wäre kein Problem gewesen, dies für einen Rechner zu tun, doch dann liefe der Compiler eben nur auf Rechner A, nicht aber auf Rechner B, der den gleichen Prozessor hatte, aber Bildschirm und Tastatur anders ansteuerte. Gary Kildall wollte natürlich seine Programmiersprache weit verbreiten, und entwickelte 1976 ein Konzept, das noch heute Anwendung findet und dem auch "MS-DOS" zugrunde liegt. 

Basis für die Aufrufe des Compilers waren die Routinen eines Codeteils, den er BDOS nannte: Basic Disc Operation System. Es war eine Schnittstelle, die für Anwenderprogramme komfortable Aufrufe darstellte, und völlig abstrakt von der Hardware arbeitete. Etwa 30 Aufrufe zum Lesen/Schreiben auf Diskette, Bildschirm, Tastatur, Drucker und serieller Schnittstelle, gab es. Diese wurden in hardwarenahe Aufrufe des BIOS umgewandelt. BIOS steht für Basic Input Output System. Dieses abstrahierte weiter, und der Kern des BIOS mußte vom Hersteller an seine Hardware angepaßt werden. Dazu kam noch der CCP: Console Command Prozessor. Er bildete die Schnittstelle zum Benutzer, nahm Tastatureingaben entgegen und führte Programme aus. Er enthielt zudem fünf einfache Kommandos. 

1976 bot Kildall seine erste Version von "CP/M", zusammen mit dem "PL/M" - Compiler und einem "MDS" - Entwicklungssystem für den "8080", Intel für 20.000 $ zum Kauf an. (Er hatte beides auf einer PDP-11 geschrieben, welche einen "8080" emulierte). Intel hatte damals schon ein Betriebssystem namens "ISIS" entwickelt, welches deutlich mehr leistete als "CP/M", aber zwei Mängel hatte: erstens setzte es ein "8080" - System mit vollem Speicherausbau voraus, und zweitens war es nicht, wie "CP/M", leicht an jede Hardware anzupassen. Zum Ersten ist zu sagen, daß 1976 der größte erhältliche RAM - Chip ein 4 KB - RAM war. Man brauchte davon 128 Stück, um den Vollausbau eines 64 KB - Rechners zu erreichen. Die meisten Rechner hatten aber erheblich weniger Speicher, weil sie sonst nicht bezahlbar gewesen wären. Das Zweite war, daß "CP/M" für die vielfältigen neuen Mikrocomputer mit unterschiedlicher Peripherie viel geeigneter war. Doch Intel glaubte nicht daran, daß es dafür einen Markt geben würde. Sie sahen in dem "8080" - Prozessor eine Konkurrenz für größere Systeme IBM's, und taten die neuen Mikrocomputer als Spielzeug ab. 

Gary Kildall's gute Beziehungen zu Intel führten aber dazu, daß man ihm für "PL/M" alleine die 20.000 $ und das MDS - System gab.
Kildall machte sich selbstständig und gründete die Firma "Intergalactic Digital Research Inc..", später wurde der Firmenname abgekürzt auf "Digital Research Inc.". Damit konnte er daran gehen, "CP/M" weiterzuentwickeln. Die ersten Lizenzen verkaufte er 1976. Sehr bald erkannten nicht nur Hardwarehersteller die Vorteile von "CP/M". Programmierer konnten Anwendungen für "CP/M" schreiben, die nur auf BDOS - Aufrufen basierten. Sie liefen dann auf jedem "CP/M" - Rechner, egal wie dieser konfiguriert war. "CP/M" wurde zum Rechner - Standard, der verschiedenste Preisklassen und Größen verband. Das ist, als würde heute eine Software auf einem PDA, einem PC oder einem Linux - Cluster laufen, ohne neu übersetzt werden zu müssen. 

Die CP/M - Versionen

Besonderes Kennzeichen von "CP/M" war die Sparsamkeit im Platz- und Resourcenverbrauch. "CP/M" selbst, belegt nur ca. 6-8 KB Speicher. Der Kommandoprozessor belegte weitere 2 KB, doch konnte er von Benutzerprogrammen überschrieben werden. Es war möglich auf einem Rechner mit nur 16 KB Hauptspeicher "CP/M" zu fahren. Beim Vollausbau auf 64 KB waren typischerweise 54-56 KB frei verfügbar. Die Dienstprogramme für "CP/M" schrieb Gary Kildall in "PL/M". Sie ergänzten "CP/M" und finden sich in ähnlicher Form noch heute unter MS-DOS. 

1980 erschien die populärste Version von "CP/M": "CP/M 2.2". Im selben Jahr lief "CP/M" in 600.000 Kopien auf 300 unterschiedlichen Rechnern. Kildall entwickelte für die neu erschienenen 16 Bit - Prozessoren "CP/M 86"(für den Intel "8086") und "CP/M 68K" (für den Motorola "MC 68000"). Die letzte "CP/M" - Version für 8 Bit - Rechner, "CP/M 3.0" erlaubte auch Bank - Switching, so daß für Anwendungsprogramme bis zu 62 KB des 64 KB - Adreßraumes zur Verfügung standen. "CP/M" war so erfolgreich, daß selbst andere Computerhersteller Zusatzkarten einsetzten, um "CP/M" nutzen zu können. Sogar für Verkaufsschlager wie den "Apple II" und "Commodore C64" gab es "Z80" - Karten. 

Der Sourcecode von "CP/M", sowie anderer Digital Research - Produkte, ist heute öffentlich einsehbar unter: http://www.cpm.z80.de/

Kontakt: www.bernd-leitenberger.de


Zurück