CP/M
(
C
ontrol
P
rogram for
M
icrocomputers
) 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 pa
MITS Altair
var den første "industristandard", vidt udbredt op igennem 1970'erne og frem til midten af af 1980'erne.
CP/M's
kommandolinjegrænseflade
baseret pa
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
Nar en
PIP
kommando blev givet til kommandofortolkeren CCP, blev den oversat til en serie instruktioner til BDOS. Instruktionerne ville lyde noget i retning af:
- Find filen
gammel.txt
- Aben filen
- Opret en ny fil ved navn
ny.txt
- osv...
Instruktionerne fra kommandofortolkeren BDOS blev sa sendt videre til BIOS som en serie af endnu simplere instruktioner som:
- Flyt diskhovedet til sektor 999
- Læs data fra sektor ...
- osv...
BIOS ville sa 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, nar systemet skulle porteres til nye maskiner og det var en af hovedarsagerne til CP/M's store udbredelse.
I dag er denne form for abstraktion almindelig i de fleste operativsystemer, men i CP/M's tidlige ar var operativsystem ofte tæt knyttet til en bestem platform og flerlagsdesign blev betragtet som overflødigt.
CP/M blev oprindeligt distribueret pa 8 tommer
floppy disketter
, som kunne læses pa
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, nar blot et ekstra Z80-kort blev installeret. Det mest solgte CP/M system blev formodenligt
Commodore 128
, selvom kun fa 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.
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. Pa dette tidspunkt blev den originale
8-bit
CP/M omdøbt til
CP/M-80
for at undga 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.
Store dele af det basale koncept bag de tidlige versioner af MS-DOS var kopieret fra CP/M. Interne funktioner som filhandteringens 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 brugeomrader pa 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 efterhanden 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
.