CP/M

De Viquipèdia
Dreceres ràpides: navegació, cerca
CP/M
Pantalla de CP/M 2.2: llista de directoris i fitxers.
Pantalla de CP/M 2.2: llista de directoris i fitxers.
Empresa / Desenvolupador Digital Research, Inc. / Gary Kildall
Família de SO CP/M
Estat actual Descatalogat
Tipus de codi Comercial
Versió estable

3.1

/ 1982
Tipus de nucli Monolític
Llicència Proprietària
Lloc web Pàgina oficial a Digital Research

CP/M (Control Program/Monitor o Control Program for Microcomputers: programa de control per a microordinadors) és un sistema operatiu de disc creat originalment per Gary Kildall de Digital Research, Inc. per a microordinadors basats en els microprocessadors Intel 8080/85.[1] Va estar inicialment limitat per a ús monousuari/monotasca en processadors de 8 bits i amb poc més de 64 KiB de memòria RAM, tot i que en versions posteriors es van afegir capacitats d'ús multiusuari/multitasca i van ser convertides per a UCPs de 16 bits.

La combinació de CP/M i ordinadors personals amb el bus S-100 iniciada amb l'Altair 8800 del MITS, va ser un dels primers estàndards industrials per a microordinadors, i era àmpliament utilitzada des de la dècada del 1970[2] fins a la meitat dels anys 1980. Reduint dràsticament la quantitat de programació necessària per instal·lar un aplicatiu en un ordinador d'un nou fabricant,[3] el CP/M va incrementar tant el mercat de programari com de maquinari.

Model de maquinari[modifica | modifica el codi]

Un sistema CP/M mínim de 8 bits sol contenir els següents components:

L'únic maquinari suportat pel CP/M, en la versió distribuïda per la Digital Research, era l'Intel 8080 Development System. Fabricants de sistemes CP/M compatibles, adaptaven parts del sistema operatiu per a les seves pròpies combinacions de memòria instal·lada, unitats de disc i consola d'entrada. El CP/M també podia ser executat en sistemes basats en el processador Zilog Z80, ja que el Z80 era capaç d'executar codi 8080. Encara que el CP/M no fos capaç d'executar cap de les instruccions específiques del Z80, moltes aplicacions van ser programades per a màquines CP/M basades en el Z80.

En moltes màquines, el «bootstrap» era un programa mínim emmagatzemat en ROM; en d'altres, aquest programa havia de ser inserit directament en la memòria a través d'un panell frontal cada cop que carregava el sistema operatiu.

El CP/M usava un conjunt ASCII de 7 bits (128 caràcters). Els altres 128 caràcters possibles per un conjunt de 8 bits, no eren estandarditzats. Per exemple, un model Kaypro els utilitzava per a emmagatzemar caràcters de l'alfabet grec, mentre que les màquines Osborne, utilitzaven el vuitè bit per a indicar un caràcter subratllat. Els sistemes CP/M internacionals freqüentment usaven la norma ISO 646 per a adaptar conjunts de caràcters, substituint determinats caràcters ASCII per caràcters dels idiomes locals, en comptes d'afegir-los a més del límit de 7 bits.[4]

Components del sistema operatiu[modifica | modifica el codi]

Mapa de memòria del CP/M

En les versions de 8 bits, el nucli del CP/M estava dividit en tres components: el processador d'ordres de la consola (o CCP), el sistema operatiu de disc bàsic (o BDOS) i el sistema bàsic d'entrada/sortida (o BIOS). El CCP i BDOS eren els mateixos en totes les instal·lacions d'una revisió comuna del CP/M, però la part del BIOS sempre s'adaptava a un maquinari específic. Afegir memòria a un ordinador, per exemple, significava que el sistema CP/M s'havia de reinstal·lar. Un cop instal·lat, el sistema operatiu s'emmagatzemava en espais reservats al començament de qualsevol disc que s'utilitzaria per inicialitzar el sistema.[5] En la inicialització, el carregador d'arrencada carregava el sistema operatiu a partir del disquet en la disquetera A:.

Pels estàndards moderns, el CP/M era primitiu a causa de les restriccions extremes a la grandària dels programes. Amb la versió 1.0 no es podia detectar un canvi de disquet. Si un usuari canviava discs sense que manualment rellegís el directori d'arxius, el sistema escriuria sobre el disc nou utilitzant la informació del directori del disc antic, destruint les dades emmagatzemades al nou disquet. A partir de les versions 1.1 o 1.2, aquest problema va ser reduït: si algú canviava discs sense llegir el directori del disc nou i intentava escriure-hi, el sistema operatiu indicaria l'avís d'error, evitant sobreescriure, però exigint una rearrencada (que no durava més que uns pocs segons, però que implicava la pèrdua de totes les dades en memòria).

