CP/M

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 13:32, 14 апреля 2019.
CP/M
Cp-m.gif
Разработчик Digital Research
Написана на PL/M
Линейка ОС "Unix-like" или "Microsoft Windows"
Состояние разработки Историческое
Исходный код Первоначально закрытый исходный код, сейчас программное обеспечение с открытым исходным кодом
Дата первого релиза 1974; 46 years ago (1974)
Последний релиз 3.1 / 1983; 37 years ago (1983)
Доступно в Поддерживает все языки
Платформы Intel 8080, Intel 8085, Zilog Z80, Zilog Z8000, Intel 8086, Motorola 68000
Ядро (тип) Monolithic kernel
Лицензия Первоначально собственное программное обеспечение, сейчас BSD-like
Официальный веб-сайт Digital Research CP/M page

CP/M (Control Program/Monitor либо Control Programs for Microcomputers) — операционная система, первоначально предназначенная для 8-разрядных микрокомпьютеров. Написана в 1973 году программистом Гэри Килдаллом на языке программирования PL/M. Стала первой операционной системой общего назначения для микрокомпьютеров, в которой были предусмотрены операции с дисковыми магнитными накопителями.

Во второй половине 1970-х годов была наиболее популярной системой для компьютеров на базе Intel 8080 и Zilog Z80, позднее была вытеснена MS-DOS. Стала основой операционной системы DR-DOS (1988).

История

Начало

Гари Килдалл первоначально разработал CP / M в 1974 году как операционную систему для работы на системе разработки Intel Intellec-8 , оснащенной 8-дюймовым дисководом гибких дисков Shugart Associates, подключенным через специальный контроллер гибких дисков. Он был написан на собственном языке программирования Kildall PL/M ( язык программирования для микрокомпьютеров ). На различные аспекты CP / M повлияла операционная система TOPS -10 мэйнфрейм- компьютера DECsystem-10 , которую Kildall использовал в качестве среды разработки.

Название

CP/M первоначально означало «Управляющая программа / монитор», имя, которое подразумевает резидентный монитор - примитивный предшественник операционной системы. Тем не менее, в процессе превращения CP/M в качестве коммерческого продукта, регистрации товарных знаков документы , поданные в ноябре 1977 года дал название продукта , как «Программа управления для микрокомпьютеров». Название CP/M следует преобладающей схеме именования времени, как в языке PL/M Килдалла, и PL/P Prime Computer ( язык программирования для Prime ), предлагая IBM PL/I ; и операционная система CP/CMS от IBM , которую Килдалл использовал при работе в военно-морской аспирантуре .

Это переименование CP/M было частью более широких усилий Kildall и его жены / делового партнера по преобразованию личного проекта Kildall CP/M и компилятора PL/M, заключенного с Intel, в коммерческое предприятие. Kildalls намеревались сделать бренд Digital Research и его линейки продуктов синонимичными с «микрокомпьютером» в сознании потребителя, подобно тому, как IBM и Microsoft вместе позже успешно сделали «персональный компьютер» синонимичным с их предложениями продуктов.

Intergalactic Digital Research, Inc. была позже переименована через регистрацию смены имени корпорации в Digital Research, Inc.

Приложения

WordStar , один из первых широко используемых текстовых процессоров , и dBase , ранняя и популярная программа баз данных для микрокомпьютеров, изначально были написаны для CP/M. Turbo Pascal , предок Borland Delphi , и Multiplan , предок Microsoft Excel , также дебютировали на CP/M до того, как стали доступны версии MS-DOS. Visicalc, первая в мире программа для работы с электронными таблицами, стала доступной для CP/M. Другая компания, Sorcim , создала свою электронную таблицу SuperCalc для CP/M, которая впоследствии станет лидером рынка и де-факто стандартом для CP/M. Supercalc станет конкурентом на рынке электронных таблиц в мире MS-DOS. AutoCAD , приложение CAD от Autodesk, дебютировавшее на CP/M. Множество компиляторов и интерпретаторов для популярных языков программирования того времени (например, BASIC и FORTRAN ) были доступны, в том числе несколько из самых ранних Microsoft продуктов.

Программное обеспечение CP/M часто поставлялось с установщиками, которые адаптировали его к широкому кругу компьютеров. Исходный код для программ BASIC был легко доступен, и большинство форм защиты от копирования были неэффективны в операционной системе. Например, владелец Kaypro II получит программное обеспечение в формате Xerox 820, затем скопирует его и запустит его с дисков в формате Kaypro.

Отсутствие стандартизированной графики поддерживает ограниченные видеоигры , но были портированы различные игры для персонажей и текстовые игры , такие как Telengard , Gorillas , Hamurabi , Lunar Lander , а также ранняя интерактивная фантастика, включая серию Zork и Colossal Cave.

Графика

Хотя графические системы S-100 существовали благодаря коммерциализации шины S-100 , CP/M не обеспечивала никакой стандартизированной графической поддержки до 1982 года с GSX (Graphics System Extension). Ввиду небольшого объема доступной памяти графика никогда не была общей особенностью, связанной с 8-разрядными операционными системами CP/M. Большинство систем может отображать только элементарные графики и диаграммы ASCII в текстовом режиме или с помощью пользовательского набора символов .

