viernes, 14 de diciembre de 2012

El camino a los ordenadores personales: El CP/M


Índices: El camino al O.P.       Historia de la Informática


Gary Kildall nació en 1941, y falleció en 1994 en un accidente poco investigado, parece que tuvo una pelea en un bar y se dio un golpe en la cabeza, pero no recordaba nada de esto, acudió dos veces al hospital sin encontrarle nada, pero falleció a los tres días. Su padre era un antiguo oficial de la marina Noruega, que ejercía de profesor naval en Seattle, estado de Washington (no confundir con la capital Washington DC, ciudad situada cerca de la costa del Atlántico, el estado está en la costa del pacífico justo debajo de Canadá). Su madre era Canadiense de ascendencia Sueca.  

Asistió a la Universidad de Washington con vocación de profesor de matemáticas, pero se enamoró de la nueva tecnología informática. Después fue profesor en la Escuela Naval de Postgrado (NPS), en Monterey (California), muy cerca de Silicon Valley. Kildall conoció la disponibilidad del primer microprocesador, el Intel 4004, llamó ràidamente a Intel, compró uno de los procesadores y comenzó a escribir programas, trabajando en la propia Intel como consultor en sus días libres para estar mas cerca de la información. Regresó unos meses en 1972 a la Universidad de Washington, para terminar su doctorado en ciencias de la computación. A su regreso publicó varios artículos sobre compiladores y análisis de flujos de datos, usando en sus pruebas un sistema Intellec prestado por Intel, para el desarrollo bajo 80088080, para los que desarrolló una variante del PL/I (Program Leguaje/One) de la IBM, a la que denominó PL/M (Program Leguaje/Microcomputer).

Kindall y Dorothy (fuente: atariarchives.org)

Usando PL/M, en 1973 Kildall comenzó a trabajar en un sistema operativo de disco para las Intelec con unidad de disco flexible, del que surgió el CP/M, originalmente por Control Program/Monitor (un monitor es un programa que permite ver y modificar la memoria de un ordenador, lo que se usaba para escribir programas en código máquina), pero luego lo cambio a Control Program/Microcomputer. Intel le compró el PL/M y lo comercializó, pero no estuvo interesada en su sistema operativo.

Kildall dejó la escuela naval, y junto a su esposa Dorothy crearon una empresa, originalmente llamada "Intergalactic Digital Research", que cambió luego por Digital Research, Inc., y comenzaron a vender su CP/M para la IMSAI 8080 a través de anuncios en revistas. Pronto fue un éxito, y tuvo que adaptarlo a muchos sistemas diferentes, lo que le llevó a intentar simplificar su desarrollo, dividiendo el sistema en tres partes, así solo debía adaptar la parte mas pequeña de las tres a cada máquina en concreto: 
  • CCP (command control processor, el intérprete de comandos, que era estándar)
  • BDOS (basic disk operating system, el sistema de archivos, que era estándar)
  • BIOS (basic input/output system, las rutinas de manejo del hardware, dependientes de la máquina)
El sistema de archivo estaba pensado para disqueteras de baja densidad. Los nombres de archivos se especifica como una cadena de hasta ocho caracteres, seguido de un punto, seguido de una extensión de nombre de archivo de uno a tres caracteres, donde la extensión identifica el tipo de contenido del archivo. Cada unidad de disco se identifica por una letra empezando por la A. Para hacer referencia a un archivo en una unidad específica, se indica la letra, seguida de dos puntos, el nombre del archivo, un punto, y su extensión. Si no se indica unidad se usa la predeterminada. El tamaño de cada archivo se especifica como el número de sectores que ocupa y no por su tamaño real (originalmente registros de 128 bytes, el tamaño de un sector de disco de 8 pulgadas), guardando este número el sistema operativo en el bloque de control de archivos (FCB). Como programas como los editores de texto tratan los archivos como secuencias de caracteres en lugar de secuencias de registros, marcan el final real de los datos con una carácter especial (Ctrl-Z, ASCII SUB, hexadecimal 1A). Con la llegada de los disquetes de alta capacidad y de los discos fijos, se modificó el tamaño del bloque, pasando a ser un bloque lógico en lugar de uno físico, que pasó a ser de 1Kb, luego 2Kb, y creció hasta ocupar 32Kb, lo que hacia muy poco eficiente al sistema si guardaba muchos ficheros pequeños. La fecha y hora de la última modificación de un archivo no apareció hasta la versión 2.2, pero por compatibilidad era una característica opcional.

El disco se formateaba usando la primera parte como directorio, guardando espacio para 256 ficheros, al no existir sub-directorios, ese era un máximo que no se podía superar (y era casi imposible hacerlo en su momento aunque hoy día llenemos discos de Teras como si nada), pero luego se crearon 16 áreas de usuario para organizar los archivos en los discos en sistemas multi-usuario, cada usuario podía acceder solo a su área y a un área común (por lo que solo permitía hasta 15 usuarios, nuevamente mucho mas de lo que las máquinas del momento soportaban). Esto permitió mejorar el manejo de los discos duros, ya que se podían suplir los sub-directorios con el manejo de las 16 áreas.