La majoria de la complexitat del CP/M s'aïllava en el BDOS, i en més petita extensió, en el CCP. Significava que en portar el limitat nombre d'ordres simples del BIOS a una plataforma de maquinari en particular, el sistema operatiu sencer treballaria. Això significativament reduïa el temps de desenvolupament de programes necessari per donar suport a màquines noves, i era una de les raons principals per l'ús estès de CP/M. Avui, aquesta classe d'abstracció és comuna a la majoria dels sistemes operatius, però al temps del naixement del CP/M, els S.O. estaven pensats típicament per executar a només una plataforma de maquinari, i els sistemes multiplataforma es consideraven innecessaris.[5]

Processador d'ordres de la consola[modifica | modifica el codi]

El Processador d'Ordres de la Consola (Console Command Processor o CCP en anglès), accepta l'entrada des del teclat i transmet els resultats al terminal. El CP/M pot funcionar amb un terminal d'impressió o de vídeo. Totes les ordres del CP/M són escrites a l'intèrpret d'ordres. La consola mostra sovint en pantalla la lletra A>, per indicar la unitat de disc per defecte actual. Quan s'utilitza amb un terminal de vídeo, es mostra acompanyat d'un cursor parpellejant subministrat pel terminal que indica que el CCP espera les entrades de l'usuari.[5]

Una interna del CCP, la lletra de la unitat seguida de dos punts, permet seleccionar la unitat per defecte. Per exemple, si s'escriu B: i es prem la tecla Enter en la línia d'ordres, es canviaria la unitat per defecte a la B, i el mateix intèrpret mostraria aquest canvi.

La línia d'ordres del CP/M va ser estandarditzada pels sistemes operatius de Digital Equipment, com el RT-11 pel PDP-11 i l'OS/8 pel PDP-8. Les ordres van prendre la forma de paraules clau seguides d'una llista de paràmetres separats per espais o caràcters especials. Si el CCP reconeix una ordre interna, la duu a terme. En cas contrari, tracta de trobar l'arxiu executable al disc o a l'espai d'usuari (en versions posteriors), per carregar-lo i passar-li tots els paràmetres addicionals de la línia d'ordres. Aquests programes foren anomenats programes transitoris (o "transient" en anglès). En acabar, el CP/M carrega de nou la part del CCP que havia estat sobreescrita pels programes transitoris, cosa que permet una major memòria per aquests programes.[5]

