CP/M (Control Program for Microcomputers) var et operativsystem til Intel 8080/85 og Zilog Z80 baserede microcomputere. Det blev udviklet af Digital Research, Inc., som var grundlagt af Gary Kildall. Kombinationen af CP/M og S-100 bus computere som på MITS Altair var den første "industristandard", vidt udbredt op igennem 1970'erne og frem til midten af af 1980'erne.

CP/M
CS-DISK af Circuit Design
Udvikler Gary Kildall
Digital Research, Inc.
Seneste udgave 3.1  (1982)
Platform Intel 8080 / 8985 / 8086
Motorola 68000
Zilog Z80
Brugergrænseflade Kommandolinje-interface
Kernetype Monolithic kernel
Kildekodetilgængelighed Open source
Licens Originalt ophavsret / Nu BSD-lignende
Websted Hjemmeside

Beskrivelse: CCP, BDOS, BIOS redigér

CP/M's kommandolinjegrænseflade baseret på CCP kommandofortolkeren, var kopieret fra Digital Equipment operativsystemer som RSTS/E til PDP-11. Kommandoerne bestod generelt af et kommandonavn efterfulgt af en liste af parametre adskilt med blanktegn eller specialtegn. Kommandoerne kunne være noget kryptiske. Eksempelvis hed kommandoen til at kopiere filer PIP (Peripheral-Interchange-Program).

En nyhed i CP/M var brugen af et abstraktionslag, der adskilte operativsystemet i to hoveddele. CCP kommandofortolkeren, som oversatte brugerens kommandoer til en serie af enkle højniveauinstruktioner. Disse instruktioner blev overført til BDOS (Basic Disk Operating System), som styrede selve funktionaliteten i styresystemet. Applikationer kommunikerede tilsvarende direkte med BDOS. BDOS oversatte højniveauinstruktionerne til en ny serie af lavniveauinstruktioner, der blev sendt til BIOS (Basic I/O System), som indeholdt alt den hardware-specifikke kode til at udføre instruktionerne.

Til at illustrere den interne kommunikation kan man bruge kommandoen:

PIP ny.txt=gammel.txt

Når en PIP kommando blev givet til kommandofortolkeren CCP, blev den oversat til en serie instruktioner til BDOS. Instruktionerne ville lyde noget i retning af:

  1. Find filen gammel.txt
  2. Åben filen
  3. Opret en ny fil ved navn ny.txt
  4. osv...

Instruktionerne fra kommandofortolkeren BDOS blev så sendt videre til BIOS som en serie af endnu simplere instruktioner som:

  1. Flyt diskhovedet til sektor 999
  2. Læs data fra sektor ...
  3. osv...

BIOS ville så udføre den faktiske styring af hardware, som at sende impulser til drevets motor.

Størstedelen af kompleksiteten i CP/M var isoleret i BDOS og kun i mindre grad CCP. Dette betød, at ved blot at portere en begrænset antal simple kommandoer i BIOS, kunne hele operativsystemet tilpasses en ny hardware platform. Dette reducerede udviklingstiden betragteligt, når systemet skulle porteres til nye maskiner og det var en af hovedårsagerne til CP/M's store udbredelse. I dag er denne form for abstraktion almindelig i de fleste operativsystemer, men i CP/M's tidlige år var operativsystem ofte tæt knyttet til én bestem platform og flerlagsdesign blev betragtet som overflødigt.

Historie redigér

Begyndelsen til CP/M's succes redigér

CP/M blev oprindeligt distribueret på 8 tommer floppy disketter, som kunne læses på Intel 8080 CPU'er og Zilog Z80. Computerindustrien flyttede videre til 5¼ tomme formatet og CP/M fulgte efter. Desværre var der endnu ikke nogen standard for diskformatet, hvilket gjorde udveksling af disketter imellem forskellige CP/M systemer umuligt i praksis. Programmer skrevet til CP/M var normalt fuldt portable imellem forskellige maskiner med samme type CPU. Dette gjorde CP/M meget populær og der blev skrevet en del flere programmer til CP/M end til tilsvarende operativsystemer.ware.

Mange forskellige fabrikater af maskiner kunne køre CP/M, som Altair, IMSAI 8080, Osborne 1, Amstrad og Kaypro bærbare. Selv Apple II og Commodore 64 kunne køre CP/M, når blot et ekstra Z80-kort blev installeret. Det mest solgte CP/M system blev formodenligt Commodore 128, selvom kun få udnyttede dens CP/M mulighed.

WordStar, et af de første tekstbehandlingssystemer, og dBASE, det første almindeligt udbredte databaseprogram til mindre computere, blev oprindeligt skrevet til CP/M.

16-bit verdenen redigér

Der blev senere udviklet versioner af CP/M til nogle 16-bit CPU'er. Det til trods for, at programmerne skulle recompileres til den nye CPU, eller, som det gjalt for de programmer, der var skrevet i assemblersprog, skrives om helt fra bunden. Et af de første 16-bit systemer var CP/M-86 til Intel 8086, som snart blev fulgt af CP/M-68k til Motorola 68000. CP/M-86 fik aldrig nogen stor udbredelse og CP/M-68k blev faktisk kun brugt i Atari ST computeren. På dette tidspunkt blev den originale 8-bit CP/M omdøbt til CP/M-80 for at undgå forveksling.

CP/M-86 havde potentialet til at blive standardoperativsystemet i den nye IBM PC, men et mindre juridisk problem fik IBM til at vælge Microsoft i stedet. Microsoft købte en CP/M klon ved navn QDOS brugte den til at udvikle PC-DOS/MS-DOS, som blev det "officielle" PC-styresystem.

MS-DOS tager førertrøjen redigér

Store dele af det basale koncept bag de tidlige versioner af MS-DOS var kopieret fra CP/M. Interne funktioner som filhåndteringens datastruktur var identisk og begge refererede til diskdrev ved hjælp af bogstavkoder A:, B:, C: etc.

Hovednyheden i MS-DOS var FAT filsystemet. Denne lighed var tilsigtet for at gøre det lettere at portere CP/M programmer som WordStar og dBASE. Alligevel blev senere CP/M faciliteter som separate brugeområder på samme disk aldrig porteret til MS-DOS (Dette blev først muligt under Windows med filsystemet NTFS).

MS-DOS's brugergrænseflade var dog en lille smule mere brugervenlig. Prøv at sammenligne CP/M's filkopiering PIP:

PIP <til-fil>=<fra-fil>

med den mere intuitive syntax i MS-DOS's COPY (i store træk kalkeret efter UNIX's cp):

COPY <fra-file> <til-fil>

CP/M begyndte langsomt at miste markedsandele efterhånden som mikrocomputermarkedet flyttede sig imod PC-platformen. Det genvandt aldrig sin popularitet. Senere versioner af CP/M-86 gjorde store fremskridt i form af hastighedsforbedringer og mere stabilitet. I en periode i 1980'erne var CP/M et stykke foran konkurrenten MS-DOS. For at afspejle det ændredes navnet fra CP/M-86 til DR-DOS.

Referencer redigér

Eksterne henvisninger/kilder redigér