вать, изменять или удалять файл, заключалась в использова-
нии блока управления файлами (FCB). Формат блока FCB при
работе под управлением операционной системы MS-DOS и спо-
соб, которым он устанавливается, почти идентичен использо-
ванию блока FCB под управлением операционной системы СР/M.
Поскольку управление файлами является решающим моментом в
большинстве операционных систем, построенных на операцион-
ной системе DOS, сходства в использовании блока FCB в опе-
рационных системах CP/M и MS-DOS бесценны для программис-
тов. Несмотря на то, что новый механизм управления файлами
был впервые представлен в операционной системе MS-DOS вер-
сии 2.00, все версии, вплоть до версии 3.1, по-прежнему,
сохраняют (в целях обеспечения совместимости) "старый"
способ работы с блоками FCB.
- Команды. Использование встроенных команд и внешних
-------- команд для работы с программами очень похоже в
обеих операционных системах. Операционная система CP/M
держит свои встроенные команды в так называемом процессоре
консольных команд (ССР), который является частью операци-
онной системы при загрузке в память. Операционная система
MS-DOS управляет встроенными командами очень похожими об-
разом за исключением того, что ее командный процессор су-
ществует в дисковом файле, называемом COMMAND.COM. Опера-
ционная система MS-DOS также работает в 8-битовом режиме
совместимости для внешних команд и таким образом управляет
файлами и расширением ".СОМ" способом, почти идентичным
способу, которым ими управляет операционная система СР/M.
Под управлением операционной системы MS-DOS файлы с расши-
рением .СОМ используют только 64-Кбайтный сегмент памяти,
тем самым эмулируя использование памяти систем, основанных
на микропроцессорах типа 8080 или Z80. Формат команд .EXE
для работы их под управлением операционной системы MS-DOS,
однако,применяется только в вычислительных машинах, исполь-
зующих микропроцессоры серии 8086 и, следовательно, не
совместимы с операционной системой CP/M.
- 13-44 -
Операционные системы СР/M-86 и "Concurrent CP/M-86"
Операционная система СР/M-86 является 16-битовым счетным ме-
ханизмом исходной операционной системы CP/M для микрокомпьютеров
семейства 8086. Многие из этих особенностей, сохранившиеся еще с
8-битовой версии операционной системы CP/M, похожи на особенности
операционной системы MS-DOS. Например, методы использования бло-
ков FCB и обращений к функциям, связанным с файлами (включая опи-
сатели файлов) в операционной системе СР/M-86, очень похожи на
методы, используемые в операционной системе MS-DOS.
Вскоре после представления операционной системы СР/M-86, бы-
ла введена новая версия под названием "Concurrent CP/M-86", кото-
рая привнесла в операционную систему CP/M такие режимы работы,
как мультизадачный и оконный. Специальные версии обеих операцион-
ных систем были созданы для персональных компьютеров IBM PC, ко-
торый пользовался этими новыми возможностями специальным образом.
Большая часть функции операционной системы CP/M-86 была сохранена
в операционной системе "Concurrent CP/M-86", но многие из них бы-
ли доработаны и усложнены вследствие появления мультизадачного
режима работы в более новых операционных системах.
Операционные системы "Concurrent PC-DOS"
и "Concurrent DOS-286"
С появлением операционной системы MS-DOS, как фактической
стандартной операционной системы для семейства 16-битовых микро-
процессоров 8086 (особенно в персональных компьютерах IBM PC и
совместимых с ними вычислительных машинах), создатели операцион-
ных систем CP/M поняли, что им придется разработать некую форму
совместимости с операционной системой MS-DOS, потому что боль-
шинство пользователей работают на MS-DOS - ориентированных опера-
ционных системах. Фирма "Дайджетал Ресерч, Инк." выпустила расши-
ренную версию операционной системы "Concurrent CP/M-86" под
названием "Concurrent PC-DOS", которая в совсем исходном виде
обеспечивала совместимость с операционной системой MS-DOS версии
1.0. Версия 3 операционной системы "Concurrent PC-DOS" представ-
ляет собой еще более расширенный вариант, который обеспечен сов-
местимостью уже с операционной системой MS-DOS версии 2.00. Эта
операционная система может параллельно использоваться для работы
как программ операционной системы CP/M-86, так и программ опера-
ционной системы MS-DOS, и может принимать все обращения к функци-
ям, поддерживаемым эквивалентными версиями операционной системы
MS-DOS.
Другая разновидность операционной системы "Concurrent
PC-DOS" под названием "Concurrent DOS286" предназначена для вы-
числительных машин, использующих микропроцессор 80286 фирмы "Ин-
тел". Эта операционная система разработана для использования с
микропроцессором 80286 в "виртуальном" (также называется "защи-
щенном") режиме и обеспечивает диапазон адресации памяти в 16 Ме-
габайт. Эта операционная система также может быть запущена в ре-
жиме "реального времени" (режим совместимости 8086) параллельно с
виртуальным режимом так, что под ее управлением могут параллельно
работать программы, написанные для операционной системы MS-DOS и
программы, написанные для операционной системы СР/M. Операционная
система "Concurrent DOS286" обеспечивает те же возможности по
совместимости операционной системы MS-DOS, что и операционная
система "Concurrent PC-DOS". Занимаясь совместимостью этой опера-
- 13-45 -
ционной системы, следует соблюдать осторожность, потому что пра-
вильная ее работа в большой степени зависит от версии микропро-
цессора 80286, используемого в системе (более ранние версии
микропроцессоров имеют трудности с переключением и подсоединением
виртуального и реального режимов работы).
Операционные системы XENIX и UNIX
Как замечено выше, более поздние версии операционной системы
MS-DOS (начиная с версии 2.0) содержат некоторые характеристики,
имеющиеся в операционной системе XENIX - другой операционной сис-
теме фирмы "Майкрософт". Большинство характеристик, имеющихся в
операционной системе MS-DOS версии 2.0 (такие, как дисководы, пе-
реадресация, каналы и описатели фалов) являются свойствами, осно-
ванными на таких же свойствах операционной системы XEENIX, кото-
рые, в свою очередь основываются на характеристиках операционной
системы UNIX фирмы "AT&T". Таким образом, несмотря на то, что Вы
должны уделять внимание проблемам совместимости сверху вниз (опе-
рационные системы MS-DOS и CP/M), совместимость снизу вверх тоже
должна приниматься во внимание и рассматриваться, потому что
XENIX - подобные характеристики операционной системы MS-DOS
представляют собой указание на то, что следует сохранять в даль-
нейших разработках новых версий операционной системы MS-DOS.
Операционная система OS/2
Программы операционной системы MS-DOS никаким образом не
совместимы с работой защищенного режима 80286/80386 операционной
системы OS/2. Операционная система OS/2, однако, имеет, так назы-
ваемый "блок совместимости", в котором может быть запущено боль-
шинство программ операционной системы MS-DOS в неизменном виде
под эмулятором MS-DOS. Блок совместимости операционной системы
OS/2 работает в реальном режиме микропроцессоров семейства 8086
(1 Мегабайт адресуемой памяти, из которой 640 Кбайт используются
для операционной системы MS-DOS) и обеспечивает эмуляцию операци-
онной системы MS-DOS, предоставляющую совместимость с версией 3.3
операционной системы MS-DOS). Однако, из-за того, что блок сов-
местимости в действительности не обеспечивает работу операционной
системы MS-DOS, а только эмулирует ее, совместимость этих опера-
ционных систем не стопроцентная. Например, программы, не исполь-
зующие временные прерывания, скорее всего будут работать в блоке
совместимости. Более того, некоторые из не входящих в документа-
цию обращений к функциям по прерыванию "int 21h" могут не рабо-
тать так, как они работали под управлением реальной операционной
системы MS-DOS могут отличаться от адресов в блоке совместимости.
В общем случае, так называемые "хорошо работающие программы" бу-
дут работать в блоке совместимости без необходимости их модифика-
ций.
Поскольку операционная система OS/2 была разработана главным
образом для работы с микропроцессором 80286, она работает и с
микропроцессором 80386 в "защищенном режиме 80286". Следователь-
но, операционная система OS/2 поддерживает одновременно работу
только одного блока совместимости, несмотря на свои мультизадач-
ные возможности. Микропроцессор 80386 может обеспечить работу
многих блоков совместимости в реальном режиме одновременно, если
микропроцессор работает в "защищенном режиме 80246". Работа мно-
жества блоков совместимости была невозможна под управлением опе-
рационной системы OS/2 до тех пор, пока не появилась специальная
- 13-46 -
версия операционной системы OS/2, ориентированная на микропроцес-
сор 80386.
Заключение
Много вопросов - гораздо больше, чем может вместиться в одну
главу - следует рассматривать и изучать при разработке программ,
совместимых со всеми или с большинством версий и реализаций опе-
рационной системы MS-DOS. Предложенная в этой главе информация
призвана обеспечить вас хорошей базой для начала исследования
многих аспектов совместимости, которые вероятнее всего встретятся
на Вашем пути. Большая часть производителей персональных компь-
ютеров, работающих с операционной системы MS-DOS, публикуют тех-
нические сведения о применении операционной системы MS-DOS на их
вычислительных машинах. Если Вы пишете программу, предназначенную
для работы на конкретной вычислительной машине (или собираетесь,
чтобы эти программа была совместима с конкретной вычислительной
машиной), такие технические руководства могут оказать Вам значи-
тельную помощь.
ЧАСТЬ V. ПРИЛОЖЕНИЯ