Les ordres eren de vegades confuses. Per exemple, la instrucció per duplicar arxius era PIP (Programa d'Intercanvi entre Perifèrics o en anglès Peripheral-Interchange-Program), el nom de l'antiga utilitat DEC utilitzada per aquest propòsit. El format dels paràmetres del programa no es va estandarditzar, de manera que no hi havia una única "opció de caràcter" que diferenciàs les opcions del nom de l'arxiu.[5]

Ordres internes[modifica | modifica el codi]

Les ordres internes són integrades al processador d'ordres (CCP) i es carreguen a la memòria RAM durant la inicialització del sistema.

Ordre Descripció
DIR Llista els noms de fitxers a la unitat de disc actual.
unitat: Canvia la unitat de disc (A: per defecte).
ERA fitxer Esborra els fitxers especificats.
TYPE fitxer Mostra el contingut d'un arxiu a la unitat de disc.
fitxer Executa un arxiu .COM.
SAVE n fitxer.com Guarda el contingut de la memòria en un fitxer.
USER n Canvia l'espai d'usuari (0-15).
REN nounom.nnn=nomvell.nnn Canvia el nom del fitxer especificat.

Ordres externes[modifica | modifica el codi]

Les ordres externes (o transitòries) són emmagatzemades en fitxers a les unitats de disc (o disc dur) per a la utilització posterior.

Ordre Descripció
ASM Fa la càrrega de l'assemblador del CP/M i munta el programa especificat des del disc.
DDT Fa la càrrega del depurador del CP/M i comença l'execució.
DUMP Bolca el contingut d'un fitxer en hexadecimal.
ED Carrega i executa l'editor de text del CP/M.
LOAD Carrega l'arxiu en format de codi màquina Intel HEX i produeix un arxiu executable que pot ser carregat en la memòria. Aquest programa es converteix en un nou ordre sota el CCP.
MOVCPM Regenera el sistema CP/M per a una mida de memòria RAM específica.
PIP Fa la càrrega del programa Peripheral Interchange Program per operacions de transferència entre perifèrics i discs.
STAT Mostra l'espai d'emmagatzematge restant (en bytes) del disc actual, ofereix informació estadística sobre determinats fitxers, i mostra o altera l'assignació de dispositius.
SUBMIT Processa un arxiu d'ordres de tractament per lots.
SYSGEN Crea un disc d'arrencada CP/M.

Sistema operatiu de disc[modifica | modifica el codi]

El sistema operatiu bàsic de disc (Basic Disk Operating System o BDOS en anglès) proporciona accés a operacions com obrir un arxiu, la sortida de la consola o la impressió. Els programes carreguen els registres del processador amb un codi de funció per a l'operació i les adreces dels paràmetres o buffers de memòria, i demanen una ubicació fixa en la memòria. Atès que l'adreça és la mateixa independentment de la quantitat de memòria en el sistema, els programes s'executen de la mateixa manera per a qualsevol tipus o configuració de maquinari.[5]

Sistema bàsic d'entrada/sortida[modifica | modifica el codi]

El sistema bàsic d'entrada/sortida (Basic Input Output System o BIOS en anglès), proporciona accés a les funcions de nivell més baix requerides pel sistema operatiu. S'inclouen la lectura o l'escriptura de caràcters individuals a la terminal del sistema i llegir o escriure un sector de dades del disc. El BDOS controla part de la memòria intermèdia de les dades des del disc, però anteriorment al CP/M 3.0, se suposa una mida de sector de disc fixat en 128 Bytes, com el que s'utilitza en els disquets de 8 polzades de densitat individual. Atès que la majoria de formats de disc de 5,25 polzades utilitzen grans sectors, el bloqueig i el desbloqueig com també la gestió d'una àrea de memòria d'un disc ho realitzava un model de codi específic a la BIOS.[5]

La personalització era necessària perquè les opcions del maquinari no es van veure limitades per la compatibilitat amb qualsevol estàndard famós. Per exemple, alguns fabricants utilitzaven el terminal d'ordinador independentment, mentre que altres versions incorporaven un sistema integrat de visualització de vídeo. Els ports sèrie per impressores i mòdems poden utilitzar diferents tipus de xips UART, i les adreces dels ports no eren fixos. Algunes màquines utilitzen memòria mapejada d'E/S en lloc de l'espai de direccions d'E/S del 8080. Totes aquestes variacions en el maquinari s'oculten en altres mòduls del sistema mitjançant l'ús de la BIOS, que s'utilitza els punts d'entrada estàndard per als serveis necessaris per executar el CP/M com un caràcter d'E/S o l'accés a un bloc de disc. Com que el suport a la comunicació serial a un mòdem era molt rudimentari en la BIOS o pot haver estat absent del tot, era una pràctica comuna per a programes CP/M que utilitzen mòdems amb una superposició d'usuari instal·lada que conté tot el codi necessari per accedir a un determinat port sèrie de la màquina.[5]

Sistema d'arxius[modifica | modifica el codi]

Captura de pantalla de CP/M

Els noms dels arxius constaven de fins a vuit caràcters, seguits d'un punt i una extensió de nom d'arxiu de fins a tres caràcters (format «8.3» de noms de fitxer). L'extensió generalment identificava el tipus de fitxer. Per exemple, .COM indicava un fitxer binari executable, i .TXT indicava un arxiu que contenia text ASCII.[6]

Cada unitat de disc s'identificava per una lletra d'unitat. Normalment, les dues unitats de disc s'identificaven com les unitats A: i B:. Per fer referència a un arxiu en una unitat específica, la lletra de la unitat s'anteposava al nom d'arxiu, separada per dos punts, per exemple, A:FITXER.TXT. Sense la lletra d'unitat com a prefix, el valor predeterminat era utilitzar els arxius de la unitat actual (per exemple, un programa que s'executa a la unitat B, accedirà als arxius a la unitat B excepte que els noms d'arxiu vagin precedits d'una lletra d'unitat).[7]

La mida del fitxer s'especificava com el nombre de registres de 128 bytes (directament corresponents als sectors del disc en unitats de 8 polzades) ocupats per un arxiu al disc. No hi havia una manera estàndard d'especificar les mides exactes d'arxius en bytes. El sistema operatiu mantenia la mida actualitzada d'un arxiu al bloc de control de fitxers (FCB). Atès que moltes aplicacions (com ara editors de text) tracten els fitxers com a seqüències de caràcters, més que com a seqüències de registres, per convenció, els arxius de text acabaven amb un caràcter control-Z (ASCII SUB, hexadecimal 1A). Determinar el final d'un arxiu de text, per tant, consistia a examinar l'últim registre de l'arxiu per buscar el control-Z de terminació. Això també volia dir que la inserció d'un caràcter control-Z enmig d'un arxiu, generalment tenia l'efecte de truncar el contingut del text de l'arxiu.

No hi havia suport per a la modificació de la data dels arxius (marques horàries), encara que algunes versions posteriors de CP/M van afegir aquesta característica com una extensió.[8]

El CP/M 2.2 no tenia subdirectoris en l'estructura d'arxius, però hi havia 16 «espais d'usuari» per organitzar els arxius en un disc.[7] El concepte d'espai d'usuari va fer de la versió monousuari de CP/M més compatible amb sistemes MP/M multiusuaris. UN pedaç comú per al CP/M i les seves versions derivades era fer que un espai fos accessible per a l'usuari independentment de l'espai d'usuari configurat. Una nova ordre, «USER», permetia a l'usuari canviar aquesta àrea a un valor entre 0 i 15. USER 0 era el valor predeterminat. Si es canviava a un altre usuari, per exemple USER 1, el contingut desat al disc per aquest usuari només estaria disponible per a l'usuari 1; USER 2 no seria capaç de visualitzar-lo o accedir-hi. Com que CP/M era un sistema operatiu monousuari, la instrucció USER tenia poca seguretat; res impedia a qualsevol usuari d'accedir a qualsevol dels altres 16 espais d'usuari. La funció d'espai d'usuari va ser possiblement de poca utilitat en disquets, però fou més útil per organitzar els fitxers a les màquines equipades amb grans discs durs.[9]

Alguns tipus d'arxius CP/M[modifica | modifica el codi]

Extensió Significat
ASM Codi font d'assemblador
PRN Fitxer d'impressió
HEX Codi màquina
BAS Codi font BASIC
INT Codi intermedi
COM Arxiu executable
PLI Codi font PL/I
REL Mòdul reubicable
TEX Arxiu font TeX
BAK Còpia de seguretat (ED)
SYM Arxiu de símbols SID
$$$ Fitxer temporal

Memòria lliure per a programes[modifica | modifica el codi]

La memòria lliure per a programes (Transient program area o TPA en anglès) era la memòria disponible pels programes del CP/M per llegir i escriure entre l'adreça de memòria 0100 hexadecimal i les adreces de memòria més baixes del BDOS conegudes com a transient program area (TPA). Tot i que tots els processadors Z80 i 8080 podien utilitzar 64 kilobytes de memòria, la quantitat disponible per als programes podia variar en funció del disseny de l'equip en particular. Alguns equips utilitzen una gran part de l'espai d'adreces per altres tasques com ara la memòria ROM de la BIOS o de la pantalla de vídeo. Així, alguns sistemes tenien més memòria disponible per a TPA que d'altres. L'intercanvi de memòria (o Bank switching en anglès) era una tècnica comuna que possibilitava que els sistemes tenguessin un gran TPA utilitzant memòries de la ROM i de vídeo, si era necessari. El CP/M 3.0 també permetia a parts del BDOS estar al banc d'intercanvi de memòria.[5]

Versions de CP/M[modifica | modifica el codi]

Data Versió[10]
1973 CP/M 1.0
- CP/M 1.4
1979 CP/M 2.0
- CP/M 2.2
1982 CP/M 3.0 (8 bits)
- CP/M 3.1 (16 bits)

Història[modifica | modifica el codi]

L'inici i l'auge de CP/M[modifica | modifica el codi]

El nom[modifica | modifica el codi]

En el 1974, el CP/M era un projecte personal de Gary Kildall, sota el nom de Control Program/Monitor. Durant la conversió del CP/M per a producte comercial, els documents de registre de marca registrada arxivats el novembre de 1977, ho declaraven sota el nom de Control Program for Microcomputers. El nom il·lustra l'esquema de la nomenclatura predominant en l'època, com en els PL/M (Programming Language for Microcomputers) per a l'Intel i PL/P (Programming Language for Prime) per a Prime Computer, desenvolupats per Kildall, que suggereixen el PL/I i el sistema operatiu CP/CMS de l'IBM, els quals en Kildall els va utilitzar quan va treballar en la Naval Postgraduate School, i que també, com el TOPS-10, posseïen semblances clares amb la interfície d'usuari i el sistema d'arxius del CP/M.[11]

Aquest canvi de nom de CP/M formava part d'un esforç més ampli d'en Kildall i de la seva esposa i sòcia, Dorothy McEwen, per a convertir el projecte personal d'en Kildall, de CP/M i PL/M, en una empresa comercial. Els Kildall astutament pretenien establir la marca Digital Research i les seves línies de productes com a sinònim de «microordinador» en la ment dels consumidors, de la mateixa forma que posteriorment, IBM i Microsoft van obtenir èxit en transformar l'expressió «ordinador personal» en sinònim dels productes oferts per ambdues empreses. Més tard, la raó social Intergalactic Digital Research, Inc. va ser alterada per a Digital Research, Inc.[12]

Portabilitat[modifica | modifica el codi]

El CP/M va ser descrit com un «bus de programari»,[13] permetent que múltiples programes interaccionessin amb diversos maquinaris de forma estandarditzada. Els programes escrits per al CP/M eren típicament portables entre màquines diferents, generalment exigint només l'especificació de les seqüències d'escapament per al control de la pantalla i impressora. Aquesta portabilitat va fer que el CP/M fos molt popular, i molt més programari va ser programat per al CP/M que per a sistemes operatius que podien ser executats en una única marca de maquinari. Una restricció a la portabilitat, és que determinats programes usaven el conjunt d'instruccions del processador Z80,[14] els quals no podien ser executats en processadors 8080 o 8085.

Moltes marques diferents de màquines van utilitzar el CP/M, amb alguns exemples notables com l'Altair, l'IMSAI 8080, l'Osborne 1, els portables Kaypro i els microordinadors MSX. Fins i tot, l'Apple II podria funcionar amb el CP/M quan s'instal·la una targeta Z80 extra. El sistema CP/M estàndard compatible va ajudar a realitzar el rècord de vendes de tots els temps amb probablement el Commodore 128 com a maquinari, tot i que poques persones de fet van utilitzar completament les habilitats del CP/M.[15] Al Regne Unit, el CP/M era també disponible per a BBC Micro, quan estava equipat amb un coprocessador Z80. A més, va funcionar amb el famós sistema processador de paraules Amstrad PCW i era disponible per a la sèrie Amstrad CPC i models posteriors del ZX Spectrum.

Aplicacions[modifica | modifica el codi]

WordStar, un dels primers processadors de textos d'àmplia utilització, i dBase, un programa de base de dades pioner i famós per a microordinadors, van ser programats originalment per a CP/M.[16] Un dels primers programes outliners, «KAMAS» (Knowledge and Mind Amplification System), també va ser programat per a CP/M, encara que més tard va ser reescrit per a MS-DOS. Turbo Pascal, versió anterior del Delphi de Borland, i Multiplan, versió anterior del Microsoft Excel, també van sorgir en el CP/M, molt abans que les versions per a MS-DOS estiguessin disponibles. L'AutoCAD, programa de CAD d'Autodesk, també es va estrenar en CP/M. El gran nombre de compiladors i intèrprets per a llenguatges de programació populars en l'època (com BASIC i FORTRAN), estaven disponibles, i entre ells, diversos dels primers productes de Microsoft. Diversos jocs d'aventura basats en text van ser portats, com per exemple el Colossal Cave Adventure, i altres exemples pioners de ficció interactiva. Lifeboat Associates va començar a recollir i distribuir programari «lliure», programat per usuaris. Un dels primers va ser XMODEM, que permetia la comunicació via mòdem i línia telefònica.

Gràfics[modifica | modifica el codi]

Tot i que els sistemes S100 amb capacitat gràfica van existir des de la comercialització del bus S-100, CP/M no ha proporcionat cap tipus de suport estàndard de gràfics fins a la publicació de CP/M 3.0 amb GSX (Graphic System eXtension o «Extensió Gràfica del Sistema»).[14][17] A causa de la petita memòria disponible, els gràfics mai van ser una característica comuna associada amb el sistema operatiu CP/M de 8 bits. La majoria dels sistemes només va poder mostrar gràfics rudimentaris d'art ASCII i diagrames en mode text o mitjançant un conjunt de caràcters personalitzat.

Formats de discs[modifica | modifica el codi]

Disquet d'arrancada (5¼") de CP/M per al Commodore C128.

Mentre que el format de disc flexible de densitat simple de 8 polzades (anomenat «format de distribució») es va estandarditzar, diversos formats de 5¼ polzades s'utilitzaven en funció de les característiques dels sistemes i en certa mesura, de les opcions dels dissenyadors. El CP/M va proporcionar opcions de suport per a controlar la mida de les zones reservades i directoris en el disc, i l'assignació entre sectors lògics (com els utilitzats pels programes de CP/M) i sectors físics assignats al disc. Hi havia diverses maneres de personalitzar aquests paràmetres per a cada sistema, però una vegada que s'havien creat, no hi havia manera normalitzada a un sistema per carregar els paràmetres d'un disc formatat en un altre sistema.[18] Cap fabricant va prevaler en l'era d'ús del 5¼ polzades al CP/M, i els formats de disc no eren transportables entre els fabricants de maquinari. Un fabricant de programari havia de preparar una versió independent del programa per a cada marca de maquinari en el qual havia de funcionar. En el cas d'alguns fabricants (Kaypro n'és un exemple), no hi havia ni tan sols l'estandardització entre els diferents models de l'empresa. Per aquest motiu, els programes de transcripció de formats de disc, que van permetre a una màquina llegir molts formats diferents, es van fer populars i van reduir la confusió. D'altra banda, existien programes com el Kermit[19] que permetia la transferència de dades i programes d'una màquina a l'altra utilitzant els ports sèrie que la majoria de les màquines de CP/M tenien. El mercat fragmentat de CP/M, que va exigir que els distribuïdors la disposició de formats múltiples de discs o la inversió en equips de duplicació en diversos formats, en comparació amb els formats de discs més estandarditzats de l'IBM PC, va ser un factor que va contribuir a la ràpida obsolescència del CP/M després de 1981.

Decadència i fi[modifica | modifica el codi]

El món dels 16 bits[modifica | modifica el codi]

El DEC Rainbow: tres sistemes operatius.

Posteriorment també es produïren versions de CP/M per a algunes CPUs de 16 bits, encara les aplicacions s'havien de recompilar per a les noves CPUs o, si havien estat programades en llenguatge d'assemblador, havien de ser en gran part reescrites des de zero.

Una de les primeres va ser el CP/M-86 per l'Intel 8086, que aviat va ser seguida per CP/M-68k per al Motorola 68000. En aquest punt, el CP/M original de 8 bits es va fer conegut pel retrònim CP/M-80 per evitar confusió. Hi va haver també un portabilitat al Zilog Z8000, anomenat CP/M-8000.[20]

CP/M-68k va ser utilitzat inicialment en l'ordinador Atari ST, però Atari va decidir utilitzar un nou DOS anomenat GEMDOS. També es va utilitzar en el Sord M68 i ordinadors M68MX. S'esperava que el CP/M-86 fos el sistema operatiu estàndard dels nous IBM PC, però DRI i IBM van ser incapaços de negociar els termes de desenvolupament i condicions de llicència. Així, IBM va tractar amb Microsoft que li va vendre un sistema operatiu basat en un «clon» del CP/M, el 86-DOS.[14] Encara que el CP/M-86 es va convertir en una bona opció per als IBM PC, després que DRI amenacés amb accions legals, mai no va superar el sistema de Microsoft.[21]