El CP/M corriendo en un Otrona Attaché (Fuente: z80.eu)
El éxito fue muy grande, Kindall se vio sorprendido, tardó en adaptar sus sistema a los nuevos disquetes de alta densidad y los discos duros, hasta que los fabricantes se unieron para lanzar su propia versión, por lo que Kildall tuvo que darse prisa, pero lanzó el CP/M versión 2, lo que acabó haciéndole el dueño indiscutible del mercado de los microcomputadores que usaban procesadores compatibles con el 8080 (el Intel 8080, el Zilog Z80 y el Intel 8086), o de los que aceptaban tarjetas de ampliación para correrlo (como el Apple II). En 1981, en ​la cima de su popularidad, CP/M estaba disponible para 3.000 modelos de ordenador diferentes, y su empresa vendía por valor de 5,4 millones de dólares al año.

Cuando en 1980 IBM se disponía a lanzar su IBM PC pensaron en usar BASIC y CP/M, y fueron a ver a Microsoft pensado que ambos eran suyos, pero este Bill Gates les envió a Digital Research. Cuando acudieron, según dicen las leyendas urbanas Kildall les hizo esperar varias horas para irse a volar en su avioneta, lo que disgustó a la IBM abandonando la idea. Pero la versión mas cierta parece ser otra, ya que las conversaciones las llevaba su mujer Dorothy, directora comercial de la empresa, ella les recibió mientras Gary viajaba a visitar en su avión privado, al que le gustaba pilotar, a un importante cliente. A ella no le gustó la petición de IBM de firmar un acuerdo de no divulgación estándar, por lo que llamó a sus abogados. Cuando llegó Gary, no puso pegas por el contrato y firmaron, pero no le convenció lo que le ofrecieron, 200.000$ mas 10$ por máquina vendida, el disponía de un avión, tres coches de lujo, dos formula uno, varias casas, y lo dejó pasar. IBM volvió a hablar con Microsoft, donde Bill Gates vio la oportunidad, compró un clon de CP/M llamado QDOS (Quick and Dirty Operating System, sistema operativo rápido y sucio) escrito por Tim Paterson, y se lo licenció a IBM como el MS-DOS.

El IBM PC ocasionó la muerte de los anteriores ordenadores, y MS.DOS tomó el relevo al CP/M, a pesar de los intentos de Gary, que no quería interponer un pleito por plagio, sabía que era difícil de demostrar y no le gustaba la idea de pleitear, aunque al final lo hizo y llegó a un acuerdo con IBM en 1981, esta vendería  MS.DOS o CP/M-86, lo que eligieran los usuarios (aunque el precio del CP/M era seis veces mayor por lo que no vendió casi ninguno). Luego lanzó una versión mejorara y compatible del MS.DOS, el DR-DOS 3.41, pero tampoco consiguió imponerse, y acabó vendiendo en 1991 Digital Research a Novell por "solo" 120 millones de dólares.

Otro desarrollo suyo fue el GEM Desktop, lanzado en 1985, el primer entorno de ventanas para DR-DOS y MS.DOS. No tuvo demasiado éxito, pero se usó luego en los ordenadores Atari ST, y fue la base del programa Ventura Publisher.

Los primeros programas de mucho éxtio para uso personal, el procesador de texto WordStar (nunca olvidaré los comandos de punto) y la base de datos dBase II (no existió dBase I, el nombre fue elegido para parecer mas avanzado), fueron originalmente escritos para CP/M. Existen versiones de CP/M para el Intel 8086 de 16 bits denominada CP/M-86, una versión para microprocesadores Motorola 68000 llamada CP/M-68k,  hay una versión para el Zilog Z8000, e incluso existe versión multi-usuario y multi-tarea denominada MP/M.

Cartucho de CP/M para el Commodore 64 (fuente: blogsdelagente.com)

Entre las máquinas que lo han soportado, podemos mencionar MITS Altair 8800, IMSAI 8080, los portables Osborne 1 y Kaypro, el Apple II (con tarjeta Z80), los BBC Micro (con tarjeta Z80), los Commodore 64 (con cartucho Z80) y Commodore 128 (con doble procesador), el IBM PC (versión CP/M 86 y MP/M), los Atari ST con GEM en su ROM (Versión CP/M 68k), el ZX Spectrum con el interface de disco Beta Disk, las gamas de Amstrad CPC, Spectrum +3 y PCW, los ordenadores MSX con disquetera, el VTech Laser 700 o los Spectravideo SVI-328.

No hay comentarios:

Publicar un comentario