CP/M (аббревиатура от Control Program/Monitor или от Control Program for Microcomputers) — операционная система, созданная Гэри Килдаллом в 1974 году для микрокомпьютеров на базе Intel 8080. Изначально ограничивалась однозадачностью и использованием 8080-совместимых процессоров, в более поздних версиях CP/M была добавлена многозадачность и поддержка 8086-совместимых процессоров.

С конца 1970-х до середины 1980-х годов CP/M была стандартом де-факто на рынке микрокомпьютеров. Из-за того, что CP/M была доминирующей операционной системой на рынке, она значительно сократила объём работы, необходимой для переноса программы на компьютер нового производителя. CP/M имела существенные недостатки для использования обычными пользователями и имела высокую стоимость по сравнению с MS-DOS и PC DOS, поэтому в итоге она была вытеснена последними в связи с выходом IBM PC в 1981 году.

История

Название Различные авторы расшифровывают аббревиатуру «CP/M» по-разному: одни считают, что аббревиатура расшифровывается как «Control Program/Monitor», а другие, в частности, сам Гэри Килдалл, — что она расшифровывается как «Control Program for Microcomputers». Издание Computerworld Россия считает правильными оба варианта расшифровки. Название стиля «XX/X» (где X — произвольные буквы) было выбрано для того, чтобы оно соответствовало стилю названия языка программирования PL/M Гэри Килдалла, на котором написана CP/M.

Ранняя история Гэри Килдалл разработал CP/M в 1974 году на собственном языке программирования PL/M, разработанном годом ранее. CP/M предназначалась для работы на микрокомпьютерах Intel серии , но CP/M поддерживала не только Intel 8080, а ещё и Intel 8085 и Zilog Z80. Различные аспекты CP/M были созданы под влиянием операционной системы TOPS-10 мейнфрейма DECsystem-10, которую Килдалл использовал в качестве среды разработки.

В 1974 году Гэри Килдаллом и его женой была основана компания Digital Research, первоначально названная как «Intergalactic Digital Research» (Intergalactic — ), так как консультант Килдалла из Сосалито настаивал на названии «Digital Research», а творческий ассистент корпоративного советника Деми Мур настаивал на наличии в названии слова «Intergalactic». Это слово было убрано из названия в 1978 году, когда Деми Мур ушёл из компании.

В начале 1979 года , подруга Килдалла из Военно-морской аспирантуры, стала четвёртым сотрудником Digital Research и ключевым разработчиком CP/M 2.0, CP/M 2.2 и CP/M Plus. Другими ключевыми разработчиками ранних версий CP/M в 1978—1979 годах являлись Роберт (Боб) Зильберштейн и Дэвид (Дейв) К. Браун.

Первоначальный успех

Одним из первых внешних лицензиатов CP/M была компания , которая в 1977 году купила за 90 долларов США (CP/M 1.3 продавалась ещё дешевле — по цене в 70 долларов США) у Digital Research право использовать их операционную систему на любом продукте, разработанном Gnat Computers. В том же году компания сделала клон микрокомпьютера Altair 8800, назвав его ; у этого клона не было операционной системы, поэтому в 1977 году IMSAI заплатила Гэри Килдаллу за право самолично продавать CP/M 1.3; впоследствии IMSAI сделала на основе CP/M 1.3 собственную операционную систему . В течение года спрос на CP/M настолько вырос, что Digital Research увеличила цену на операционную систему до нескольких десятков тысяч долларов США.

К сентябрю 1981 года Digital Research продала более на CP/M, однако журнал InfoWorld заявлял, что фактически их быть ещё больше из-за сублицензий на операционную систему и её клонов. Этот же журнал заявлял, что:

CP/M уверенно идет к тому, чтобы утвердиться в качестве основной операционной системы для микрокомпьютеров.

Некоторые компании с собственными операционными системами, такие как Zenith Data Systems (операционная система HDOS), предлагали CP/M в качестве альтернативы своей системе, если компьютер работал на процессорах Intel 8080 или Zilog Z80.

В 1982 году Билл Гейтс заявлял, что Apple II под управлением был самым популярным компьютером на CP/M. В том же году Digital Reseacrh заявила, что операционная система была лицензирована для более чем 450 типов компьютеров. На CP/M Plus, к примеру, работала серия компьютеров Amstrad PCW.