Quan Digital Equipment Corporation va alliberar el Rainbow 100 per competir amb l'IBM, ho féu amb CP/M-80 amb un xip Z80 i amb CP/M-86 o MS-DOS amb un microprocessador 8088. Les CPUs Z80 i 8088 funcionaven concurrentment. Un dels avantatges del Rainbow és que podria seguir funcionant amb programari CP/M de 8 bits mentre els usuaris es traslladaven al món de 16 bits de l'MS-DOS.[22]

MS-DOS ocupa el poder[modifica | modifica el codi]

El CP/M-86 amb la versió 1.1 en funcionament.

La primera versió de l'MS-DOS tenia certa semblança amb el CP/M-86, però ràpidament es van divergir després de la primera versió. Molts dels conceptes bàsics i mecanismes interns de les primeres versions de l'MS-DOS s'assemblaven al CP/M. Les estructures de dades de manipulació de fitxers eren idèntics, i tots dos es referien a les unitats de disc amb una lletra (A:, B:, etc.). Aquesta semblança va facilitar la portabilitat del programari més exitós del CP/M com el WordStar i el dBase. Tanmateix, el concepte CP/M d'espais separats per als fitxers d'usuari en el mateix disc mai va ser portat a l'MS-DOS. La principal innovació de l'MS-DOS era el seu sistema de fitxers, FAT. Com que MS-DOS tenia accés a més memòria (pocs IBM PC es van vendre amb menys de 64 KB de memòria, mentre que CP/M podia arribar a funcionar, com a màxim, en 16 KB), més ordres anaven apareixent per a la seva línia d'ordres, fent MS-DOS una mica més ràpid i més fàcil d'usar en màquines basades en disc.

