CP/M
CP/M — это операционная система для 8-битных и ранних 16-битных микрокомпьютеров, разработанная американским программистом Гэри Килдаллом в 1974 году. Название расшифровывается как Control Program for Microcomputers (управляющая программа для микрокомпьютеров). CP/M стала первой массовой операционной системой для микрокомпьютеров, не привязанной к конкретному производителю аппаратного обеспечения, и фактически установила стандарт для индустрии в конце 1970-х — начале 1980-х годов, пока не была вытеснена MS-DOS.
История
Предпосылки создания
В начале 1970-х годов микропроцессоры, такие как Intel 8008 и Intel 8080, только начинали применяться в любительских и коммерческих компьютерах. Программное обеспечение для них, как правило, создавалось для конкретной аппаратной платформы и не было переносимым. Гэри Килдалл, работавший в то время в Военно-морской аспирантуре США (Naval Postgraduate School) в Монтерее, Калифорния, занимался разработкой компиляторов и загрузчиков. В 1973 году он приобрёл один из первых микрокомпьютеров Intellec-8 на базе Intel 8080, и для упрощения работы с ним начал писать загрузчик и дисковую операционную систему.
Разработка и первые версии
В 1974 году Килдалл создал CP/M версии 1.0, которая изначально называлась «Control Program/Monitor». Система состояла из трёх основных модулей: BIOS (Basic Input/Output System — базовая система ввода-вывода), BDOS (Basic Disk Operating System — базовая дисковая операционная система) и CCP (Console Command Processor — консольный процессор команд). В 1975 году Килдалл основал компанию Digital Research, Inc. (DRI) для коммерческого распространения CP/M. Первая коммерческая версия, CP/M 1.3, была выпущена в 1976 году и поддерживала дисководы на 8-дюймовых гибких дисках.
Расцвет и стандартизация
К концу 1970-х годов CP/M стала доминирующей операционной системой для микрокомпьютеров. Её поддерживали сотни производителей, включая IMSAI, Altair, Osborne, Kaypro, а также множество клонов. Ключевым фактором успеха стала модульная архитектура: производители адаптировали только BIOS под своё оборудование, а BDOS и CCP оставались неизменными. Это обеспечило переносимость прикладного программного обеспечения. К 1980 году под CP/M было выпущено более 10 000 прикладных программ, включая текстовые редакторы (WordStar), электронные таблицы (VisiCalc), базы данных (dBase II) и языки программирования (BASIC, Pascal, C).
Конкуренция с MS-DOS и упадок
В начале 1980-х годов компания IBM искала операционную систему для своего персонального компьютера IBM PC. Первоначально IBM обратилась к Digital Research, но переговоры затянулись. В результате IBM заключила контракт с Microsoft, которая приобрела у компании Seattle Computer Products систему 86-DOS (QDOS), клон CP/M для процессора Intel 8086. Microsoft переименовала её в MS-DOS и лицензировала IBM. MS-DOS была во многом совместима с CP/M на уровне системных вызовов, что облегчило перенос программ. К 1983 году MS-DOS заняла лидирующие позиции на рынке IBM-совместимых компьютеров, а CP/M утратила популярность. Digital Research пыталась конкурировать с CP/M-86 и CP/M-68K, но безуспешно. Последняя версия CP/M (3.0, также известная как CP/M Plus) вышла в 1983 году, после чего компания сосредоточилась на многозадачной системе Concurrent DOS и графической среде GEM.
Архитектура и устройство
Модульная структура
CP/M была построена по трёхуровневой схеме:
- BIOS (Basic Input/Output System) — самый низкий уровень, отвечающий за взаимодействие с аппаратным обеспечением: управление дисководами, клавиатурой, дисплеем и последовательными портами. BIOS был единственным модулем, который требовал адаптации под конкретную машину.
- BDOS (Basic Disk Operating System) — ядро системы, реализующее файловую систему, управление дисками, буферизацию и системные вызовы. BDOS был универсальным для всех реализаций.
- CCP (Console Command Processor) — интерпретатор командной строки, обеспечивающий взаимодействие пользователя с системой. CCP поддерживал ограниченный набор встроенных команд (DIR, ERA, REN, SAVE, TYPE, USER) и позволял запускать внешние программы.
Файловая система
CP/M использовала файловую систему с плоской структурой (без подкаталогов), основанную на 8-дюймовых гибких дисках. Файлы имели имена формата 8.3 (до 8 символов имени и 3 символа расширения). Диски разбивались на дорожки и секторы, а каталог хранился в фиксированной области. Максимальный размер диска в ранних версиях составлял около 256 КБ, в CP/M 2.2 — до 8 МБ. Для работы с несколькими дисководами использовались буквы A:, B:, C: и т. д.
Системные вызовы
BDOS предоставлял около 40 системных вызовов (функций), доступных через программное прерывание. Они включали открытие, чтение, запись, закрытие и удаление файлов, а также управление памятью и консолью. Этот интерфейс был стандартизирован, что позволяло программам, написанным для CP/M, работать на любом компьютере с этой системой.
Версии и разновидности
Основные версии
- CP/M 1.0 (1974) — первая версия, работавшая на Intellec-8.
- CP/M 1.3 (1976) — первая коммерческая версия.
- CP/M 2.0 (1978) — значительное обновление, добавившее поддержку дисков до 8 МБ, улучшенную обработку ошибок и новые системные вызовы.
- CP/M 2.2 (1979) — наиболее распространённая и стабильная версия, ставшая стандартом.
- CP/M 3.0 (CP/M Plus, 1983) — последняя версия для 8-битных процессоров, включавшая поддержку памяти до 1 МБ, хешированный каталог и улучшенную производительность.
Производные и клоны
- MP/M — многозадачная и многопользовательская версия CP/M, выпущенная Digital Research в 1979 году.
- CP/M-86 — версия для процессора Intel 8086, выпущенная в 1981 году для конкуренции с MS-DOS.
- CP/M-68K — версия для процессора Motorola 68000, выпущенная в 1982 году.
- TurboDOS — клон CP/M с улучшенной производительностью, разработанный компанией Software 2000.
- ZSDOS — альтернативная реализация BDOS, совместимая с CP/M.
Применение и значение
Коммерческое использование
CP/M широко применялась на микрокомпьютерах в 1970–1980-х годах для бизнес-задач: обработки текстов, бухгалтерского учёта, управления базами данных и инженерных расчётов. Благодаря стандартизации, программы, написанные для CP/M, могли работать на компьютерах разных производителей, что стимулировало развитие рынка ПО. Популярные приложения включали WordStar, VisiCalc, dBase II, SuperCalc и Turbo Pascal.
Влияние на развитие операционных систем
CP/M заложила основы современных операционных систем для персональных компьютеров. Её архитектура (BIOS/BDOS/CCP) стала прообразом для MS-DOS, а интерфейс системных вызовов повлиял на дизайн более поздних систем. CP/M также ввела концепцию переносимости операционной системы между разными аппаратными платформами, что стало стандартом в индустрии.
Образовательное и любительское значение
В 1980-х годах CP/M часто использовалась в учебных заведениях и среди радиолюбителей из-за простоты и доступности. Многие энтузиасты изучали программирование на ассемблере и языках высокого уровня именно на CP/M-машинах. В настоящее время CP/M поддерживается эмуляторами и используется для ретро-вычислений и изучения истории вычислительной техники.
Технические характеристики
Аппаратные требования
- Процессор: Intel 8080, Zilog Z80 или совместимый.
- Оперативная память: минимум 16 КБ (рекомендовалось 32–64 КБ).
- Накопители: один или два 8-дюймовых гибких диска (емкостью до 256 КБ каждый) или 5,25-дюймовые диски.
- Терминал: последовательный или видеомонитор с клавиатурой.
Ограничения
- Отсутствие подкаталогов (плоская файловая система).
- Максимальный размер файла — 8 МБ (в CP/M 2.2).
- Максимальный размер диска — 8 МБ (в CP/M 2.2) или 32 МБ (в CP/M 3.0).
- Отсутствие многозадачности и многопользовательского режима (за исключением MP/M).
- Ограниченная поддержка графики и звука (только через BIOS).
Интересные факты
- Название CP/M изначально расшифровывалось как «Control Program/Monitor», но в 1975 году Килдалл изменил расшифровку на «Control Program for Microcomputers».
- Первая версия CP/M была написана на ассемблере Intel 8080 и занимала около 4 КБ.
- Гэри Килдалл отказался от предложения IBM о покупке CP/M, что привело к доминированию MS-DOS.
- CP/M была одной из первых операционных систем, поддерживавших работу с несколькими дисководами одновременно.
- В 1980 году Digital Research выпустила версию CP/M для процессора Intel 8086, но она не смогла конкурировать с MS-DOS из-за более высокой цены и меньшей популярности.
Источники
- Kildall, G. (1976). CP/M: A Control Program for Microcomputers. Digital Research, Inc.
- Freiberger, P., & Swaine, M. (2000). Fire in the Valley: The Making of the Personal Computer. McGraw-Hill.
- Ceruzzi, P. E. (2003). A History of Modern Computing. MIT Press.
- Digital Research, Inc. (1983). CP/M Plus Operating System User's Guide.
- Byte Magazine (1979). «The CP/M Operating System» (Vol. 4, No. 11).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →