CP/M

Kehitys

Käyttöjärjestelmässä on piirteitä Digitalin PDP-10:ssä käytetystä TOPS-10 -käyttöjärjestelmästä.
Vuonna 1981 käyttöjärjestelmää käytettiin yli 3 000:lla laitteistokonfiguraatiolla ja se tuotti Digital Researchille tuloja 6 miljoonaa yhdysvaltain dollaria.IBM otti yhteyttä Kildalliin, jonka CP/M oli tuohon aikanaan menestyneimpiä käyttöjärjestelmiä. CP/M myi yli 600 000 kappaletta. Neuvottelut CP/M:n lisensoimiseksi tulevaan IBM PC -tietokoneeseen kuitenkin kariutuivat ja IBM hankki käyttöjärjestelmän Microsoftilta.

Laitteistot

CP/M:stä oli versiot useille eri suoritinarkkitehtuureille. Intel 8080 -yhteensopivaa suoritinta, erityisesti Zilog Z80:aa käyttävissä mikrotietokoneissa se oli suosittu. CP/M tuki kaikkiaan 64 kB keskusmuistia. Suosittu alkuaikojen järjestelmä perustui 8080-suorittimeen, 4 kB muistiin ja yhteen 8 tuuman levykeasemaan. Myöhemmissä tietokoneissa oli tyypillisesti Zilog Z80, 64 kB muistia ja kaksi 360 kB, 5¼ tuuman levykeasemaa. Kalleimmissa malleissa toinen levykeasemista oli korvattu yleensä 10 MB kovalevyasemalla. Myös 3½-tuumaisia, kapasiteetiltaan isompia levykkeitä ("korppuja") oli käytössä.
CP/M oli käytössä jopa satojen eri valmistajien tietokoneissa. Suosituimpia olivat Altair, IMSAI 8080, Osbornen ja Kaypron kannettavat sekä MSX-kotitietokoneet. Jopa Apple II:een sai Z80-kortin, jolla pystyi ajamaan CP/M-ohjelmia.

Tiedostojärjestelmä

CP/M:n tiedostojärjestelmässä levykkeellä on vain yksi hakemisto. Hakemiston koko on kiinteä.
Hakemisto on taulukko 32 tavun tietueita. Tiedoston nimi koostuu 8+3 merkistä, kuten myöhemmässä MS-DOS-käyttöjärjestelmässäkin. Tiedoston nimen lisäksi hakemistotietue sisältää käyttäjäkoodin, 128-tavuisten levylohkojen määrän ja 16 tavua levylohkojen numeroita. Tilanvarausta varten puolestaan levy on jaettu 1 kB lohkoihin, ja tiedoston hakemistotietue sisältää tiedon siitä, mitkä lohkot kuuluvat tiedostoon.
Tiedoston kokoa tavuina ei tallenneta, joten tiedostoa käsittelevän ohjelman täytyy pitää huolta siitä, ettei se lue tiedoston lopun ohi. Käytännön nyrkkisäännöksi muodostui päättää tekstitiedostot ohjauskoodilla control-Z (ASCII: SUB tai 0x1A).
Tiedostojärjestelmä ei pidä yllä tietoa levykkeen vapaista lohkoista. Levynvaihdon yhteydessä käyttöjärjestelmä lukee koko hakemiston läpi ja muodostaa bittikartan, johon on merkitty tiedostoille varatut ja käytettävissä olevat alueet.
Koska yksi hakemistotietue voi osoittaa vain 16 lohkoa, 16  kB suuremmat tiedostot vaativat usean hakemistotietueen. Tähän käytetään hakemistotietueen extends-kenttää, joka kertoo, monesko tiedostolle varattu tietue on kyseessä.
Lisäksi CP/M:n hakemisto sisältää käyttäjäkentän, jonka avulla tiedostoja voi ryhmitellä. Käyttöjärjestelmä listaa ainoastaan ne tiedostot, joiden käyttäjä-kenttä on saman kuin nykyinen käyttäjänumero. Käyttäjää vaihdetaan komentotulkin komennolla USER x, jossa x on luku 0–15. Eräät valmistajat lisäsivät tähän salasanakyselyn, mutta peruskäyttöjärjestelmässä käyttäjänvaihtoon ei sisältynyt mitään tietoturvaa, vaan käyttäjää voi vaihtaa ilman salasanoja.

Ohjelmistot

Ohjelmat toimitettiin ensi alkuun 8 tuuman levykkeellä, jolle vakiintui kaikissa tietokoneissa toimiva formaatti. Myöhemmin siirryttiin käyttämään 5¼-tuumaisia levykkeitä, mutta yhteisen standardin puuttuessa yhden valmistajan koneessa formatoituja levykkeitä ei yleensä voinut lukea toisten valmistajien koneilla. Poikkeuksiakin oli, esimerkiksi Osborne 1 pystyi käsittelemään muita formaatteja levyasematunnuksen perusteella.
Suosittuja CP/M:n ohjelmia olivat tekstinkäsittelyohjelmat Magic Wand ja WordStar, dBASE-tietokanta, KAMAS, Turbo Pascal sekä taulukkolaskentaohjelmat Multiplan ja  SuperCalc. Ilmainen XMODEM mahdollisti modeemin käytön ja tiedostosiirrot.
Lisäksi CP/M sisältää perustyökalut konekieliseen ohjelmointiin (ASM, LOAD, DDT ja ED).

16-bittiset versiot

Digital Research kehitti 16-bittisille suorittimille omat versiot CP/M:stä: CP/M-86 Intel 8086:lle, CP/M-68k Motorola 68000:lle ja CP/M-8000 Zilog Z8000:lle.