El CP/M va perdre ràpidament la quota de mercat mentre aquest es traslladava a la plataforma PC, i mai no va recuperar la seva antiga popularitat.[23][24] Byte Magazine, a l'època una de les revistes líders de la indústria editorial per a microordinadors, va deixar de cobrir productes CP/M pocs anys després del llançament de l'IBM PC. Per exemple, el 1983 encara hi havia uns quants anuncis de targetes S100 i articles sobre programari per al CP/M, però el 1987 aquests ja no es trobaven a la revista.

Versions posteriors de CP/M-86 van fer passos significatius en el rendiment i facilitat d'ús i es van fer compatibles amb MS-DOS. Per reflectir aquesta compatibilitat es va canviar el nom, i CP/M-86 es va convertir en DOS Plus, que al seu torn es va convertir en DR-DOS.

Adéu al CP/M[modifica | modifica el codi]

Disquets de 5¼" i una caixa del full de càlcul Lotus 1-2-3.

Tot i les previsions optimistes, el CP/M no va «estar aquí per quedar-se».[14] Fins i tot, després de l'anunci que IBM faria de l'MS-DOS el seu sistema operatiu estàndard per l'IBM-PC, se suposava que la base instal·lada d'usuaris de CP/M, estimada en 1,5 milions de persones a principis del 1983, encara era massa gran per no ser tinguda en compte.[14] Això no obstant, la gran majoria dels sistemes CP/M en aquest moment estava composta per màquines de 8 bits, que cada dia es tornaven més i més obsoletes. La decisió d'IBM de donar prioritat a l'MS-DOS podria no haver estat decisiva per al destí final de CP/M, però sens dubte l'aparició de la indústria dels IBM PC compatibles, que va copiar el maquinari d'IBM i va adoptar massivament el sistema operatiu de Microsoft, va ser un cop decisiu (fins i tot per la mateixa IBM, que anys més tard deixaria el camp dels ordinadors personals).[21]

