Microsoft libera el código fuente de MS-DOS 1.25 y 2.0 al Museo de Historia de la Computación
Esto es Genial, tengo mis primeros recuerdos informáticos, marcados por la pantalla negra y el cursor intermitente de MS-DOS. Mi padre, me enseñó a navegar por directorios con comandos como "dir", y "cd NombreDeCarpeta" cuando era muy pequeño, ya que en la casa de mi abuela habia un computador Olivetti con un Intel 386, que tenia mi tia para su trabajo. Recuerdo que lo primero que vi en ese monitor monocromatico era el juego Gorillas aun que en ese momento, no sabia ni como se jugaba, pero fue ahi donde partio todo. Para mí, MS-DOS representa no solo un hito tecnológico, sino también una conexión emocional con mis primeros pasos en el mundo digital. Cuando encontré este artículo del Museo de Historia de la Computación, supe inmediatamente que debía compartirlo.
Software Gems: Serie de código fuente históricos del Computer History Museum
IBM hizo algo muy inusual para su Computadora Personal de 1981
La IBM PC original.
En lugar de usar componentes propietarios de IBM desarrollados para sus muchas otras computadoras, IBM PC utilizó piezas comerciales estándar de la industria. Eso incluyó la adopción del microprocesador Intel 8088 como el corazón de la computadora.
Esta actitud de "externalización" se extendió también al software. Aunque IBM contaba con prodigiosos recursos internos de desarrollo de software, para la nueva PC apoyaron únicamente sistemas operativos que no escribieron ellos mismos, como el CP/M-86 de Digital Research en Pacific Grove CA, y el P-System basado en Pascal de la Universidad de California en San Diego. Pero su sistema operativo favorito fue el recién escrito PC DOS, encargado por IBM a la empresa de software Microsoft, con sede en Seattle y de apenas cinco años de antigüedad.
Cuando Microsoft firmó el contrato con IBM en noviembre de 1980, no tenían tal sistema operativo. Ellos también lo externalizaron, primero licenciando y luego comprando un sistema operativo de Seattle Computer Products llamado alternativamente QDOS ("Quick and Dirty Operating System" o "Sistema Operativo Rápido y Sucio") y 86-DOS.
Un conjunto de disquetes para MS-DOS 2.0.
La versión 1.0 de PC DOS, que solo soportaba disquetes, se envió cuando IBM lanzó su PC en agosto de 1981. Microsoft luego reescribió sustancialmente el software para soportar subdirectorios y discos duros; la versión 2.0 se lanzó con la IBM PC-XT en marzo de 1983.
Microsoft retuvo los derechos del sistema operativo y lo licenció a otros fabricantes de computadoras, llamándolo MS-DOS. Con el permiso de Microsoft Corporation, el Museo de Historia de la Computación se complace en poner a disposición el código fuente y objeto del sistema operativo MS-DOS de Microsoft versiones 1.1 y 2.0, para uso no comercial.
El archivo zip contiene cuatro subdirectorios:
- v11source: 7 archivos de código ensamblador y un correo electrónico explicativo de Tim Paterson
- v11object: 27 archivos, algunos programas binarios y algunos programas de ejemplo
- v20source: 118 archivos de texto, principalmente código ensamblador y algo de documentación
- v20object: 38 archivos, algunos binarios y algo de documentación
Para acceder a este material, debe aceptar los términos de la licencia que se muestra aquí, que permite solo el uso no comercial y no le otorga el derecho de licenciarlo a terceros publicando copias en otros lugares de la web.
Descargar Microsoft DOS V1.1 y V2.0 Source Code
Más sobre los orígenes de MS-DOS
Empezando desde cero?, NO
El sistema operativo más popular para pequeñas microcomputadoras a finales de los años 70 era CP/M, escrito por Gary Kildall alrededor de 1974 y comercializado por la empresa que fundó, Digital Research, Inc. IBM visitó Digital Research en agosto de 1980 – algunos dicen que por sugerencia de Bill Gates – para investigar el uso de "CP/M-86", su próxima versión para el procesador Intel 8088/8086 de 16 bits, en su IBM Personal Computer en ese entonces en desarrollo. Pero no pudieron llegar a un acuerdo sobre los términos de licencia, así que IBM se fue y buscó otras opciones.
Tim Paterson en 1986
IBM ya había contratado a Microsoft para proporcionar un intérprete BASIC para la PC, así que les pidieron que investigaran también proporcionar el sistema operativo. Microsoft propuso licenciar "86-DOS", que había sido escrito por Tim Paterson en Seattle Computer Products (SCP) para su kit de computadora basado en 8086 porque la versión de 16 bits de CP/M se estaba retrasando.
Cuando SCP firmó el acuerdo de licencia con Microsoft, no sabían con certeza quién era el fabricante de computadoras. Paterson dijo "Todos sospechábamos que era IBM con quien Microsoft estaba tratando, pero no lo sabíamos con certeza". Dejó SCP para trabajar para Microsoft en 1981. "El primer día en el trabajo entro por la puerta y '¡Hey! Es IBM'."
Microsoft originalmente licenció 86-DOS en diciembre de 1980 por una tarifa fija de $25,000. Para el verano siguiente reconocieron la importancia de ser propietarios y poder licenciarlo a otras compañías que hacían clones de IBM-PC, así que compraron todos los derechos por $50,000 adicionales.
Durante los siguientes 11 meses, Paterson trabajó para Microsoft, interactuando intensamente con los ingenieros de IBM que desarrollaban la PC en Boca Raton, Florida. La versión 1.0 de PC-DOS se completó en julio de 1981, un mes antes del anuncio de la IBM PC.
SCP posteriormente demandó a Microsoft, alegando que habían ocultado su relación con IBM para comprar el sistema operativo a bajo precio. SCP finalmente llegó a un acuerdo extrajudicial por casi $1M.
MS-DOS ≠ CP/M
Había muchas similitudes entre CP/M y MS-DOS. Inspirado en el CP/M de 8 bits, el sistema operativo de 16 bits de Paterson utilizaba comandos similares y algunas de las mismas interfaces de programación, pero era una implementación interna diferente y utilizaba formatos de almacenamiento de archivos diferentes.
En Digital Research, la opinión de Gary Kildall era que MS-DOS infringía sus derechos de autor para CP/M. Estaba furioso y se enfrentó tanto a Bill Gates en Microsoft como a IBM, pero su abogado le recomendó no presentar una demanda. "En lugar de demandar, Kildall acordó licenciar CP/M a Big Blue. Pero quedó pasmado cuando, al lanzarse la PC, IBM cobraba $240 por copia de CP/M, y solo $40 por MS-DOS". No hace falta decir que la oferta de Microsoft se convirtió en el sistema operativo dominante para la IBM PC.
Paterson negó cualquier irregularidad. "Le dije [a Kildall] que no copié nada. Simplemente tomé su documentación impresa e hice algo que hacía lo mismo".
Treinta años después, Bob Zeidman, un programador y experto en casos de propiedad intelectual de software, realizó un examen forense detallado del código de QDOS, CP/M y PC-DOS. ¿Su conclusión? "QDOS absolutamente no fue copiado de CP/M, y MS-DOS no mostró signos de copia tampoco. Las acusaciones de Kildall sobre Bill Gates eran totalmente infundadas".
De PC-DOS 1.0 a MS-DOS 2.0 y más allá
La versión 1.0 de PC-DOS se lanzó con la primera IBM PC en agosto de 1981. La versión 1.1, que soportaba unidades de disquete de doble cara (320 KB), se lanzó en mayo de 1982.
Mientras tanto, un equipo de programadores de Microsoft que incluía al cofundador de la empresa Paul Allen estaba trabajando en una revisión importante para agregar subdirectorios jerárquicos y para soportar los discos duros que estarían disponibles en la IBM PC-XT. DOS 2.0 era casi el doble de grande que DOS 1.0, utilizando 28 Kbytes de memoria en lugar de 12 Kbytes. Se envió en marzo de 1983 con la PC-XT como PC-DOS 2.0, y se lanzó a otros fabricantes de computadoras como MS-DOS 2.0.
MS-DOS continuó siendo mejorado hasta finales de los años 90, momento en el que Windows y otros sistemas operativos avanzados con interfaces gráficas de usuario habían tomado el relevo.
Lo que hacían las primeras versiones de MS-DOS
Un sistema operativo que cabe en 12 o 28 Kbytes de memoria es muy diferente de los grandes y complejos sistemas operativos que usamos hoy.
La pantalla de inicio de MS DOS 2.0 en una IBM PC.
MS-DOS era básicamente un administrador de archivos y un simple cargador de programas. La interfaz de usuario eran comandos de texto escritos en un teclado, seguidos de respuestas de texto mostradas en la pantalla. No había salida gráfica, ni ratón para la entrada. Solo un programa de aplicación de usuario podía ejecutarse a la vez. Los nombres de archivos estaban limitados a 8 caracteres, más una extensión de 3 caracteres que indicaba el tipo de archivo. Había comandos como "dir" para listar los archivos en un directorio, y "del" para eliminar un archivo; se ejecutaba un programa escribiendo el nombre de su archivo ejecutable.
Además de agregar directorios jerárquicos y soporte para disco duro, la versión reescrita 2.0 incluía muchas otras características nuevas: controladores de dispositivos instalables para soportar la creciente lista de dispositivos periféricos disponibles como impresoras, procesos en segundo plano ("terminar y permanecer residentes") que permitían el almacenamiento en buffer de impresión, redirección que permitía que la salida de un programa fuera la entrada de otro, y soporte para disquetes de 9 sectores que aumentaban la capacidad de 320 KB a 360 KB.
A pesar de sus primitivas facilidades, durante quince años DOS fue la base sobre la cual dependían miles de programas de aplicación que se ejecutaban en millones de IBM PCs y clones de PC.
Agradecimientos
Tuve el código fuente de la versión 2.0 en disquetes de 5" en mi ático durante 30 años, pero necesitábamos el permiso de Microsoft para publicarlo. Estamos muy agradecidos a Roy Levin, Director General de Microsoft Research, Silicon Valley, por trabajar muchos meses para hacer que eso sucediera.
Pero no tenía el código fuente de la versión anterior 1.1, y aparentemente Microsoft tampoco. Justo cuando estaba terminando el primer borrador de este artículo, ¡lo recibí directamente del autor, Tim Paterson! Estamos agradecidos a Tim por enviarlo, y a Roy por obtener rápidamente el permiso adicional necesario para publicarlo también.
Este post es una traducción y adaptación del artículo original "Microsoft MS-DOS early source code" escrito por Len Shustek y publicado el 25 de marzo de 2014 en el blog del Computer History Museum.