Multiuser DOS — многопользовательская многозадачная операционная система реального времени для IBM PC -совместимых микрокомпьютеров.
Являясь развитием более старых операционных систем Concurrent CP/M-86 , Concurrent DOS и Concurrent DOS 386 , она была первоначально разработана компанией Digital Research , а затем приобретена и доработана компанией Novell в 1991 году. [1] [2] [3] Ее предки — более ранние 8-разрядные операционные системы Digital Research CP/M и MP/M , а также 16-разрядная однозадачная CP/M-86 , которая произошла от CP/M.
Когда Novell отказалась от Multiuser DOS в 1992 году, трем основным реселлерам с добавленной стоимостью (VAR) DataPac Australasia, Concurrent Controls [4] и Intelligent Micro Software [5] было разрешено взять на себя управление и продолжить независимую разработку Datapac Multiuser DOS и System Manager, CCI Multiuser DOS и IMS Multiuser DOS и REAL/32. [5]
Линейка FlexOS , произошедшая от Concurrent DOS 286 и Concurrent DOS 68K , была продана компании Integrated Systems , Inc. (ISI) в июле 1994 года.
Первоначальная версия CP/M-86 1.0 (с BDOS 2.x) была адаптирована и стала доступна для IBM PC в 1982 году. Она была коммерчески неудачной, поскольку PC DOS 1.0 от IBM предлагала почти те же возможности по значительно более низкой цене. Ни PC DOS, ни CP/M-86 не могли в полной мере использовать мощь и возможности новой 16-битной машины.
Вскоре он был дополнен реализацией многозадачного «старшего брата» CP/M, MP/M-86 2.0 , с сентября 1981 года. Это превратило ПК в многопользовательскую машину, способную поддерживать нескольких одновременных пользователей, использующих немые терминалы, подключенные через последовательные порты . Среда, представленная каждому пользователю, создавала впечатление, что весь компьютер принадлежит ему. Поскольку терминалы стоили лишь часть тогдашней значительной цены полного ПК, это обеспечивало значительную экономию средств, а также облегчало многопользовательские приложения, такие как учетные записи или контроль запасов, в то время, когда сети ПК были редки, очень дороги и сложны в реализации.
CP/M-86 1.1 (с BDOS 2.2) и MP/M-86 2.1 были объединены для создания Concurrent CP/M-86 3.0 (также известного как CCP/M-86) с BDOS 3.0 в конце 1982 года. [6] Кэтрин Стратински , менеджер проекта CP/M-86, также была менеджером проекта Concurrent CP/M-86. Одним из его разработчиков был Фрэнсис «Фрэнк» Р. Холсворт. [7] [8] Первоначально это была однопользовательская операционная система, поддерживающая настоящую многозадачность до четырех (в конфигурации по умолчанию) CP/M-86-совместимых программ. Как и ее предшественники, она могла быть настроена для поддержки многопроцессорности (см., например, Concurrent CP/M-86/80), а также добавляла «виртуальные экраны», позволяющие оператору переключаться между взаимодействиями нескольких программ. [6] Более поздние версии поддерживали немые терминалы и могли быть развернуты как многопользовательские системы. Concurrent CP/M-86 3.1 (BDOS 3.1) был отправлен 21 февраля 1984 года. [9]
В феврале 1984 года Digital Research также предложила версию Concurrent CP/M-86 с возможностями работы с окнами под названием Concurrent CP/M с Windows для IBM Personal Computer и Personal Computer XT . [10]
Это была адаптация Concurrent CP/M-86 для компьютеров LSI-M4, LSI Octopus [11] и CAL PC. Эти машины имели как 16-битные, так и 8-битные процессоры, поскольку на заре 16-битных персональных компьютеров 8-битное программное обеспечение было более доступно и часто работало быстрее, чем соответствующее 16-битное программное обеспечение. Concurrent CP/M-86/80 позволял пользователям запускать как CP/M (8-битные), так и CP/M-86 (16-битные) приложения. Когда вводилась команда, операционная система запускала соответствующее приложение либо на 8-битном, либо на 16-битном процессоре, в зависимости от того, имел ли исполняемый файл расширение .COM или .CMD . Он эмулировал среду CP/M для 8-битных программ, транслируя системные вызовы CP/M в системные вызовы CP/M-86, которые затем выполнялись 16-битным процессором. [6]
В августе 1983 года Брюс Скидмор, Рэймонд Д. Педрицетти, Дэйв Браун и Гордон Эдмондс объединились для создания PC-MODE [12], дополнительного модуля для Concurrent CP/M-86 3.1 [13] [14] (с BDOS 3.1) для обеспечения базовой совместимости с PC DOS 1.1 (и MS-DOS 1.1 ). [14] Это было публично продемонстрировано на выставке COMDEX в декабре 1983 года [12] и отправлено в марте 1984 года как Concurrent DOS 3.1 (также известная как CDOS с BDOS 3.1) поставщикам оборудования. [15] [16] Можно было запускать простые приложения DOS, которые не обращались напрямую к экрану или другому оборудованию. Например, хотя консольная программа, такая как PKZIP, работала отлично и предлагала больше возможностей, чем архиватор ARC , встроенный в CP/M , приложения, выполняющие манипуляции с экраном, такие как текстовый процессор WordStar для DOS, не могли этого сделать, и требовались встроенные версии Concurrent CP/M (или CP/M-86).
Хотя версии Concurrent DOS 3.1 и 4.1 были разработаны в США, OEM-адаптации и локализации выполнялись OEM-группой поддержки DR Europe в Ньюбери , Великобритания, [17] с 1983 года.
В 1985 году компания Digital Research позиционировала Concurrent DOS 4.1 с GEM как альтернативу TopView от IBM. [18]
Concurrent DOS 3.2 (с BDOS 3.2) в 1984 году был совместим с приложениями для CP/M-86 1.x, Concurrent CP/M-86 3.x и PC DOS 2.0. [17] Он был доступен для многих различных аппаратных платформ. Версия с IBM PC-совместимым BIOS/XIOS называлась Concurrent PC DOS 3.2. Кэтрин Стратински была менеджером по продукту Concurrent PC DOS.
Усилия, являющиеся частью сотрудничества с Motorola с 1984 года [19] [14], привели к разработке Concurrent DOS 68K в Остине , штат Техас, как преемника CP/M-68K, написанного на языке C. Одним из его главных архитекторов был Фрэнсис «Фрэнк» Р. Холсворт (использующий siglum FRH). [7] [8] Concurrent DOS 68K 1.0 стал доступен для оценки OEM в начале 1985 года. [20] [21] Проект получил значительное финансирование в размере нескольких миллионов долларов от Motorola [20] и был разработан для их процессоров 68000 / 68010. Как и более ранняя система GEMDOS для процессоров 68000, она изначально работала на системе разработки Motorola VME /10. [14] Конкурентный DOS 68K 1.20/1.21 был доступен в апреле 1986 года, [22] [23] [24] предлагался примерно за200 000 долларов для OEM-производителей. [20] Эта система эволюционировала во FlexOS 68K в конце 1986 года.
Известные версии включают в себя:
Параллельно с работой над Concurrent DOS 68K [20] компания Digital Research в сотрудничестве с Intel в январе 1985 года также представила Concurrent DOS 286 [25] . Она была основана на MP/M-286 и Concurrent CP/M-286, над которыми компания Digital Research работала с 1982 года. [26] [27]
Concurrent DOS 286 была полностью переписана на языке C , основанном на новой системной архитектуре с динамически загружаемыми драйверами устройств вместо статического BIOS или XIOS. [25] Одним из ее главных архитекторов был Фрэнсис «Фрэнк» Р. Холсворт. [7] [8] Операционная система должна была функционировать строго в собственном режиме 80286 , допуская многопользовательскую многозадачность в защищенном режиме при запуске эмуляции 8086. [28] [25] Пока это работало на этапе B-1 прототипных образцов чипа, Digital Research, с оценочными копиями своей операционной системы, уже отправленными в апреле, обнаружили проблемы с эмуляцией на этапе C-1 производственного уровня процессора в мае, что не позволило бы Concurrent DOS 286 запускать программное обеспечение 8086 в защищенном режиме. Выпуск Concurrent DOS 286 был запланирован на конец мая, но был отложен до тех пор, пока Intel не смогла разработать новую версию чипа. [28] В августе, после обширного тестирования образцов шага E-1 80286, Digital Research заявила, что Intel исправила все задокументированные ошибки 286 , но что все еще существуют недокументированные проблемы с производительностью чипа с предварительной версией Concurrent DOS 286, работающей на шаге E-1. Intel заявила, что подход, который Digital Research хотела использовать при эмуляции программного обеспечения 8086 в защищенном режиме, отличался от исходных спецификаций; тем не менее, они включили в шаг E-2 незначительные изменения в микрокоде , которые позволили Digital Research запустить режим эмуляции намного быстрее (см. LOADALL ). [29] [23] Эти же ограничения затронули FlexOS 286 версии 1.x, переработанную производную от Concurrent DOS 286, [30] [31] которая разрабатывалась новым подразделением гибкой автоматизации Digital Research в Монтерее, Калифорния, с 1986 года.
В более поздних версиях добавлена совместимость с PC DOS 2.x и 3.x.
Известные версии включают в себя:
В 1986 году группа поддержки OEM была переведена в недавно созданный компанией Digital Research Европейский центр разработок (EDC) в Хангерфорде , Великобритания , который приступил к дальнейшей разработке семейства Concurrent DOS, начиная с версии Concurrent DOS 4.11, включая такие родственные версии, как DOS Plus и их преемников.
Разработанные в Хангерфорде, Великобритания, версии 5 и 6 (Concurrent DOS XM, где XM означает Expanded Memory ) могли коммутировать до 8 МБ EEMS для создания среды реального режима для одновременного запуска нескольких программ CP/M-86 и DOS и поддерживать до трех пользователей (одного локального и до двух подключенных через последовательные терминалы).
В 1987 году Concurrent DOS 86 был переписан в Concurrent DOS 386, [33] по-прежнему являющийся продолжением классической архитектуры XIOS и BDOS. Он работал на машинах, оснащенных процессорами Intel 80386 и более поздними, используя аппаратные возможности 386 для виртуализации оборудования, позволяя большинству приложений DOS работать без изменений под Concurrent DOS 386, даже на терминалах. Операционная система поддерживала параллельный многопользовательский доступ к файлам, позволяя многопользовательским приложениям работать так, как если бы они находились на отдельных ПК, подключенных к сетевому серверу . Concurrent DOS 386 позволял одному серверу поддерживать несколько пользователей на немых терминалах или недорогих ПК с низкими характеристиками, работающих под управлением программного обеспечения эмуляции терминала, без необходимости в дорогих рабочих станциях и дорогих тогда сетевых картах. Это была настоящая многопользовательская система; несколько пользователей могли использовать одну базу данных с блокировкой записей для предотвращения взаимных помех.
Concurrent DOS 6.0 также стала отправной точкой для семейства DR DOS , которое было создано на ее основе.
Известные версии включают в себя:
Concurrent PC DOS XM 5.0 эмулировал IBM PC DOS 2.10, [41] тогда как Concurrent DOS XM 6.0 и Concurrent DOS 386 2.0 были совместимы с IBM PC DOS 3.30. [42]
Известные адаптации CCI Concurrent DOS от Concurrent Controls, Inc. включают:
Другие адаптации включают в себя:
Более поздние версии Concurrent DOS 386 включали в себя некоторые из расширенных функциональных возможностей более позднего однопользовательского клона PC DOS DR DOS 5.0 , после чего продукт получил более понятное название «Multiuser DOS» (также известное как MDOS), начиная с версии 5.0 (с BDOS 6.5) в 1991 году. [48]
Multiuser DOS страдал от нескольких технических ограничений, которые ограничивали его способность конкурировать с локальными сетями на базе PC DOS . Он требовал собственных специальных драйверов устройств для большинства распространенных аппаратных средств, поскольку драйверы PC DOS не были многопользовательскими или многозадачными. Установка драйвера была сложнее, чем простой метод PC DOS по копированию файлов на загрузочный диск и соответствующему изменению CONFIG.SYS — необходимо было перекомпоновать ядро Multiuser DOS (известное как ядро ) с помощью команды SYSGEN .
Многопользовательская DOS также не могла использовать многие распространенные дополнения PC DOS, такие как сетевые стеки , и была ограничена в своей способности поддерживать более поздние разработки в мире, совместимом с ПК, такие как графические адаптеры , звуковые карты , приводы CD-ROM и мыши. Хотя многие из них вскоре были исправлены — например, были разработаны графические терминалы, позволяющие пользователям использовать программное обеспечение CGA , EGA и VGA — она была менее гибкой в этом отношении, чем сеть отдельных ПК, и по мере того, как цены на них падали, она становилась все менее и менее конкурентоспособной, хотя она все еще предлагала преимущества с точки зрения управления и более низкой общей стоимости владения. Как многопользовательская операционная система ее цена была выше, чем у однопользовательской системы, конечно, и она требовала специальных драйверов устройств, в отличие от однопользовательских многозадачных дополнений DOS, таких как DESQview от Quarterdeck . В отличие от MP/M, она так и не стала популярной для однопользовательского, но многозадачного использования.
Когда в 1991 году Novell приобрела Digital Research [1] [2] [3] и отказалась от Multiuser DOS в 1992 году, трем ведущим VAR-компаниям DataPac Australasia, Concurrent Controls [4] и Intelligent Micro Software [5] было разрешено лицензировать исходный код системы, чтобы взять на себя управление и продолжить независимую разработку своих производных в 1994 году.
Известные версии включают в себя:
Все версии Digital Research и Novell DR Multiuser DOS называли себя «IBM PC DOS» версии 3.31.
Известные версии DataPac Australasia Pty Limited включают:
В 1997 году Datapac была куплена Citrix Systems, Inc. [ 52] [53] [54] и System Manager вскоре был заброшен. В 2002 году подразделение в Сиднее было выделено в Citrix' Advanced Products Group. [55]
Известные версии CCI Multiuser DOS от Concurrent Controls, Inc. (CCI) включают:
Все версии CCI Multiuser DOS сообщают о себе как о "IBM PC DOS" версии 3.31. [56] Подобно SETVER в DOS , это можно изменить с помощью утилиты Multiuser DOS DOSVER xy . [56]
В 1999 году CCI изменила свое название на Applica, Inc. [57] В 2002 году Applica Technology стала Aplycon Technologies, Inc. [58]
Известные адаптации IMS Multiuser DOS включают в себя:
Все версии IMS Multiuser DOS позиционируют себя как «IBM PC DOS» версии 3.31.
Intelligent Micro Software Ltd. (IMS) из Тэтчема , Великобритания, приобрела лицензию на дальнейшую разработку Multiuser DOS у Novell в 1994 году и переименовала свой продукт в REAL/32 в 1995 году. [5]
Подобно FlexOS / 4690 OS ранее, IBM в 1995 году лицензировала REAL/32 7.50 для ее установки в своих POS-терминалах 4695. [5] [ необходимо разъяснение ]
Версии IMS REAL/32:
REAL/32 7.50–7.74 сообщают о себе как о «IBM PC DOS» версии 3.31, тогда как 7.80 и выше сообщают о версии 6.20. Поддержка LBA и FAT32 была добавлена в REAL/32 7.90 в 1999 году. [62] 19 апреля 2002 года Intelligent Micro Software Ltd. подала заявление о банкротстве и была поглощена одним из ее основных клиентов, Itera Ltd. Барри Куиттентона. [66] [67] [68] Эта компания была распущена 28 марта 2006 года. [69] [70] По состоянию на 2010 год REAL/32 поставлялась Integrated Solutions из Тэтчема, Великобритания, но позже эта компания по тому же адресу была указана в качестве изготовителя. [65]
REAL/NG был попыткой IMS создать «следующее поколение» REAL/32, также называемое «REAL/32 для эпохи Интернета». REAL/NG обещал «расширенный диапазон оборудования от ПК до многопроцессорных серверных систем x86». [71]
Список заявленных функций по состоянию на 2003 год: [72]
К 10 декабря 2003 года IMS выпустила версию «REALNG V1.60-V1.19-V1.12», [73] которая, судя по интернет-архиву , является последней версией.
К 2005 году сайт realng.com был зеркалом основного сайта IMS и не содержал упоминания о REAL/NG, только REAL/32. [74]
В то время как различные выпуски этой операционной системы имели все большую возможность запускать программы DOS, программное обеспечение, написанное для платформы, могло использовать ее возможности, используя вызовы функций , специально подходящие для многопользовательской работы. Она использовала упреждающую многозадачность , не позволяя плохо написанным приложениям задерживать другие процессы, сохраняя контроль над процессором. По сей день многопользовательский DOS поддерживается популярными библиотеками SSL/TLS, такими как wolfSSL .
API обеспечивал поддержку блокирующих и неблокирующих очередей сообщений , очередей взаимного исключения, возможность создания потоков подпроцессов, которые выполнялись независимо от родительского процесса, и метод приостановки выполнения, который не тратил процессорные циклы , в отличие от циклов бездействия, используемых однопользовательскими операционными системами. Приложения запускались как «присоединенные» к консоли . Однако, если приложению не требовалось взаимодействие с пользователем, оно могло «отсоединиться» от консоли и работать как фоновый процесс , позже повторно присоединившись к консоли при необходимости.
Другой ключевой особенностью было то, что управление памятью поддерживало модель «общей» памяти для процессов (в дополнение к обычным моделям, доступным обычным программам DOS). В модели общей памяти разделы «кода» и «данных» программы были изолированы друг от друга. Поскольку «код» не содержал изменяемых данных, разделы кода в памяти могли совместно использоваться несколькими процессами, выполняющими одну и ту же программу, тем самым снижая требования к памяти.
Программы, написанные или адаптированные для любой многозадачной платформы, должны избегать техники, используемой однозадачными системами, когда они входят в бесконечные циклы до тех пор, пока их не прервут, например, ожидая нажатия клавиши пользователем; это тратит процессорное время, которое могло бы быть использовано другими процессами. Вместо этого Concurrent DOS предоставляет вызов API, который процесс может вызвать, чтобы «спать» в течение определенного периода времени. Более поздние версии ядра Concurrent DOS включают Idle Detection, который отслеживает вызовы DOS API, чтобы определить, выполняет ли приложение полезную работу или фактически простаивает, в этом случае процесс приостанавливается, позволяя работать другим процессам. Idle Detection стал катализатором запатентованной функции управления питанием DR-DOS Dynamic Idle Detection, изобретенной в 1989 году Роджером Аланом Гроссом и Джоном П. Константом и продаваемой как BatteryMAX . [75]
[…]
Digital Research
разрабатывает операционную систему для
286
.
MP/M-286
будет использовать преимущества управления памятью и защиты процессора, а также поддержку виртуальной памяти. Digital Research обещает "полную" совместимость со своими
MP/M-86
и
CP/M-86
для
процессора
8086.
Intel
поставляет Digital Research оборудование для разработки и тестирования MP/M-286. […]
[…] Пол Бейли из
Digital Research
горячо продвигает этот подход; именно его компания поставляет
ICL
и другим компаниям Concurrent Dos-286. Эта операционная система-хамелеон позволяет ICL и другим производителям
80286
создавать машины, которые смогут справляться со всем существующим корпусом программного обеспечения IBM-PC — и в то же время обещать многозадачность, работу с окнами и настоящий параллелизм, три функции, которые вместе позволяют одному микрокомпьютеру выполнять несколько задач одновременно. […] Хотя никаких четких заявлений сделано не было, кажется, что к концу года
ACT
предложит машину Concurrent CP/M 286, чтобы подстегнуть свой рывок на корпоративный рынок. Но к этому времени ей придется конкурировать с собственным офисным микрокомпьютером
IBM 80286, PC/AT. […] У IBM также есть программный продукт в ближайшем будущем, который может выбить почву из-под ног конкурентов Concurrent.
TopView
размером около 180 КБ
— это программа для IBM PC и AT, которая усиливает операционную систему, предоставляя возможности работы с окнами для существующих «хорошо себя ведущих» стандартных пакетов. […]
[…] Это руководство по работе компилятора High C, реализованного для операционной системы Concurrent DOS 286 1.2 или более поздней версии – далее сокращенно «Concurrent» в соответствии с требованиями Digital Research – работающего на микропроцессоре Intel 80286 и использующего формат Intel Object-Module Format (OMF). Компилятор генерирует код для любого семейства микропроцессоров Intel 8086/88/186/188/286. […]