MP/M В 1979 году , пятым сотрудником Digital Research, была разработана и выпущена версия CP/M под названием MP/M (расшифровывается как Multi-Programming Monitor Control Program), позволявшая нескольким пользователям подключаться к одному и тому же компьютеру, используя разные компьютерные терминалы. Запрос каждого пользователя обрабатывался отдельно и только после обработки предыдущего. Эта операционная система, в отличие от обычной CP/M, работала на многозадачном ядре, включающим в себя такие функции, как защита памяти, параллельный ввод-вывод (, сокр. XIOS, в противовес BIOS CP/M), и реализацию «очередей» (), которые, в свою очередь, реализовывали обработку запросов каждого пользователя отдельно. Несмотря на это, MP/M 1.0 является совместимой с CP/M 2.0.

Версии MP/M

MP/M II 8-битная версия MP/M изначально называлась так же, как и сама операционная система (1979—январь 1980), а с сентября 1981 года была переименована в MP/M II в связи с выходом версии 2.0. Для её работы требовался процессор Intel 8080 или Zilog Z80, минимум 32 КБ ОЗУ (если операционная система настроена на два терминала и 8 сегментов памяти, а также работает на микрокомпьютере Intel MDS-800, то может хватать менее 15 КБ ОЗУ), от 1 до 16 терминалов и дисков. Кроме того, MP/M II поддерживала переключение банков, что позволяло эффективнее и экономнее использовать память; позднее переключение банков также было добавлено в CP/M Plus (3.0).

+ Список версий MP/M II Название Дата Нововведения MP/M 1.0 1979 н/д MP/M 1.1 январь 1981 н/д MP/M II 2.0 сентябрь 1981 Добавлена возможность всем пользователям одного компьютера использовать одни и те же файлы с помощью функции обмена файлами; добавлена поддержка переключения банков. MP/M II 2.1 январь 1982 Добавлена расширенная блокировка файлов, что позволяет процессу держать файл заблокированным даже после его закрытия.

MP/M-86 Как и CP/M, MP/M была портирована на 16-битный Intel 8086 в сентябре 1981; новая версия была названа как «MP/M-86», по аналогии с CP/M-86. Одним из ключевых разработчиков новой версии системы был Фрэнсис (Фрэнк) Р. Холсворт, в последующем ставший директором по маркетингу Digital Research.

Первой версией этой системы стала MP/M-86 2.0, включающая две ревизии — от 25 сентября 1981 года, и от 5 октября 1981 годаСодержимое диска с установленной на него MP/M 2.1 : DIR.CMD (1999). — Название архива утверждает, что данный диск относится к MP/M 2.1, а содержимое файла DIR.CMD в данном архиве — что к MP/M 2.0.. Второй версией стала MP/M-86 2.1, вышедшая примерно в 1982 году. Версия MP/M-86 2.1, изначально задумывавшаяся для одного из компьютеров IBM, была названа Concurrent CP/M-86 в конце 1982 года. Concurrent CP/M была практически идентична MP/M-86 2.1, за исключением того, что в Concurrent CP/M были добавлены «виртуальные консоли» (), чтобы компенсировать однозадачность системы, возникшую из-за технических ограничений одного из компьютеров IBM, для которого и предназначалась Concurrent CP/M. Виртуальные консоли позволяли пользователю переключаться между выполнением сразу нескольких программ.

В качестве одного из дополнительных модулей для Concurrent CP/M 3.1, для обеспечения базовой совместимости с PC DOS 1.1 и версиями MS-DOS тех времён, в декабре 1983 года на был представлен , впоследствии поступивший в продажу 21 февраля 1984 года. В первом квартале 1984 года Concurrent CP/M 3.1 была развита в Concurrent DOS, которая изначально предназначалась для компьютера Motorola VME/10. Concurrent DOS, в свою очередь, впоследствии была развита во FlexOS и в Multiuser DOS.