Версии

Многопользовательская

В 1979 году была выпущена многопользовательская совместимая производная CP/M. MP/M позволяет нескольким пользователям подключаться к одному компьютеру, используя несколько терминалов, чтобы предоставить каждому пользователю экран и клавиатуру. Более поздние версии работали на 16-битных процессорах.

CP/m Plus

Последней 8-разрядной версией CP/M была версия 3, часто называемая CP/M Plus, выпущенная в 1983 году. Она включала управление коммутацией памяти банка MP/M в однопользовательской операционной системе с одним заданием, совместимой с CP/М 2.2 приложения. Поэтому CP/M 3 может использовать более 64 КБ памяти на процессоре 8080 или Z80. Система может быть настроена для поддержки отметки даты файлов. Программное обеспечение для дистрибутива операционной системы также включает в себя перемещение ассемблера и компоновщика. CP/M 3 был доступен для 8-битных компьютеров последнего поколения, в частности, Amstrad PCW , Amstrad CPC , ZX Spectrum +3 , Commodore 128 , MSX и Радио Шак ТРС-80 Модель 4.

Реклама операционной системы CP/M

16-ти битная версия

Первой версией в 16-разрядном семействе была CP/M-86 для Intel 8086 , за которой вскоре последовала CP/M-68K для Motorola 68000 . Первоначальная версия CP/M-68K в 1982 году была написана на языке Pascal/MT + 68k , но позже была перенесена на C. В этот момент оригинальный 8-битный CP/M стал известен под ретронимом CP/M-80, чтобы избежать путаницы. В 1982/1983 был также порт к Zilog Z8000 для Olivetti M20 , написанный на C , названный CP/M-8000 .

Ожидалось, что CP/M-86 станет стандартной операционной системой для новых компьютеров IBM , но DRI и IBM не смогли договориться об условиях разработки и лицензирования. Вместо этого IBM обратилась к Microsoft, и Microsoft поставила PC DOS на базе 86-DOS . Хотя CP/M-86 стал вариантом для IBM PC после того, как DRI грозил судебным иском, он никогда не обгонял систему Microsoft.

Когда Digital Equipment Corporation (DEC) выпустила Rainbow 100 для конкуренции с IBM, она пришла с CP/M-80 с использованием чипа Z80, CP/M-86 или MS-DOS с использованием микропроцессора 8088 или CP/M-86/80 используя оба. Процессоры Z80 и 8088 работали одновременно.Преимущество Rainbow заключалось в том, что он мог продолжать работать с 8-битным программным обеспечением CP/M, сохраняя, возможно, значительные инвестиции пользователя по мере его продвижения в 16-битный мир MS-DOS.

CP/M-68K, уже работающий на системах Motorola EXORmacs , первоначально должен был использоваться на компьютере Atari ST , но Atari решила использовать более новую дисковую операционную систему под названием GEMDOS . CP/M-68K также использовался на компьютерах SORD M68 и M68MX.

Эти 16-разрядные версии CP/M требовали перекомпиляции прикладных программ для новых процессоров или, если они были написаны на ассемблере , для перевода с использованием таких инструментов, как XLT86 Digital Research , программы, написанной Гари Килдаллом в 1981 году, которая перевел исходный код .ASM для процессора Intel 8080 в исходный код .A86 для Intel 8086. Используя глобальный анализ потока данных при использовании регистра 8080, транслятор также оптимизировал бы вывод для размера кода и позаботился о соглашениях о вызовах, чтобы CP Программы / M-80 и MP / M-80 могут автоматически переноситься на платформы CP/M-86 и MP/M-86 . Сам XLAT86 был написан на PL/I-80и был доступен для платформ CP/M-80, а также для DEC VMS (для VAX 11/750 или 11/780).


Права на СР/М

Права на интеллектуальную собственность Digital Research перешли к компании Novell, которая на основе CP/M разрабатывала свою версию DOSDR-DOS. В 1996 году Novell продала права на DR-DOS компании Caldera, которая планировала использовать систему DR-DOS (модифицированную версию CP/M) в собственном программном обеспечении. Примерно в то же время создатель неофициального сайта поклонников CP/M Тим Олстед получил разрешение Caldera на использование исходного кода системы в некоммерческих целях.

11 сентября 2001 года Тим Олстед скончался от рака. Согласно его завещанию сайт поклонников CP/M (cpm.z80.de) был закрыт. Дело в том, что Олстед заключил личное соглашение с Caldera, и оставалось неясным, насколько легально будет опубликовать исходный код CP/M после его смерти. Тем временем, на базе подразделения по разработке «тонких клиентов» компании Caldera была создана компания Lineo, которая унаследовала все права на CP/M и DR-DOS.

