CP/M

Материал из SpeccyWiki
Перейти к: навигация, поиск

CP/M — операционная система. Название расшифровывается как Control Program Monitor, позднее — Control Programs for Microcomputers. Написана в 1973 году программистом Гэри Килдаллом (Gary Kildall) на языке PL/M (Programming Language/Microprocessor).

CP/M — это первая «универсальная» операционная система для микрокомпьютеров, в которой были предусмотрены операции с дисковыми магнитными накопителями. Поначалу эта операционная система применялась только в компьютерах, которые использовали микропроцессоры Intel 8080. Позднее она была адаптирована под процессор Zilog Z80. Позже появились версии CP/M для новых более совершенных микропроцессоров Motorola 68000 (CP/M-68k), а также Intel 8086/88 (CP/M-86).

Версии системы CP/M существовали и для ряда клонов ZX Spectrum, в частности, для Profi и ATM Turbo.

Архитектура ОС

Основная часть CP/M хранится на диске. Операционная система позволяет пользоваться экраном, принтером и дисками. Небольшая часть операционной системы (загрузчик) должна содержаться в ПЗУ (или на диске или дискете) и осуществляет загрузку остальной части диска.

Загружаемая в память часть ОС состоит из трёх частей:

  • базовая система ввода/вывода (BIOS)
  • базовая дисковая операционная система (BDOS)
  • процессор командной строки (CCP)

Первая часть представляет собой набор низкоуровневых процедур, реализующих аппаратно-зависимый API системы. Фактически свой BIOS писался под каждое устройство, на которое портировалась CP/M.

BDOS является аппаратно-независимым кодом, который легко переносился между компьютерами построенными на совместимых процессорах (i8080, Z80). Эта часть системы обеспечивала API для использования программами, работавшими в рамках CP/M, а также интерактивное взаимодействие с пользователем. Обычно общий объём системы для версий 2.2 и ниже составлял десятки килобайт кода.

CCP представлял из себя интерпретатор командной строки и осуществлял запуск пользовательских приложений. При работе приложение могло использовать область памяти CCP, CP/M перезапускала CCP по выходу из приложения.