La tria de l'MS-DOS (o PC-DOS) es va basar en dues raons senzilles: cost i portabilitat. En teoria, CP/M-86 podria haver-se convertit en el sistema operatiu estàndard per l'IBM PC, encara que va ser llançat mesos després de l'MS-DOS. No obstant això, en la compra d'un ordinador personal amb una unitat de disc, IBM va oferir l'IBM PC-DOS 1.0 per 39,95 US$ i per a tots els interessats, CP/M-86 per 240 US$.[25] Per la diferència de preu, es van vendre més unitats del IBM PC-DOS que CP/M-86. Addicionalment, els desenvolupadors van trobar més fàcil fer versions d'aplicacions CP/M per a MS-DOS que per a CP/M-86.[26] A més, les màquines de 16 bits tenien memòries més grans i CPUs més ràpides, i l'MS-DOS ho aprofitava de manera molt més eficient. Aviat hi van haver «aplicacions assassines» que varen funcionar només a l'MS-DOS i que mai foren portades per a CP/M-86. Una va ser el Lotus 1-2-3, que significà per l'IBM PC el que havia estat VisiCalc per l'Apple II.[27]

L'herència del CP/M[modifica | modifica el codi]

Encara que CP/M fou abandonat com a sistema operatiu per a ús professional, alguns grups d'entusiastes van continuar desenvolupant versions millorades del producte, com el ZCPR (Z80 Command Processor Replacement), que va tenir la primera versió alliberada el 2 de febrer de 1982 i l'última (3.3 o Z33) al gener de 1987.[28] Aquesta versió final, això no obstant, no va oferir més suport per microprocessadors de 8 bits compatibles amb el 8080. Un producte similar per al Commodore C128, el ZCCP, estava encara en desenvolupament a l'inici dels anys 1990.[29]

Avui, les versions posteriors directes (o no tan directes) del sistema operatiu de DRI encara es poden trobar per ús comercial, el més important dels quals és el DR-DOS.[30] Un parent proper és el sistema operatiu IBM 4690, l'origen del qual es remunta al FlexOS de Digital Research.[31]

