CP/M
CP/M (Control Program for Microcomputers) es un sistema operativo de un solo usuario/Una sola tarea desarrollado por Gary Kildall para el microprocesador Intel 8080 (los Intel 8085 y 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). Se trataba del sistema operativo más popular entre las computadoras personales en los años 70. Aunque fue modificado para ejecutarse en un IBM PC, el hecho de que IBM eligiera MS-DOS, al fracasar las negociaciones con Digital Research, hizo que el uso de CP/M disminuyera hasta hacerlo desaparecer. CP/M originalmente significaba Control Program/Monitor y más tarde se cambió su nombre por Control Program for Microcomputers (en la época, la barra inclinada “/” tenía el significado de “diseñado para”; no obstante, Gary Kildall redefinió el significado del acrónimo poco después). CP/M se convirtió en un estándar de industria para los primeros micro-ordenadores.
CP/M comenzó como un proyecto de Gary Kildall alrededor de 1975. En 1977 su autor decidió llevar su sistema operativo al terreno comercial. Así, Kildall fundó la compañía Intergalactic Digital Research, Inc que hoy se conoce como Digital Research Corporation. En este momento Kildall redefinió el significado del acrónimo por Control Program for Microcomputers, es decir, Programa de control para micro-ordenadores. Esta decisión fue meramente comercial ya que todo lo que sonara a “micro” estaba de moda en la época. El sistema operativo se distribuía originalmente en disquetes de ocho pulgadas para la familia de microprocesadores Intel 8080, que también era compatible con el microprocesador Zilog Z80 (muy popular en aquellos tiempos). Desde entonces, CP/M fue adaptándose con bastante éxito a la evolución del hardware. Dicha evolución no era lo vertiginosa que es hoy día. Pronto se convirtió en el sistema operativo de elección en cientos de micro-ordenadores. Los primeros programas de uso personal, el procesador de texto WordStar y la base de datos dBase, fueron originalmente escritos para CP/M. Con la llegada de los primeros microprocesadores de 16 bits, CP/M tuvo que sufrir una completa adaptación, abandonando la compatibilidad con los anteriores microprocesadores de 8 bits. Por este motivo, CP/M para 16 bits se denomina familia CP/M-86, y CP/M para 8 bits como familia CP/M-80. Consta de CP/M-86 para microprocesadores Intel 8086, CP/M-68k para microprocesadores Motorola 68000, así como versiones para Zilog Z8000. Se desarrollaron versiones multitarea y multiusuario, tales como MP/M, también para 8 y 16 bits.
CP/M permitía que diferentes programas interactuaran con el hardware de una manera estandarizada. Esta característica, evidente hoy día en un sistema operativo, no lo era tanto en aquel momento. Los programas escritos en CP/M eran portables a cualquier micro-ordenador aun con microprocesadores distintos (exceptuando programas que utilizaban el conjunto de instrucciones extendido del Z80). El único requisito era la utilización correcta de las secuencias de escape para pantalla e impresora.
CP/M presentaba un innovador diseño modular compuesto por tres subsistemas:
- CCP (command control processor, estándar)
- BDOS (basic disk operating system, estándar)
- BIOS (basic input/output system, dependiente de la máquina)
CCP es un intérprete de comandos que permitía introducir mandatos y sus parámetros separados por espacios. Unos pocos de estos mandatos eran internos al propio CCP, pero si el mandato no era reconocido, se buscaba un programa con el mismo nombre en el directorio actual del disco.
CCP permitía traducir los mandatos de usuario en un conjunto de instrucciones de alto nivel destinadas a BDOS. Asimismo, los programas podían comunicarse con BDOS para realizar tareas abstractas tales como “abrir fichero”. En aquellos años este tipo de abstracción era toda una novedad. Posteriormente, BDOS traducía dichas instrucciones en llamadas a la BIOS de la computadora.
La mayoría de la complejidad de CP/M se encontraba oculta en BDOS. De esta manera, bastaban unas pocas adaptaciones en la BIOS para que una computadora pudiera utilizar CP/M. El esfuerzo necesario para soportar nuevas máquinas era muy pequeño, lo que contribuyó al éxito de este sistema operativo.