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 отказалась от многопользовательской 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 году. Она не имела коммерческого успеха, поскольку IBM PC DOS 1.0 предлагала почти те же возможности по значительно более низкой цене. . Ни 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 with Windows для персональных компьютеров IBM и Personal Computer XT . [10]
Это была адаптация Concurrent CP/M-86 для компьютеров LSI-M4, LSI Octopus [11] и CAL PC. Эти машины имели как 16-битные, так и 8-битные процессоры, поскольку на заре 16-битных персональных компьютеров 8-битное программное обеспечение было более доступным и часто работало быстрее, чем соответствующее 16-битное программное обеспечение. Параллельное использование 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 как альтернативу IBM TopView . [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] В конце 1986 года эта система превратилась в FlexOS 68K .
Известные версии включают:
Параллельно с разработкой Concurrent DOS 68K [20] компания Digital Research также представила Concurrent DOS 286 [25] в сотрудничестве с Intel в январе 1985 года. Она была основана на MP/M-286 и Concurrent CP/M-286, на которых Digital Исследования работали с 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, работающей на Е-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.
Известные версии включают:
Группа поддержки OEM была переведена в недавно созданный Европейский центр развития (EDC) компании Digital Research в Хангерфорде , Великобритания , в 1986 году, который начал заниматься дальнейшей разработкой семейства Concurrent DOS, начиная с Concurrent DOS 4.11, включая таких братьев и сестер, как DOS Plus и преемников.
Разработанные в Хангерфорде, Великобритания, версии 5 и 6 (Concurrent DOS XM, где XM означает расширенную память ) могут коммутировать до 8 МБ EEMS , чтобы обеспечить среду реального режима для одновременного запуска нескольких программ CP / M-86 и DOS. и поддержка до трех пользователей (один локальный и до двух, подключенных через последовательные терминалы).
В 1987 году Concurrent DOS 86 была переписана и стала Concurrent DOS 386, [33] по-прежнему продолжая классическую архитектуру XIOS и BDOS. Это работало на машинах, оснащенных процессорами Intel 80386 и более поздних версий, с использованием аппаратных средств 386 для виртуализации оборудования, что позволяло большинству приложений DOS запускаться без изменений под Concurrent DOS 386 даже на терминалах. ОС поддерживала одновременный многопользовательский доступ к файлам, позволяя запускать многопользовательские приложения так, как если бы они находились на отдельных ПК, подключенных к сетевому серверу . Параллельная 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 включали в себя некоторые расширенные функциональные возможности более позднего однопользовательского клона DOS для ПК DR DOS 5.0 , после чего продукту было присвоено более пояснительное имя «Multiuser DOS» (также известное как MDOS), начиная с версии 5.0 (с БДОС 6.5) в 1991 году. [48]
Многопользовательская DOS страдала от нескольких технических ограничений, которые ограничивали ее способность конкурировать с локальными сетями, основанными на PC DOS . Для большинства распространенных аппаратных средств требовались собственные специальные драйверы устройств , поскольку драйверы DOS для ПК не поддерживали многопользовательскую или многозадачную работу. Установка драйвера была более сложной, чем простой метод PC DOS, заключающийся в копировании файлов на загрузочный диск и соответствующем изменении CONFIG.SYS — необходимо было перекомпоновать многопользовательское ядро DOS (известное как ядро ) с помощью команды SYSGEN .
Многопользовательская DOS также не могла использовать многие распространенные дополнения DOS для ПК, такие как сетевые стеки , и была ограничена в своих возможностях поддержки более поздних разработок в мире, совместимом с ПК, таких как графические адаптеры , звуковые карты , приводы CD-ROM и мыши. Хотя многие из этих недостатков вскоре были исправлены (например, были разработаны графические терминалы, позволяющие пользователям использовать программное обеспечение CGA , EGA и VGA ), в этом отношении она была менее гибкой, чем сеть отдельных ПК, и по мере падения цен на них она становился все менее и менее конкурентоспособным, хотя по-прежнему предлагал преимущества с точки зрения управления и более низкую совокупную стоимость владения. Конечно, как многопользовательская операционная система, ее цена была выше, чем однопользовательская система, и для нее требовались специальные драйверы устройств, в отличие от однопользовательских многозадачных надстроек DOS, таких как DESQview от Quarterdeck . В отличие от MP/M, он так и не стал популярным для однопользовательского, но многозадачного использования.
Когда Novell приобрела Digital Research в 1991 году [1] [2] [3] и отказалась от многопользовательской DOS в 1992 году, трем Master 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 , это можно изменить с помощью многопользовательской утилиты 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) из Тэтчема, Великобритания, приобрела лицензию на дальнейшую разработку многопользовательской DOS у Novell в 1994 году и переименовала свой продукт в REAL/32 в 1995 году. [5]
Подобно предыдущей ОС FlexOS / 4690 , 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 включали функцию обнаружения простоя, которая отслеживала вызовы API DOS , чтобы определить, выполняет ли приложение полезную работу или фактически простаивает, и в этом случае процесс приостанавливается, позволяя запускаться другим процессам. Обнаружение простоя стало катализатором для запатентованной функции управления питанием 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. Формат объектного модуля (OMF).
Компилятор генерирует код для любого микропроцессора Intel 8086/88/186/188/286.
[…]