Сайт активистов ОС CP/M не работал несколько недель. 19 октября 2001 года компания Lineo отменила личную лицензию Олстеда, отправив владельцу сайта любителей ОС Гэби Чодри уведомление о том, что владельцы и посетители сайта получают право на распространение и изменение исходного кода CP/M в некоммерческих целях. Таким образом, CP/M теперь отвечает стандартам открытого программного обеспечения, так как каждый может изменять и распространять систему согласно собственным интересам (но не отвечает стандартам свободного программного обеспечения).

Компоненты системы

Минимальная 8-битная система CP / M будет содержать следующие компоненты:

•Компьютерный терминал с использованием ASCII набора символов

•Микропроцессор Intel 8080 (а затем и 8085) или Zilog Z80

•Процессоры NEC V20 и NEC V30 поддерживают режим эмуляции 8080, который может запускать 8-битный CP / M на компьютере с PC DOS / MS-DOS, оборудованном таким образом, хотя любой ПК также может работать с 16-битным CP / M-86

Компьютер с операционной системой CP/M

•Не менее 16 килобайт оперативной памяти , начиная с адреса 0

•Средство для начальной загрузки первого сектора дискеты

•По крайней мере один гибкий диск диск

Единственная аппаратная система, которую CP / M, продаваемый Digital Research, поддерживал, была Intel 8080 Development System. Производители CP / M-совместимых систем настраивают части операционной системы для собственной комбинации установленной памяти, дисководов и консольных устройств. CP / M также будет работать на системах на базе процессора Zilog Z80, поскольку Z80 совместим с кодом 8080. В то время как распределенное ядро ​​Digital Research CP / M (BDOS, CCP, основные переходные команды) не использовало никаких специфических для Z80 инструкций, многие системы на основе Z80 использовали код Z80 в специфичном для системы BIOS, и многие приложения были выделены для машин CP / M на базе Z80.

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

CP / M использовал 7-битный набор ASCII. Другие 128 символов, которые стали возможными благодаря 8-битному байту, не были стандартизированы. Например, один Kaypro использовал их для греческих символов, а машины Осборна использовали 8-й набор битов для обозначения подчеркнутого символа. WordStar использовал 8-й бит в качестве маркера конца слова. Международные системы CP / M чаще всего использовали норму ISO 646 для локализованных наборов символов, заменяя определенные символы ASCII локализованными символами, а не добавляя их за 7-битную границу.

Компоненты операционной системы

В 8-битных версиях во время работы загруженная в память операционная система CP/M имела три компонента:

•Базовая система ввода / вывода или BIOS

•Базовая дисковая операционная система или BDOS

•Консольный командный процессор или CCP

BIOS и BDOS были резидентными, а CCP - резидентными, если только они не были перезаписаны приложением, и в этом случае они автоматически перезагружались после завершения работы приложения. Также был предоставлен ряд временных команд для стандартных утилит. Временные команды находились в файлах с расширением .COM на диске.

BIOS напрямую управляет аппаратными компонентами, кроме процессора и основной памяти. Он содержал такие функции, как ввод и вывод символов, чтение и запись секторов диска. В BDOS реализована файловая система CP/M и некоторые абстракции ввода/вывода (например, перенаправление) поверх BIOS. CCP принимает пользовательские команды и выполняет их напрямую (внутренние команды, такие как DIR, чтобы показать каталог, или ERA, чтобы удалить файл), или загружает и запускает исполняемый файл с заданным именем (временные команды, такие как PIP.COM, чтобы копировать файлы или STAT.COM для отображения различной файловой и системной информации). Сторонние приложения для CP/M также были по существу временными командами.

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

По современным стандартам CP/M был примитивным из-за крайних ограничений размера программы. В версии 1.0 не было положения для обнаружения измененного диска. Если пользователь изменил диски без перечитывания каталога диска вручную, система запишет на новый диск, используя информацию каталога старого диска, разрушая данные, хранящиеся на диске. Начиная с версии 1.1 или 1.2, изменение диска и попытка записи на него до чтения его каталога приведет к фатальной ошибке. Это позволило избежать перезаписи диска, но потребовало перезагрузки и потери данных, которые должны были быть сохранены на диске.

Большая часть сложности в CP/M была изолирована в BDOS и, в меньшей степени, в CCP и переходных командах. Это означало, что при переносе ограниченного числа простых подпрограмм в BIOS на конкретную аппаратную платформу вся ОС будет работать. Это значительно сократило время разработки, необходимое для поддержки новых машин, и стало одной из основных причин широкого использования CP/M. Сегодня такого рода абстракция является общей для большинства ОС (уровень аппаратной абстракции ), но во время рождения CP/M ОС обычно предназначались для работы только на одной машинной платформе, и многоуровневые конструкции считались ненужными.

Источники

1. Неофициальный веб-сайт CP / M (основан Тимом Олмстедом) - включает исходный код - www.cpm.z80.de

2. Сайт технической информации Джона Эллиота - www.seasip.info/Cpm/index.html

3. Сайт "Culie" - curlie.org//Computers/Software/Operating_Systems/CPM/

4. Домашняя страница Габи Чодри для CP / M и истории компьютеров - www.gaby.de/ehome.htm