Interfejs użytkownika | |
| Producent | |
|---|---|
| Architektura |
Intel 8080, Intel 8085, Zilog Z80, Intel 8086, MC68000, Zilog Z8000 |
| Pierwsze wydanie |
1974 |
| Aktualna wersja |
3.1 (1983) |
| Jądro | |
| Środowisko pracy | |
| Licencja | |
| Wersja Live |
|
| Strona internetowa | |
CP/M (ang. Control Program/Monitor lub Control Program/Microcomputer) – pierwszy przenośny system operacyjny dla mikrokomputerów stworzony w 1974 roku przez Gary'ego Kildalla, a następnie rozwijany przez założoną przez niego firmę Digital Research. Do czasu pojawienia się IBM PC z systemem PC-DOS w 1981 roku był to najpopularniejszy system operacyjny dla mikrokomputerów i komputerów osobistych.
Rozwinięciem CP/M były bardziej zaawansowane, wielozadaniowe i wieloużytkownikowe systemy Concurrent CP/M oraz M/PM.

Jedną z najważniejszych cech CP/M była przenośność zapewniona przez rozdzielenie systemu operacyjnego na BIOS, zależny od konstrukcji sprzętowej danego komputera, oraz pozostałą część systemu (wraz z aplikacjami), która była taka sama i przenośnia pomiędzy komputerami, opartymi na tym samym lub kompatybilnym typie procesora (dla pierwszych wersji systemu był to Intel 8080 oraz zgodny z nim Zilog Z80). Koncepcję tę później zastosowano również w architekturze IBM PC oraz systemie QDOS, na bazie którego powstały PC-DOS oraz MS-DOS. Znaczenie powstania CP/M oraz BIOS dla rozwoju i upowszechnienia mikrokomputerów organizacja IEEE upamiętniła tablicą pod dawną siedzibą Digital Research.
System CP/M dopuszczał działanie tylko jednego procesu (wykonywanego programu). Ta cecha – normalna we wczesnych latach osiemdziesiątych XX w. – upraszczała konstrukcję systemu, przede wszystkim zarządzanie pamięcią, która poza obszarem zarezerwowanym dla systemu, była dostępna tylko dla jednego procesu.
System CP/M miał krótki zestaw poleceń wewnętrznych, interpreter poleceń był częścią jądra systemu i ładowany był do początkowego obszaru pamięci. Interpreter poleceń pozwalał na wyświetlenie w różnej postaci zawartości katalogu, zmianę katalogu, zmianę aktywnego użytkownika (polecenie user z parametrem w zakresie 0–15) i uruchomienie polecenia zewnętrznego lub programu. Struktura plików wykonywalnych była pierwowzorem formatu .COM stosowanego w PC-DOS.
Dla systemu CP/M dostępne były aplikacje takie jak: WordStar (edytor tekstu, pierwowzór późniejszego WordPerfect dla systemu DOS; obsługiwany kombinacjami klawiszy Ctrl+klawisz), arkusz kalkulacyjny Multiplan oraz oprogramowanie specjalistyczne. Pozwalał on na korzystanie z języków programowania BASIC, Pascal, C, Fortran, COBOL, a także narzędzi wspomagających programowanie w asemblerze.
System CP/M napisany został pierwotnie dla procesora Intel 8080, jednak używany był przede wszystkim na bardzo popularnym wówczas procesorze Zilog Z80, który był z nim zgodny programowo. Wersja tego systemu operacyjnego powstała również dla procesorów Intel x86, ale nie zdobyła popularności, gdyż system MS-DOS miał już ugruntowaną pozycję wśród użytkowników komputerów osobistych. W popularyzacji nie pomogło nawet wydanie wielozadaniowej wersji systemu pod nazwą MP/M.
Wprowadzone na rynek wersje systemu CP/M:
Do tego systemu firma Digital Research opracowała sieć CP/Net która umożliwiała współdzielenie zasobów dyskowych i drukarek poprzez serwer sieciowy pracujący pod kontrolą MP/M. Jako stacje klienckie używane były komputery pracujące pod CP/M oraz bezdyskowe terminale z systemem CP/NOS, który był odmianą CP/M 2.2 obsługującym wyłącznie dyski sieciowe.
Rozwinięciem systemu CP/M był Digital Research DOS (znany jako DR-DOS), przeznaczony dla komputerów klasy PC oraz GEMDOS, część systemu operacyjnego m.in. komputerów Atari ST odpowiedzialna za zarządzanie plikami.
Systemy CP/M dla x86 przegrały z MS-DOS z powodu ceny – CP/M-86 kosztował $240 wobec $40 za MS-DOS.
Ostatnia wersja systemu wspierająca maksymalnie 64kB pamięci RAM (stosowana w komputerach z taką właśnie ilością pamięci).
CP/M Plus został wprowadzony do sprzedaży przez Digital Research w roku 1982.
Później firma Locomotive Software Limited przygotowała natywne wersje tego systemu (CP/M Plus) dla komputerów Amstrad Schneider 6128 i ZX Spectrum +3.
W porównianiu do poprzednika (wersji 2.2) system ten został znacznie ulepszony, m.in. poprawiono obsługę dysków (była 4-10 razy szybsza). System ten pozwalał na użycie maksymalnie 1 MB pamięci RAM (16 bloków po 64 kB). Był zwykle uruchamiany na komputerach z min. 128 kB RAM.
Na świecie powstało wiele komputerów umożliwiających pracę w systemie CP/M. Należały do nich m.in. liczne komputery pracujące w standardzie MSX, ale także komputery dedykowane do pracy z CP/M takie jak Kaypro II czy Osbourne 1. W Polsce CP/M był stosowany głównie na komputerach z procesorem Z-80, do których należały:
Istniały również produkowane w Polsce komputery umożliwiające korzystanie z CP/M. W komputerach Elwro 800 Junior stosowany był system CP/J, który był wersją CP/M 2.2 dostosowaną do pracy w sieci. CP/M 2.2 był też jednym z systemów dostępnych dla komputera ComPAN-8.
Praca w systemie CP/M na komputerach, na których uruchomienie CP/M bezpośrednio nie było możliwe ze względu na architekturę, stawała się możliwa dzięki kartom rozszerzającym (czasem w formie kartridży) lub urządzeniom peryferyjnym, na którym system CP/M mógł zostać uruchomiony. Do komputerów takich należały Apple II, Commodore 64, Atari XL/XE czy ZX Spectrum.
Na ZX Spectrum (i jego dostępnych w Polsce klonach) CP/M w wersji 2.2 był dostępny dzięki wykorzystaniu stacji dysków Timex FDD 3000. System operacyjny CP/M wymagał do działania dostępności pamięci RAM na początku przestrzeni adresowej, podczas gdy w ZX Spectrum pierwsze 16 kB pamięci zajmowała pamięć ROM. Stacja FDD3000 była wyposażona w procesor Z80A 4 MHz i 64 kB pamięci RAM, tak więc była też funkcjonalnie komputerem (bez monitora i klawiatury). System CP/M był wczytywany do pamięci stacji dysków i tam uruchamiany. Na ZX Spectrum uruchamiany był z kolei program terminala umożliwiający korzystanie z systemu CP/M działającego w stacji dysków.
Uruchomienie CP/M nie było możliwe na uboższej wersji stacji FDD3, która miała jedynie 16 kB pamięci RAM (co wystarczało do uruchomienia systemu TOS, z wyłączeniem wersji 4).
Na podobnej zasadzie użycie CP/M 2.2 jest możliwe na ośmiobitowym Atari. Potrzebna jest do tego stacja dysków Indus GT, LDW Super 2000 lub CA-2001 (te dwie ostatnie były sprzedawane przez Pewex i bardzo popularne w Polsce). Wszystkie te stacje zawierają procesor Z80 taktowany zegarem 4 MHz. Każda z nich ma wprawdzie tylko 2 kB pamięci RAM, ale do uruchomienia CP/M wystarczy rozbudowa tej pamięci do 64 kB, dość prosta, gdyż stacja jest specjalnie do tego zaprojektowana. Podobnie jak w przypadku ZX Spectrum, jednak z innych nieco względów (procesor MOS 6502 montowany w Atari jest niezgodny z Z80), komputer pełni wtedy funkcję inteligentnego terminala dla programów uruchamianych wewnątrz stacji dysków.