MP/M 8-16 MP/M 8-16Содержимое диска с установленной на него MP/M 2.1 : FORMAT.CMD (1999). — Название архива утверждает, что данный диск относится к MP/M 2.1, а содержимое файла DIR.CMD в данном архиве — что к MP/M 2.0. (иногда называемая как MP/M-8/16) — название, данное для своей версии MP/M-86, которая предназначалась для выполнения однопользовательских функций CP/M и 8-битных функций MP/M и работала на многопроцессорном компьютере , выпущенном в марте 1983 года.

CP/NET В конце 1980 года Digital Research представила сетевую операционную систему под названием CP/NET, разработанную Томом Роландером и соединяющую компьютер, работающий на MP/M (сервер), с несколькими клиентами, работающими на компьютере под управлением CP/M (запросчиками (). Существовала также MP/NET, которая позволяла компьютерам, работающим на MP/M, выступать в качестве как серверов, так и запросчиков.

Также существовала версия CP/M, позволяющая изменять информацию на диске только через сеть, хранившаяся в ПЗУ и называющаяся CP/NOS. Существовала также и MP/NOS, аналогичная CP/NOS, но являющаяся при этом версией MP/M.

Команды MP/M Следующий список команд поддерживается MP/M II: Команда Описание ABORT Прерывание указанного процесса ATTACH н/д ASM Ассемблер CONSOLE Вывод порядкового номера терминала Отладка DIR Вывод списка файлов и подкаталогов, находящихся в указанном каталоге DSKRESET Сброс диска DUMP Отображение файла в шестнадцатеричном формате ED Текстовый редактор ERA Удаление файла ERAQ Удаление файла после подтверждения GENHEX Конвертация .COM-файла в .HEX-файл GENMOD Конвертация .HEX-файла в .PRL-файл GENSYS н/д LIB Создание библиотеки .REL-файлов в виде .IRL-файла LINK Слияние нескольких .REL-файлов в исполняемый файл LOAD Конвертация .HEX-файла в .COM-файл MPMSTAT Вывод статуса MP/M MPMLDR н/д Копирование файлов в другое место PRINTER н/д PRLCOM Конвертация .PRL-файла в .COM-файл RDT Другая версия команды DDT REN Переименование файлов RMAC Макроассемблер, создающий .REL-файл вместо .HEX, модифицированная версия макроассемблера CP/M 2.2 — MAC SCHED Переносит указанный процесс на указанную дату и время SDIR Модифицированная версия DIR SET Установка защиты файлов и дисков и атрибутов файлов SHOW Вывод статуса диска SPOOL н/д STAT Вывод и установка статуса файлов или диска STOPSPL н/д SUBMIT н/д TOD Вывод и установка даты и времени TYPE Вывод содержимого файла USER Вывод и изменение порядкового номера пользователя XREF н/д

CP/M Plus

Последней версией 8-битной CP/M являлась версия 3.0, выпущенная в 1983 году и также известная как CP/M Plus. Менеджером проекта была Кэтрин Стратински. CP/M Plus включала в себя такие нововведения, как переключение банков, существовавшее ранее в MP/M II 2.0, выпущенной двумя годами ранее. CP/M Plus также сохраняла совместимость со старыми программами, предназначенными для CP/M 2.2. Файловая система в CP/M Plus была значительно улучшена по сравнению с CP/M 2.2: CP/M Plus поддерживал файлы длиной до 32 МБ, а CP/M 2.2 — длиной до 8 МБ; кроме того, CP/M Plus поддерживал диски с ёмкостью до 512 МБ. В CP/M Plus также был добавлен макроассемблер RMAC — модифицированная версия макроассемблера MAC для CP/M 2.2, ранее уже существовавший в MP/M II.

CP/M-86

Первой версией CP/M, разработанной для 16-битных процессоров, была CP/M-86, выпущенная в ноябре 1981 года и предназначенная для процессоров Intel 8086/88. Из-за выпуска CP/M-86, 8-битная CP/M стала известна под ретронимом CP/M-80. Изначально предполагалось, что выпуск CP/M-86 состоится в ноябре 1979 года, но он неоднократно откладывался. Исполняемые файлы использовали расширение . Все последующие операционные системы, разработанные Digital Research, являются производными от CP/M-86.

Существовали также и другие 16-битные версии CP/M, такие как CP/M-68K для Motorola 68000, а также её порт на Zilog Z8000 для , сделанный в 1982 году и названный CP/M-8000.

Вытеснение DOS-системами