A principios de la década de los años 70’s, Gary Kildall era instructor de informática en la Escuela de Postgrado Naval en Monterey, California. También era un contratista a tiempo parcial para Intel, y comenzó a utilizar un sistema de desarrollo que tenía Intel para crear software para los nuevos microprocesadores de esa joven empresa. En 1974, Kildall escribió un programa que permitía a los diseñadores de microprocesadores reemplazar el almacenamiento lento en cinta de papel con los nuevos diskettes rápidos de 8 pulgadas. Inicialmente llamado «Control Program/Monitor«, y más tarde rebautizado como Control Program for Microcomputers (CP/M), su programa demostró tener un valor mucho más allá de cumplir con los requisitos de su trabajo de consultoría a tiempo parcial para Intel. Cuando se configuró por completo como un sistema operativo comercial en 1976, CP/M elevó la actividad de un aficionado a una herramienta informática de uso personal y para pequeñas empresas y, al hacerlo, sentó una base importante para la revolución de las computadoras personales.
Las primeras versiones de CP/M se escribieron completamente en PL/M (Lenguaje de Programación para Microcomputadoras), un lenguaje de programación de sistemas de alto nivel que Kildall desarrolló para Intel en 1972 para sus sistemas de desarrollo de microprocesadores. Principalmente un subconjunto del lenguaje de computadora central PL/I, también incorporó ideas de ALGOL y XPL, e incluyó un microprocesador integrado. En un artículo presentado en la Conferencia Nacional de Computación de 1975, Kildall calificó a CP/M como modesto en estructura y alcance, pero «permitiendo el acceso a todas las funciones de la máquina, sin volverse completamente dependiente de una organización de CPU en particular«.
La historia de CP/M
A partir de finales de la década de los 70’s, una de las principales publicaciones de la incipiente industria del software de computadoras personales fue el Journal of Computer Calisthenics and Orthodontia del Dr. Dobb, de nombre inusual. En el número de enero de 1980, Gary Kildall publicó una memoria personal sobre la creación y el crecimiento de CP/M. La primera generación de software para sistemas basados en microprocesadores se desarrolló utilizando sistemas de tiempo compartido de mainframe. Kildall soñaba con el día en que los propios microprocesadores pudieran utilizarse para desarrollar su propio software.
Como consultor, su trabajo consistía en diseñar y desarrollar ciertas herramientas de software para Intel. Uno fue Interp/80, un programa que simulaba el microprocesador 8080, de reciente evolución en ese entonces, para ser utilizado por los clientes de Intel en sistemas de tiempo compartido. Era evidente que los sistemas de desarrollo residentes no podían competir con los servicios de tiempo compartido al considerar el rendimiento, los recursos y los servicios. Aún así, la noción de una computadora personal para el desarrollo de software interesó a todos.
Funcionamiento
CP/M admite un potente editor de contexto, un ensamblador compatible con Intel y subsistemas de depuración. El software opcional incluye un ensamblador de macros (también compatible con Intel) y un depurador simbólico junto con varios lenguajes de alto nivel. Cuando se combina con el procesador de comandos de la consola de CP/M, las instalaciones resultantes igualan o superan a las instalaciones informáticas similares pero más grandes. CP/M se divide lógicamente en varias partes distintas:
BIOS: Sistema de entrada/salida (E/S) básico que depende del hardware
BDOS: Sistema operativo de disco básico
CCP: Procesador de comandos de consola
TPA: Área de programa transitoria
El BIOS proporciona las operaciones primitivas necesarias para conectar periféricos estándar (teletipos, CRT, lector/perforador de cinta de papel, y periféricos definidos por el usuario), y luego el usuario puede adaptarlo a cualquier entorno de hardware, en particular «parcheando» esta parte de CP/M.
El BDOS proporciona administración de disco controlando una o más unidades de disco que contienen directorios de archivos independientes. Además, el BDOS implementa estrategias de asignación de disco que proporcionan una construcción de archivos completamente dinámica y minimizan el movimiento de la cabeza a través del disco durante el acceso. Cualquier archivo en particular puede contener cualquier número de registros, sin exceder el tamaño de un solo disco (240 registros de 128 bytes cada uno). En un sistema CP/M estándar, cada disco puede contener hasta 64 archivos distintos.
El CCP proporciona una interfaz simbólica entre la consola del usuario y el resto del sistema CP/M. Así, el CCP lee el dispositivo de la consola y procesa los comandos, que incluyen enumerar el directorio de archivos, imprimir el contenido de los archivos y controlar el funcionamiento de programas transitorios como ensambladores, editores y depuradores.
El último segmento de CP/M es el área llamada Área de Programa Transitorio (TPA). El TPA contiene programas que se cargan desde el disco, bajo el mando del CCP. Durante la edición del programa, por ejemplo, el TPA retiene el código de máquina y las áreas de datos del editor de texto del CP/M. De manera similar, los programas creados bajo CP/M se pueden verificar cargando y ejecutando estos programas en el TPA.
CP/M es un programa de control de monitores para el desarrollo de sistemas de microcomputadoras que utiliza discos flexibles compatibles con IBM para el almacenamiento de respaldo. Utilizando una computadora central basada en el 8080 de Intel, CP/M proporciona un entorno general para la construcción, almacenamiento y edición de programas, junto con instalaciones de ensamblaje y verificación. El monitor de CP/M brinda acceso rápido a los programas a través de un paquete completo de administración de archivos. El subsistema de archivos admite una estructura de archivos con nombres, lo que permite la asignación dinámica de espacio de archivos, así como el acceso a archivos secuenciales y aleatorios. Con este sistema de archivos, se puede almacenar una gran cantidad de programas distintos, tanto en formato fuente como ejecutable por máquina.
Ports
CP/M (Control Program for Microcomputers) es un sistema operativo monousuario y monotarea diseñado para el microprocesador Intel 8080. Los procesadores Intel 8085 y Zilog Z80 podían ejecutar directamente el código del 8080, aunque lo normal era que se entregara el código recompilado para el microprocesador de la máquina. CP/M era el sistema operativo más popular entre las computadoras personales en los años 70’s.
El sistema operativo de las Atari ST, basadas en el procesador Motorola 68000 y lanzadas al mercado en 1985, fue un port de CP/M hecho por Atari y Digital Research en conjunto y en un lapso récord de 5 meses. Las llamadas BDOS al sistema fueron conservadas, y el concepto GDI con el entorno de ventanas GEM fueron portados para la Atari ST en tiempo récord. Era un concepto innovador, un Sistema Operativo que no se veía y, encima de él, el gestor de ventanas GEM.
Existen cientos de microordenadores que han utilizado CP/M. Algunos de los más importantes desde el punto de vista histórico son: Altair 8800, Amstrad CPC 464/664/6128, Amstrad PCW 8256/8512/9512, Apple II, Atari ST, BBC Micro, Commodore 64, Commodore 128, IBM PC, MSX, Spectravideo SVI-328, Zx Spectrum + Interface Beta Disk y ZX Spectrum +3.
CP/M-86 y DOS
Cuando la computadora personal de IBM estaba siendo desarrollada, se le solicitó a Digital Research que proporcionara una versión de CP/M escrito para el microprocesador Intel 8086 como sistema operativo por defecto para la PC, como el que usaba el chip Intel 8088, ya que era compatible en código. Digital Research valoró negativamente la propuesta de IBM debido a un acuerdo unidireccional y confidencial. Microsoft, que todavía estaba en sus primeras etapas, aprovechó esta oportunidad en 1981 para proporcionar su recién comprado QDOS, el sistema operativo de Seattle Computer Products, que posteriormente sería renombrado como IBM PC DOS, al cual tendrían que añadir algún que otro software (como BASIC) para la nueva IBM PC.
La decisión de IBM de proveer los dos sistemas al mismo tiempo, con un precio seis veces mayor en el caso de CP/M, provocó que Microsoft se convirtiese en el líder de software en ese mercado. A mediados de 1982, Microsoft comercializó su sistema como MS-DOS para usarlo en computadoras compatibles no-IBM. Esta historia se detalla en Computer Chronicles, y en los documentales de Robert X. Cringely para la PBS: Triumph of the Nerds y Nerds 2.0.1.
Digital Research desarrolló CP/M-86 como una alternativa a MS-DOS, y estuvo disponible a través de IBM a comienzos de 1982. Posteriormente, creó un clon de MS-DOS con características avanzadas llamado DR-DOS, que presionó a Microsoft para realizar mejoras en su DOS. La competencia entre MS-DOS y DR-DOS es uno de los capítulos más controvertidos de la historia de las microcomputadoras. Microsoft ofreció las mejores condiciones de licencia a los fabricantes, que se comprometieron a vender MS-DOS.
Autor:
Mauro Esteban Rodríguez Zubieta
mauroestebanrodriguez@gmail.com
Gary Kildall también fue co-hoster en el mejor programa de informática que salió por la TV norteamericana. En conjunto con Stewart Cheifet, dirigieron el programa desde 1981 al 2002 (20 años un programa de TV de informática!). De 1983 a 1990 Gary estuvo allí y nunca quiso meter un chivo de Digital Research, ni siquiera cuando presentaron en 1985 la Atari ST con prácticamente todo el software hecho por los ingenieros de Digital Research. Sería bueno un especial de The Computer Chronicles, a mi gusto el mejor programa televisivo que vi.