Referències[modifica | modifica el codi]

  1. «Inconvenients dels sistemes existents» (en català). [Consulta: 16-11-2008].
  2. Núria Almiron. «De Vannevar Bush a la WWW» (en castellà). [Consulta: 16-11-2008].
  3. Jordi Contreras. «Sistemes operatius» (en català). [Consulta: 16-11-2008].
  4. Roman Czyborra. «ISO-646: First attempts to internationalize the 7bit code» (en anglès), 1998. [Consulta: 18-11-2008].
  5. 5,0 5,1 5,2 5,3 5,4 5,5 5,6 5,7 5,8 Oscar Vermeulen. «CP/M Internals» (en anglès), 2003. [Consulta: 19-11-2008].
  6. «File Names» (en anglès). [Consulta: 12-02-2010].
  7. 7,0 7,1 «CP/M Builtin Commands» (en anglès). discordia.org.uk. [Consulta: 28-01-2009].
  8. «CP/M 2.2 disc formats» (en anglès). [Consulta: 12-02-2010].
  9. «Understanding disk images for the CP/M emulation» (en anglès). [Consulta: 12-02-2010]. «Under CP/M 3 and MP/M 2 you can execute the programs from other user areas with i:program, because this OS's honor the SYS attribute for files in user area 0 appropriate. CP/M 2 doesn't support this, which makes it uncomfortable to use user areas under this OS.»
  10. CP/M Operating System (en anglès)
  11. «The origin of CP/M's name» (en anglès). [Consulta: 16-01-2009].
  12. Herbert R. Johnson. «Early CP/M, PL/M and DRI history» (en anglès), 08-03-2012. [Consulta: 10-03-2012].
  13. «CP/M and Digital Research Inc. (DRI) History» (en anglès). [Consulta: 16-01-2009]. «CP/M became the «software bus» for the new Intel-based microcomputers of the 1970's and well into the 1980's.»
  14. 14,0 14,1 14,2 14,3 14,4 Thom Hogan. «From backyard to big time; the history of CP-M» (en anglès). Creative Computing, vol. 9, no. 11, novembre 1983. [Consulta: 16-01-2009].
  15. «Commodore and CP/M» (en anglès). [Consulta: 14-05-2009].
  16. «Confira 10 sistemas operacionais que ficaram no passado da computação» (en portuguès). ComputerWorld, 27-03-2009. [Consulta: 27-01-2010].
  17. Peter Dassow. «Graphics with CP/M (and the Commodore 128)» (en anglès). [Consulta: 06-02-2010].
  18. Andy Johnson-Laird. The Programmer's CP/M Handbook, capítol 3. Osborne-McGraw Hill, Berkeley, California (1983). ISBN 0-88134-103-7
  19. «CP/M Kermit» (en anglès). Columbia University. [Consulta: 06-02-2010].
  20. «CP/M-8000» (en anglès).
  21. 21,0 21,1 Herb Johnson. «Why was CP/M Important?» (en anglès), 2009. [Consulta: 08-02-2010].
  22. «The DEC Rainbow 100» (en anglès). [Consulta: 08-02-2010].
  23. «CP/M alive, well, and growing in the VAD channel» (en anglès). InfoWorld, 17-06-1985. [Consulta: 09-02-2010]. «Despite value-added dealers' efforts, Morrow executives don't believe that CP/M machines will stick around very long. "It is going to trend down, and there is nothing that can be done to stop it", says Berghorn. "Probably the memory limitation is the deficiency".(…)"That is probably the biggest killer… You can't [use] Lotus 1-2-3 with CP/M. That probably dictade it demise."»
  24. Nancy Groth. «Kaypro is Retreating On CP/M» (en anglès). InfoWorld, 10-02-1986. [Consulta: 09-02-2010]. «The popularity of CP/M-based machines dwindled as less viable software applications were written and faster machines were released, according to analysts. "The market for CP/M machines is dead", said Evan Moltz, director of micro services at International Data Corp. (IDC), in Framingham, Massachussetts.»
  25. R. Chapman, Merrill. In search of stupidity: over 20 years of high-tech marketing disasters (en anglès). Apress, 2006, p. 31. ISBN 1590597214 [Consulta: 10 febrer 2010]. «CP/M-86 upon its release cost $240.00, a price close to that paid by puchasers of the 8-bit CP/M» 
  26. Leven Antov. «Short History of MS-DOS» (en anglès), 1996. [Consulta: 10-02-2010].
  27. «123 file extension» (en anglès). [Consulta: 10-02-2010]. «Lotus 1-2-3 was IBM PC's first killer application; its huge popularity in mid-1980s contributed significantly to the success of IBM PC in the corporate environment.»
  28. Ted Silveira. «The Wonderful World of ZCPR3» (en anglès). Morrow Owner's Review. [Consulta: 16-02-2010].
  29. Craig Taylor. «ZCCP Documentation, Version 1.0» (en anglès). C=Hacking, 07-03-1993. [Consulta: 16-02-2010].
  30. «DR-DOS 7.03» (en anglès). DRDOS. [Consulta: 02-03-2010].
  31. Melissa Calvo i Jim Forbes. «IBM to Use a DRI Operating System» (en anglès). InfoWorld, 10-02-1986. [Consulta: 18-02-2010].

Bibliografia[modifica | modifica el codi]

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: CP/M Modifica l'enllaç a Wikidata

General[modifica | modifica el codi]

Emuladors[modifica | modifica el codi]