Multiuser DOS es un sistema operativo multitarea y multiusuario en tiempo real para microcomputadoras compatibles con IBM PC .
Una evolución de los antiguos sistemas operativos Concurrent CP/M-86 , Concurrent DOS y Concurrent DOS 386 , fue desarrollado originalmente por Digital Research y adquirido y desarrollado por Novell en 1991. [1] [2] [3] Su ascendencia se encuentra en los anteriores sistemas operativos de 8 bits de Digital Research CP/M y MP/M , y el CP/M-86 de 16 bits de tarea única que evolucionó a partir de CP/M.
Cuando Novell abandonó Multiuser DOS en 1992, se permitió que los tres principales revendedores de valor agregado (VAR) DataPac Australasia, Concurrent Controls [4] e Intelligent Micro Software [5] tomaran el control y continuaran con el desarrollo independiente en Datapac Multiuser DOS y System Manager, CCI Multiuser DOS e IMS Multiuser DOS y REAL/32. [5]
La línea FlexOS , que evolucionó a partir de Concurrent DOS 286 y Concurrent DOS 68K , se vendió a Integrated Systems , Inc. (ISI) en julio de 1994.
La versión inicial de CP/M-86 1.0 (con BDOS 2.x) fue adaptada y se puso a disposición del IBM PC en 1982. No tuvo éxito comercial, ya que el PC DOS 1.0 de IBM ofrecía prácticamente las mismas prestaciones a un precio considerablemente inferior. Ni el PC DOS ni el CP/M-86 pudieron aprovechar al máximo la potencia y las capacidades de la nueva máquina de 16 bits.
Pronto se complementó con una implementación del "hermano mayor" multitarea de CP/M, el MP/M-86 2.0 , desde septiembre de 1981. Esto convirtió a un PC en una máquina multiusuario capaz de soportar múltiples usuarios concurrentes utilizando terminales tontos conectados por puertos serie . El entorno presentado a cada usuario hacía parecer como si tuvieran todo el ordenador para ellos solos. Dado que los terminales costaban una fracción del entonces sustancial precio de un PC completo, esto ofrecía un ahorro de costos considerable, además de facilitar aplicaciones multiusuario como contabilidad o control de stock en una época en la que las redes de PC eran raras, muy caras y difíciles de implementar.
CP/M-86 1.1 (con BDOS 2.2) y MP/M-86 2.1 se fusionaron para crear Concurrent CP/M-86 3.0 (también conocido como CCP/M-86) con BDOS 3.0 a finales de 1982. [6] Kathryn Strutynski , la directora de proyectos de CP/M-86, también fue la directora de proyectos de Concurrent CP/M-86. Uno de sus diseñadores fue Francis "Frank" R. Holsworth. [7] [8] Inicialmente, se trataba de un sistema operativo monousuario que admitía multitarea real de hasta cuatro programas compatibles con CP/M-86 (en su configuración predeterminada). Al igual que sus predecesores, podía configurarse para admitir varios procesadores (consulte, por ejemplo, Concurrent CP/M-86/80) y también añadía "pantallas virtuales" que permitían al operador cambiar entre las interacciones de varios programas. [6] Las versiones posteriores admitían terminales tontas y, por lo tanto, podían implementarse como sistemas multiusuario. La CP/M-86 3.1 (BDOS 3.1) concurrente se lanzó el 21 de febrero de 1984. [9]
En febrero de 1984, Digital Research también ofreció una versión de Concurrent CP/M-86 con capacidades de ventanas denominada Concurrent CP/M con Windows para IBM Personal Computer y Personal Computer XT . [10]
Esta era una adaptación de Concurrent CP/M-86 para las computadoras LSI-M4, LSI Octopus [11] y CAL PC. Estas máquinas tenían procesadores de 16 y 8 bits, porque en los primeros días de la computación personal de 16 bits, el software de 8 bits estaba más disponible y a menudo se ejecutaba más rápido que el software de 16 bits correspondiente. Concurrent CP/M-86/80 permitía a los usuarios ejecutar aplicaciones CP/M (8 bits) y CP/M-86 (16 bits). Cuando se ingresaba un comando, el sistema operativo ejecutaba la aplicación correspondiente en el procesador de 8 bits o de 16 bits, dependiendo de si el archivo ejecutable tenía una extensión .COM o .CMD . Emulaba un entorno CP/M para programas de 8 bits al traducir las llamadas del sistema CP/M en llamadas del sistema CP/M-86, que luego eran ejecutadas por el procesador de 16 bits. [6]
En agosto de 1983, Bruce Skidmore, Raymond D. Pedrizetti, Dave Brown y Gordon Edmonds se unieron para crear PC-MODE, [12] un módulo opcional para Concurrent CP/M-86 3.1 [13] [14] (con BDOS 3.1) para proporcionar compatibilidad básica con PC DOS 1.1 (y MS-DOS 1.1 ). [14] Esto se mostró públicamente en COMDEX en diciembre de 1983 [12] y se envió en marzo de 1984 como Concurrent DOS 3.1 (también conocido como CDOS con BDOS 3.1) a los proveedores de hardware. [15] [16] Se podían ejecutar aplicaciones DOS simples, que no accedían directamente a la pantalla u otro hardware. Por ejemplo, aunque un programa de consola como PKZIP funcionaba perfectamente y ofrecía más facilidades que el archivador ARC nativo de CP/M , las aplicaciones que realizaban manipulaciones de pantalla, como el procesador de textos WordStar para DOS, no lo hacían y se necesitaban versiones nativas de Concurrent CP/M (o CP/M-86).
Si bien Concurrent DOS 3.1 hasta 4.1 se habían desarrollado en los EE. UU., las adaptaciones y localizaciones OEM fueron realizadas por el Grupo de Soporte OEM de DR Europe en Newbury , Reino Unido, [17] desde 1983.
Digital Research posicionó Concurrent DOS 4.1 con GEM como alternativa para TopView de IBM en 1985. [18]
En 1984, Concurrent DOS 3.2 (con BDOS 3.2) era compatible con aplicaciones para CP/M-86 1.x, Concurrent CP/M-86 3.x y PC DOS 2.0. [17] Estaba disponible para muchas plataformas de hardware diferentes. La versión con BIOS/XIOS compatible con IBM PC se denominó Concurrent PC DOS 3.2. Kathryn Strutynski era la directora de producto de Concurrent PC DOS.
Los esfuerzos que forman parte de una cooperación con Motorola desde 1984 [19] [14] llevaron al desarrollo de Concurrent DOS 68K en Austin , Texas, como sucesor de CP/M-68K escrito en C. Uno de sus principales arquitectos fue Francis "Frank" R. Holsworth (usando siglum FRH). [7] [8] Concurrent DOS 68K 1.0 estuvo disponible para evaluación OEM a principios de 1985. [20] [21] El esfuerzo recibió una financiación considerable por valor de varios millones de dólares de Motorola [20] y fue diseñado para sus procesadores 68000 / 68010. Al igual que el sistema GEMDOS anterior para procesadores 68000, inicialmente se ejecutó en el sistema de desarrollo Motorola VME /10. [14] Concurrent DOS 68K 1.20/1.21 estuvo disponible en abril de 1986, [22] [23] [24] ofrecido por aproximadamente200 000 dólares para los OEM. [20] Este sistema evolucionó a FlexOS 68K a finales de 1986.
Las versiones conocidas incluyen:
Paralelamente al esfuerzo de Concurrent DOS 68K, [20] Digital Research también presentó una vista previa de Concurrent DOS 286 [25] en cooperación con Intel en enero de 1985. Este se basaba en MP/M-286 y Concurrent CP/M-286, en los que Digital Research había trabajado desde 1982. [26] [27]
Concurrent DOS 286 fue una reescritura completa en lenguaje C basada en una nueva arquitectura de sistema con controladores de dispositivos cargables dinámicamente en lugar de un BIOS estático o XIOS. [25] Uno de sus arquitectos principales fue Francis "Frank" R. Holsworth. [7] [8] El sistema operativo funcionaría estrictamente en modo nativo 80286 , permitiendo el modo protegido multiusuario , operación multitarea mientras se ejecuta la emulación 8086. [28] [25] Si bien esto funcionó en el paso B-1 de muestras de chips prototipo, Digital Research , con copias de evaluación de su sistema operativo ya enviadas en abril, descubrió problemas con la emulación en el paso C-1 del nivel de producción del procesador en mayo, lo que no permitiría que Concurrent DOS 286 ejecutara software 8086 en modo protegido. El lanzamiento de Concurrent DOS 286 había sido programado para fines de mayo, pero se retrasó hasta que Intel pudiera desarrollar una nueva versión del chip. [28] En agosto, después de realizar pruebas exhaustivas con muestras del paso E-1 del 80286, Digital Research dijo que Intel había corregido todas las erratas documentadas del 286 , pero que todavía había problemas de rendimiento del chip no documentados con la versión preliminar de Concurrent DOS 286 que se ejecutaba en el paso E-1. Intel dijo que el enfoque que Digital Research deseaba adoptar para emular el software del 8086 en modo protegido difería de las especificaciones originales; sin embargo, incorporaron en el paso E-2 cambios menores en el microcódigo que permitieron a Digital Research ejecutar el modo de emulación mucho más rápido (consulte LOADALL ). [29] [23] Estas mismas limitaciones afectaron a FlexOS 286 versión 1.x, una derivación rediseñada de Concurrent DOS 286, [30] [31] que fue desarrollada por la nueva Unidad de Negocios de Automatización Flexible de Digital Research en Monterey, California, desde 1986.
Las versiones posteriores agregaron compatibilidad con PC DOS 2.x y 3.x.
Las versiones conocidas incluyen:
El Grupo de Soporte OEM se trasladó al recién creado Centro de Desarrollo Europeo (EDC) de Digital Research en Hungerford , Reino Unido , en 1986, que comenzó a hacerse cargo del desarrollo de la familia Concurrent DOS desde Concurrent DOS 4.11, incluidos hermanos como DOS Plus y sucesores.
Desarrolladas en Hungerford, Reino Unido, las versiones 5 y 6 (Concurrent DOS XM, donde XM significa Expanded Memory ) podían almacenar hasta 8 MB de EEMS para proporcionar un entorno de modo real para ejecutar múltiples programas CP/M-86 y DOS simultáneamente y soportar hasta tres usuarios (uno local y hasta dos conectados a través de terminales seriales).
En 1987, Concurrent DOS 86 fue reescrito para convertirse en Concurrent DOS 386, [33] todavía una continuación de la arquitectura clásica XIOS y BDOS. Este se ejecutaba en máquinas equipadas con procesadores Intel 80386 y posteriores, utilizando las facilidades de hardware del 386 para virtualizar el hardware, lo que permitía que la mayoría de las aplicaciones DOS se ejecutaran sin modificaciones bajo Concurrent DOS 386, incluso en terminales. El sistema operativo admitía acceso a archivos multiusuario concurrente, lo que permitía que las aplicaciones multiusuario se ejecutaran como si estuvieran en PC individuales conectadas a un servidor de red . Concurrent DOS 386 permitía que un solo servidor admitiera una cantidad de usuarios en terminales tontas o PC económicas de baja especificación que ejecutaban software de emulación de terminal, sin la necesidad de estaciones de trabajo costosas y tarjetas de red, entonces costosas. Era un verdadero sistema multiusuario; varios usuarios podían usar una sola base de datos con bloqueo de registros para evitar interferencias mutuas.
Concurrent DOS 6.0 también representó el punto de partida para la familia DR DOS , que se creó a partir de él.
Las versiones conocidas incluyen:
Concurrent PC DOS XM 5.0 emulaba IBM PC DOS 2.10, [41] mientras que Concurrent DOS XM 6.0 y Concurrent DOS 386 2.0 eran compatibles con IBM PC DOS 3.30. [42]
Las adaptaciones conocidas de CCI Concurrent DOS realizadas por Concurrent Controls, Inc. incluyen:
Otras adaptaciones incluyen:
Las versiones posteriores de Concurrent DOS 386 incorporaron algunas de las funciones mejoradas del clon posterior de DR para PC DOS de un solo usuario, DR DOS 5.0 , después de lo cual el producto recibió el nombre más explicativo de "Multiuser DOS" (también conocido como MDOS), a partir de la versión 5.0 (con BDOS 6.5) en 1991. [48]
El DOS multiusuario adolecía de varias limitaciones técnicas que restringían su capacidad para competir con las redes LAN basadas en PC DOS . Requería sus propios controladores de dispositivos especiales para gran parte del hardware común, ya que los controladores de PC DOS no eran compatibles con multiusuario o multitarea. La instalación de controladores era más compleja que el simple método de PC DOS de copiar los archivos en el disco de arranque y modificar CONFIG.SYS de forma adecuada; era necesario volver a vincular el núcleo del DOS multiusuario (conocido como núcleo ) mediante el comando SYSGEN .
El DOS multiusuario tampoco podía utilizar muchos añadidos comunes del DOS para PC, como las pilas de red , y estaba limitado en su capacidad para soportar desarrollos posteriores en el mundo compatible con PC, como adaptadores gráficos , tarjetas de sonido , unidades de CD-ROM y ratones. Aunque muchos de estos problemas se rectificaron pronto —por ejemplo, se desarrollaron terminales gráficos que permitían a los usuarios utilizar software CGA , EGA y VGA— , era menos flexible en este sentido que una red de PC individuales, y a medida que los precios de estos bajaban, se volvía cada vez menos competitivo, aunque seguía ofreciendo ventajas en términos de gestión y menor coste total de propiedad. Como sistema operativo multiusuario su precio era más alto que el de un sistema monousuario, por supuesto, y requería controladores de dispositivos especiales, a diferencia de los complementos multitarea para DOS monousuario como DESQview de Quarterdeck . A diferencia de MP/M, nunca llegó a ser popular para uso monousuario sino multitarea.
Cuando Novell adquirió Digital Research en 1991 [1] [2] [3] y abandonó Multiuser DOS en 1992, a los tres Master VAR DataPac Australasia, Concurrent Controls [4] e Intelligent Micro Software [5] se les permitió licenciar el código fuente del sistema para hacerse cargo y continuar el desarrollo independiente de sus derivaciones en 1994.
Las versiones conocidas incluyen:
Todas las versiones de Digital Research y Novell DR Multiuser DOS se reportaron como "IBM PC DOS" versión 3.31.
Las versiones conocidas de DataPac Australasia Pty Limited incluyen:
En 1997, Citrix Systems, Inc. compró Datapac [52] [53] [54] y poco después abandonó System Manager. En 2002, la unidad con sede en Sydney se escindió y se convirtió en el Grupo de Productos Avanzados de Citrix [55] .
Las versiones conocidas de CCI Multiuser DOS de Concurrent Controls, Inc. (CCI) incluyen:
Todas las versiones de CCI Multiuser DOS se informan como "IBM PC DOS" versión 3.31. [56] De manera similar a SETVER en DOS , esto se puede cambiar utilizando la utilidad Multiuser DOS DOSVER xy . [56]
En 1999, CCI cambió su nombre a Applica, Inc. [57] En 2002, Applica Technology se convirtió en Aplycon Technologies, Inc. [58]
Las adaptaciones conocidas de IMS Multiuser DOS incluyen:
Todas las versiones de IMS Multiuser DOS se informan como "IBM PC DOS" versión 3.31.
Intelligent Micro Software Ltd. (IMS) de Thatcham , Reino Unido, adquirió una licencia para desarrollar aún más el DOS multiusuario de Novell en 1994 y renombró su producto REAL/32 en 1995. [5]
Similar al sistema operativo FlexOS / 4690 anterior, IBM en 1995 licenció REAL/32 7.50 para incluirlo en sus terminales POS 4695. [5] [ aclaración necesaria ]
Versiones de IMS REAL/32:
REAL/32 7.50 a 7.74 se identifican como la versión 3.31 de "IBM PC DOS", mientras que 7.80 y superiores se identifican como la versión 6.20. La compatibilidad con LBA y FAT32 se añadió con REAL/32 7.90 en 1999. [62] El 19 de abril de 2002, Intelligent Micro Software Ltd. se declaró en quiebra y fue absorbida por uno de sus principales clientes, Itera Ltd. de Barry Quittenton. [66] [67] [68] Esta empresa se disolvió el 28 de marzo de 2006. [69] [70] A partir de 2010, REAL/32 era suministrado por Integrated Solutions de Thatcham, Reino Unido, pero la empresa, con la misma dirección, fue posteriormente incluida como constructora. [65]
REAL/NG fue el intento de IMS de crear la "próxima generación" de REAL/32, también llamado "REAL/32 para la era de Internet". REAL/NG prometía "una gama más amplia de hardware, desde PC hasta sistemas de servidor multiprocesador x86". [71]
Lista de características anunciadas, a partir de 2003: [72]
El 10 de diciembre de 2003, IMS puso a disposición "REALNG V1.60-V1.19-V1.12", [73] que, según Internet Archive , parece ser la última versión.
En 2005, el sitio web realng.com reflejaba el sitio web principal de IMS y no mencionaba REAL/NG, solo REAL/32. [74]
Si bien las distintas versiones de este sistema operativo tenían una capacidad cada vez mayor para ejecutar programas DOS, el software escrito para la plataforma podía aprovechar sus características mediante llamadas a funciones específicamente adecuadas para operaciones multiusuario. Utilizaba multitarea preventiva , lo que impedía que aplicaciones mal escritas retrasaran otros procesos al retener el control del procesador. Hasta el día de hoy, el DOS multiusuario es compatible con bibliotecas SSL/TLS populares como wolfSSL .
La API brindaba soporte para colas de mensajes bloqueantes y no bloqueantes , colas de exclusión mutua, la capacidad de crear subprocesos de subprocesos que se ejecutaban independientemente del principal y un método para pausar la ejecución que no desperdiciaba ciclos de procesador , a diferencia de los bucles inactivos utilizados por los sistemas operativos de un solo usuario. Las aplicaciones se iniciaban como "adjuntas" a una consola . Sin embargo, si una aplicación no necesitaba la interacción del usuario, podía "desprenderse" de la consola y ejecutarse como un proceso en segundo plano , para luego volver a adjuntarse a una consola si era necesario.
Otra característica clave era que la gestión de memoria admitía un modelo de memoria "compartida" para los procesos (además de los modelos habituales disponibles para los programas DOS normales). En el modelo de memoria compartida, las secciones de "código" y "datos" de un programa estaban aisladas entre sí. Como el "código" no contenía datos modificables, las secciones de código en memoria podían ser compartidas por varios procesos que ejecutaban el mismo programa, lo que reducía los requisitos de memoria.
Los programas escritos o adaptados para cualquier plataforma multitarea deben evitar la técnica utilizada por los sistemas monotarea de entrar en bucles infinitos hasta que se interrumpe cuando, por ejemplo, se espera que un usuario presione una tecla; esto desperdicia tiempo de procesador que podría ser utilizado por otros procesos. En su lugar, Concurrent DOS proporcionó una llamada API que un proceso podía llamar para "dormir" durante un período de tiempo. Las versiones posteriores del núcleo Concurrent DOS incluyeron Idle Detection, que monitoreaba las llamadas API de DOS para determinar si la aplicación estaba realizando un trabajo útil o de hecho estaba inactiva, en cuyo caso el proceso se suspendía permitiendo que otros procesos se ejecutaran. Idle Detection fue el catalizador para la función de administración de energía patentada DR-DOS Dynamic Idle Detection inventada en 1989 por Roger Alan Gross y John P. Constant y comercializada como BatteryMAX . [75]
[…]
Digital Research
está produciendo un sistema operativo para el
286
.
El MP/M-286
aprovechará la gestión y protección de la memoria del procesador y el soporte de memoria virtual. Digital Research promete una compatibilidad "completa" con su
MP/M-86
y
CP/M-86
para el
procesador
8086.
Intel
está suministrando a Digital Research el hardware para desarrollar y probar el MP/M-286. […]
…] Paul Bailey de
Digital Research
promueve con entusiasmo este enfoque; es su empresa la que está suministrando
a ICL
y otras empresas Concurrent Dos-286. Este sistema operativo camaleónico permite a ICL y otros fabricantes
de 80286
construir máquinas que podrán hacer frente a todo el conjunto existente de software IBM-PC y, al mismo tiempo, prometer multitarea, ventanas y verdadera concurrencia, tres características que juntas permiten que un solo micro haga varias cosas a la vez. […] Aunque no se han hecho anuncios firmes, parece seguro que para finales de año
ACT
ofrecerá una máquina Concurrent CP/M 286 para impulsar su impulso en el mercado corporativo. Pero para entonces tendrá que competir con el microordenador de oficina 80286 de
IBM
, el PC/AT. […] IBM también tiene en ciernes un producto de software que podría dejar en ridículo a los contendientes de Concurrent.
TopView
, de unos 180K de tamaño, es un programa para IBM PC y AT que refuerza el sistema operativo para proporcionar funciones de ventanas para los paquetes estándar existentes que se comportan bien. […]
[…] Esta es una guía para el funcionamiento del compilador High C implementado para el sistema operativo Concurrent DOS 286 1.2 o posterior (en adelante abreviado simplemente como "Concurrent" según la costumbre de Digital Research) que se ejecuta en el microprocesador Intel 80286 y utiliza el formato Intel Object-Module Format (OMF). El compilador genera código para cualquiera de los microprocesadores de la familia Intel 8086/88/186/188/286. […]