[go: nahoru, domu]

Prijeđi na sadržaj

CP/M: razlika između inačica

Izvor: Wikipedija
Izbrisani sadržaj Dodani sadržaj
Vodomar (razgovor | doprinosi)
Vodomar (razgovor | doprinosi)
Redak 315: Redak 315:


== Programska podrška ==
== Programska podrška ==

Pojava CP/M-a kao standardnog operacijskog sustava imao je velik utjecaj na razvijanje industrije za programsku podršku. Mnoge tvrtke i pojedinici sada su imali platformu koja je omogućavala prodaju aplikacija bez većih ili nikakvih preinaka. Zbog dobro dokumentiranih poziva u operacijskom sustavu i dobrog programskog stoga (za to vrijeme) omogućavalo je stvaranje i demokratiziranje programske podrške koja je tada samo postojala na mini računalima i većim složenijim sistemima. Kroz CP/M pojavila su sljedeće aplikacije koje su imale utjecaj na razvoj korisničih i ostalih aplikacija:

* [[WordStar]] - prvi opće prihvaćeni uređivač riječi

* [[AutoCAD]]

* [[dBase]] - baza podataka

* [[Multiplan]]

* [[TurboPascal]]

* [[XMODEM]]
Pojavom CP/M-a isto tako započeo je veći pokret u izdavanju slobodne programske podrške preko organizacije [[Lifeboat Associates]].


== Poznata računala s CP/M operativnim sustavom ==
== Poznata računala s CP/M operativnim sustavom ==

Inačica od 22. lipnja 2016. u 02:01

CP/M
Snimak ekrana s CP/M 2.2
IzdavačDigital Research
PlatformaIntel 8080,Intel 8085,Intel 8086, Zilog Z80, Zilog Z8000, Motorola 68000, i mnogi drugi
ŽanrOperacijski sustav
Internetska
stranica
Digital Research official CP/M page

CP/M je skraćenica engleske složenice Control Program for Microcomputers i ime je za operacijski sustav kojeg je bila razvila američka tvrtka Digital Research. CP/M je bio jako raširen u kasnim 70-im i 80-im godinama 20. stoljeća. CP/M je bio je prvi proglašen industrijskim standardom za operacijske sustave.


Arhitektura

CP/M-ova osnovna inovacija bilo je rasčlanjivanje operacijskog sustava na četiri osnovna funkcijska dijela[1]:

  • CPP (CP/M) (naredbeni preradnik) - ASCII zaslon
  • BDOS (basic disk operating system - osnovni operacijski sustav za diskove i datoteke)
  • BIOS (Basic I/O system - osnovni sustav za ulazno/izlazne jedinice)
  • TPA (transient program area) - tranzitivno programsko područje je mjesto koje drži programme koji su učitani od strane CPP-a

Rastavljanjem CP/M na četiri osnovne abstrakcije omogućilo je da se CP/M proširi na mnoga računala; tvorci novog računarskog sistema nisu više trebali više razviti novi operacijski sustav, već su samo trebali napisati BIOS, dok su ostale dvije komponente CPP i BDOS samo je bilo potrebno ponovno prevesti s programom-prevodiocem. Ideje iz CP/M-a poslužile su za razvoj operacijskog sustava 86-DOS koji je kasnije postao Microsoft MS-DOS.

CP/M bio je jednostavan i učinkovit sistem koji nije zahtjevao mnogo od resursa nekog sistema. Bez BIOSa koji je bio različit na svakom stroju, ostale komponente kao zauzimale su: BDOS 3.584 bajta memorije, dok je CPP oduzimao 2.048 bajta radne memorije. CP/M je za BIOS imao određeno 3.584 bajta memorije, cijeli CP/M uzevši u obzir u nultu stranicu stajao bi unutar 9.316 bajta, što je relatvno malo s obizrom na dužnosti koje je operacijski sustav mogao obavljati.

Naredbeni preradnik ili CPP

Zadatak naredbenog preradnika (komandnog processora) (engleski: Console Command Processor, ili CCP) bilo je čitanje pritisnutih s tipkovnice ii pisanje inih na zaslon terminal. U isto vrijeme kada je čitao pritisnute tipke s tipkovnice i prenosio je rezultate tog čitanja prema izlaznoj jedinici, uspjevao je i pretvarati te pritisnute znakove u naredbe, ako bi one bile tako utipkane. Kod pokretanja operacijskog sustava, konzola bi prikazala sljedeći upit na zaslonu:

A>

Iza toga upita stajalo bi obično trepereći pokazivač koji je bio znak korisniku ili korisnici sistema da je operacijski sustav spreman da primi naredbu ili ulaz od korisnika sistema. Znakovi A> označavalo je trenutnu radnu jedinicu ili disk. Ako je neki system imao više jedinica prebacivanje na tu jedinicu ili disk vršio bi se pisanjem imena diska npr. ako bi korisnik upisao B: i poslje toga pritisnuli tipku za novi red (Enter, ili Return, Novi red) tada bi Sistemi koji su imali više jedinica, tada bi se ispis na lijevoj strain zaslona promjenio u B> , i svaka nova naredbena linija počela bi s B> [[

File:CPM 2-2.jpg|thumb|200x200px]]

Dizajn naredbenog sučelja CP/Ma i način rada bio je sličan operacijskim sistemima koja su tada bila popularna na miniračunalima kao kao RT-11 za DEC PDP-11 ili OS/8 za DEC PDP-8, i koja su kasnije nasljeđena u operacijskim sustavima kao UNIX ili MS-DOS.

Naredbe

Narebe nisu bile osjetljive s obzirom na malo ili veliko slovo.

Naredba Uporaba
DIR DIR <filespec>
ERA ERA <filespec>
REN REN <filespec1>=<filespec2>
SAVE SAVE <mem stranice> <datoteka> mem-strance su broj 256 bajtnih stranica po
USER USER <korisnik> korisnik je broj od 0 do 15

BDOS

Za opširniji članak pogledaj članak: BDOS

BDOS je sadržavao 40 osnovnih funkcija koje su rabili korisnički programi, i koje su rabili ostali dijelovi operacijskog sistema za pristup resorsima sistema kao disketne jedinice, serijski međusklopovi, zaslon i slično. Funkcije su bile dostupne preko sistemskih poziva koje su bili pokazivači u memoriji računala koji je držao BDOS preko kojih su izvršavane podrutine. Nakon izvršavanja ovih podrutina, BDOS bi se vratio nazad u program koji je pozvao njegovo izvršavanje. BDOSova svrha je bila u stvari standardna ulazno izlazna biblioteka podrutina za sve CP/M programe.

Logičke jedinice

U CP/M u postoje četiri logičke jedinice koje su jedino dostupne aplikacijskim programima. One su

Ime Opaska
CON Konzola, rabi se za čitanje tipkovnice i pisanja na zaslon
LST Logički pisač
RDR Logička jedinica za čitanje s diskete ili krutog diska
PUN Logička jedinica za zapisivanje na disketu ili kruti disk

Programi nisu imali izravni pristup ulazno izlaznim jedinicama već su trebale rabiti CP/Mov API. Primjerice ako je program trebao uzeti upit od korisnika preko tipkovnice, program je trebao koristiti logičku jedinicu CON, dok za ispis se rabio LST. Programi su mogli skrenuti izlaz za LST na CON , i tako je bilo moguće raditi preinake prije nego što se izlaz preusmjerio na fizički pisač.

BIOS

Opširniji članak: BIOS

BIOS je strojno ovisni dio operacijskog sustava koji je bio uveden kao novina kroz CP/M, i vrsta je abstrakcije koja je bila vrlo važna za razvoj računarstva. Ideja oko BIOSa bila je unikatna u tome što za svaki stroj je bilo potrebno samo promjeniti BIOS i CP/M bi trebao raditi na ciljnom stroju. U BIOSu su se nalazile sve rutine koje su vezale strojevni dio s operacijskim sustavom: tipkovnica, zaslon, disketne jedinice, ostale ulazno/izlazne jedinice, tvrdi diskovi i slično. BIOS je obično započinjao s skokovima na razne potprograme, i program za BIOS za inačicu CP/M v1.3 izgledao je ovako:

JMP BOOT    ;-3: Potprogram za hladni start
JMP WBOOT   ; 0: Potprogram za topli start
JMP CONST   ; 3: Status konzole
JMP CONIN   ; 6: Ulaz konzole
JMP CONOUT  ; 9: Izlaz konzole
JMP LIST    ;12: Izlaz za pisač
JMP PUNCH   ;15: Izlaz za bušenu vrpcu
JMP READER  ;18: Ulaz za bušenu vrpcu
JMP HOME    ;21: Pomakni glavu diskete na nultu liniju
JMP SELDSK  ;24: Izaberi disketnu jedinicu
JMP SETTRK  ;27: Postavi broj linije
JMP SETSEC  ;30: Postavi broj sektora
JMP SETDMA  ;33: Postavi adresu za DMA Set DMA address
JMP READ    ;36: Čitaj sektor
JMP WRITE   ;39: Piši sector

TPA

Sklopovni model

Da bi se mogao shvatiti organizacija i arhitektura CP/M-a potrebno je uzeti u obzir minimalnu odnosno osnovnu konfiguraciju koja je bila dostadna da bi operacijski sustav mogao pokrenuti. Tokom 70-tih za minimalni 8-bitni CP/M sustav bilo je potrebno imati sljedeće komponente:

  • Terminal koji radi s ASCII zakovima
  • Mikropreradnik Intel 8080
  • Najmanje 16 KB osnovne memorije (glavne memorije)
  • Način pokretanja računala s prvog sektora disketne jedinice
  • Jednu disketnu jedinicu

Jedini sklopovni sustav za CP/M koje je podržavala tvrtka Digital Research took 1970-tih bili su sistemi koji su rabili mikropreradnik Intel 8080. Sve druge tvrtke koje su proizvodile CP/M kompatibilne sustave za druge mikroprocesore trebale su same mjenjati i napisati sami dijelove CP/M operacijskog sustava za taj mikroprocesor i također su trebali napisati programsku podršku za svo drugo sklopovlje koje su htjeli rabiti. Iako ovo zvuči kao preobiman zadatak, Digital Research jer posao prepravljanja olakšao zbog toga što je CP/M imao tri osnovne abstrakcije: CPP, BDOS, i BIOS od kojih su CPP i BDOS bili dijelovi koje nije bilo trebalo toliko prepravljati i većinu promjena za tvrtke koje su proizvodile CP/M kompatibilna računala događala u BIOS-u, tj. u programima koji su imali izravni dodir s sklopovljem. Digital Research je također pružala pomoć onim tvrtkama koje su trebale napisati svoj BIOS uz naplatu. Zbog relativne kompatibilnosti mikropreadnika Zilog Z80 s Intelovim 8080, prebacivanje CP/M-a bilo je jednostavno isto zbog toga što tvrtka Digital Research u izvornom kodu jezgre (BDOS, CCP, osnovne transientne naredbe) nije sadržavao nikakve naredbe koje su bile osobite za Z80.

Memorijska karta

Kao standard za CP/M Digital Research je imao sljedeću standardnu memorijsku kartu

Heks Adresa Sadržaj
$F200-$FFFF BIOS
$E400-$F1FF BDOS
$DC00-$E3FF CCP
$0100-$DBFF TPA ili memorija za programe
$0000-$00FF Nulta stranica

Za mnoge sisteme osnovni program za pokretanje stroja bio je sadržan u sistemskom ROMu, jer primjerice Intel 8080 zahtjeva da program započne na adresi 0, dok recimo CP/M ima zahtjev da RAM započinje od lokacije 0. Za strarije strojeve, pokretanje stroja se vršilo ručno preko konzole s raznim tipkama preko kojih se ručno ubacivale naredbe za pokretanje.

Nulta stranica

U 8-bitnim CP/M sistemima nulta stranica je zauzimala privih 265 bajta memorije stroja. Ovaj dio memorije rabio se za komunikaciju u operacijskom sistemu.

Heks Adresa Širina (bajtovi) Opaska
$00-$02 3 Sadrži narebu za skok na BIOS obično kod za JMP (1 bajt) i prvu adresu BIOSa $F400(2 bajta)
$03 1 Bajt za ulaz izlaz, rabio se sa ponovno raspoređivanje priključenih uređaja
$04 1 Bajt koji u prva donja četiri bita sadrži broj aktivne disketne jedinice (maks 16, raspon 0 do 15), i u 4 gornja bita broj aktivnog korisnika (maks 16, raspon 0 do 15)
$05-$07 2 Naredba na skok na prvu adresu BDOSa JMP $E400
$08-$3A 51 Vektori za pononvo pokretanje i za prekide koje rabi mikropreradnik
$3B-$4F 15 Rezervirano
$50 1 Disketna jedinica s koje se učitao CP/M rabi se za inačicu v3.0
$51-$52 2 Adresa za lozinku za prvi FCB (upravni blok datoteke) (CP/M v3.0)
$53 1 Dužina lozinke za prvi FCB (CP/M v3.0)
$54-$55 1 Adresa za lozinku za drugi FCB (CP/M v3.0)
$56 1 Dužina lozinke za drugi FCB (CP/M v3.0)
$57-$5B 5 Rezervirano
$5C-$6B 16 Rabi se za FCB 1
$6C-$7F 19 Rabi se za FCB 2 (prebrisan ako je FCB 1 otvoren)
$80 1 Broj znakova koji čekaju u naredbenom repu
$81-$FF 1 Naredbeni rep, svi znakovi iza imena programa

Datotečni sustav

Datotečni sustav koji je bio razvijen za CP/M u bio je ograničen po današnjim standardima, i u prvoj inačici podržavao je diskove čiji obujam nije mogao preći preko 8 Mb. Kasnije inačice omogućavale su podršku za veće diskove. CP/M imao je genijalan sistem čuvanja resorsa na disketama, tako je primjerice prilikom učitavanja diskete, nakon što učita direktorij počinje izračunavati broj slobodnih blokova na nekoj disketi, i kao rezutat tog izračunavanja je bitovid (bitmap) od 23 bajta za disketu od 180 kb, koji CP/M drži u memoriji sistema. Ovako CP/M ne troši jedan blok na disketnoj jedinici, isto tako sistemu nije potrebno konstantno pozivati sistemske programe koji provjeravaju konsistentnost diskete ili disketne jedinice. Ovo nepisanje slobodnih blokova na disketu imalo je nedostatak koji je zahtjevao od korisnika da osvježi disketu prije nego što je bila izvađena is disketne jedinice. Ako korisnik nije ovo napravio-la, moglo je doći do korupcije diskete.

CP/M-u je imao samo jedan direktorij, koji je sadržavao upise sa fiksnim 32 bajtne. Upisi su imali je sljedeći oblik:

Širina (bajtovi) Sadržaj
1 SS (status). Vrijednosti 0-postoji, 0E5h - obrisan, 80h - skrveno (samo za inačicu v1.4)
8 Ime datoteke
3 tip datoteke
1 Extent (produžetak) rabi se za datoteke preko 16 kb, vrijednosti od 0 do 31 ovo omogućava datoteke s maksimalnom veličinom od 512 kb
1 S1, nije korišteno vrijednost 0
1 S2, nije korišteno vrijednost 0
1 RC, broj upisa (records) svaki upis jednak je 128 bajta, ako je RC jednak 80h tada je ovaj produžetak pun, i mora se stvoriti novi unos u direktorij, i povećati broj koji se nalazi u produžetku za 1
16 Broj 1 kb blokova, na primjer ako je datoteka ima veličinu od 4kb data AL može imati vrijednost 06h08h09h05h00h00h00h00h00h00h00h00h00h00h00h00h . Brojevi označavaju broj bloka a disketi, a 00h označava blok nije dodijeljen u datoteci. Maksimalna broj blokova koji se može dodati je 16, što znači da veličina datoteke je 16 kb

Veličina datoteke u CP/M-u bila je ograničena na 16 kb, no da bi prešli preko tog problema, dizajneri su počeli rabiti bajt za produžetak koji je omogućavao nizanje 16 kb datoteka u red jedan za drugim. Svaka tako produžena datoteka bila je uvedena u direktoriju diskete ili jedinice tvrdog diska. Svaka takva datoteka bila je posebno unešena u direktorij diskete ili disketne jedinice.[2]


Tip datoteke Opaska
ASM Izvorni kod u assembleru
BAK Preslika datoteke koja se uređivala
BAS Izvorni kod u BASICu
COB Izvroni kod u COBOLu
DAT Datoteka u ASCII formatu

Povijest, razvoj i inačice

Dok je radio na svome magisteriju na Fakultetu u Washingtonu 1968. godine Gary Kindall na razvoju sistema za spremanje podataka na diskovima, četiri godine kasnije na istom fakultetu obranio doktorat znanosti na temi programa prevoditelja 1972. koji je bio nazvan XPL a ovaj program prevoditelj je bio je razvijen u ALGOLu. Nakon što je završio svoj doktorat, 1973. godine Gary Kindall prelazi u tvrtku Intel, gdje razvija programe prevodioce, alatke, i tamo razvija programski jezik PL/M.

Inačice v1.x

Dok radio je za tvrtku Intel Kindall je razvio prvu inačicu operacijskog sustava CP/M razvio je između 1973. i 1974. godine kao operacijski sustav za računalo Intel Intellec-8 koji je bio opremljen s 8 colnom disketnom jedinicom od tvrtke Shugart Associates. Operacijski sustav bio je napisan u programskom jeziku PL/M kojeg je razvio Kindall dok je radio u Intelu, a prilikom njegovog razvoja Kindal je dobio a inspiraciju da napiše za operacijski system. Iste godine Kindall je osnovao tvrtku Intergalactic Digitital Research Inc. koja je kasnije bila preimenovana u Digtital Research Inc. (skraćenica DR ili DRI).

Pri stvaranju CP/M-a Kindall je bio nadahnut s operacijskim sustavom TOPS-10 koji je radio na sistemuDECsystem-10, no razumio je da za prihvaćanje računala u širem polju je potreban ozbiljni operacijski sustav, alatke i porgramska podrška. Kindall bio je svjestan da će nova 8-bitna računala napraviti promjenu u cijeloj industriji i da je pitanje koje se treba riješiti jest postojanje operacijskog sustava koji bi pokretala nova računala ili hobi računala. Kindall je smatrao da će programsko okružije i operacijski sustav imati presudni utjecaj u pomicanju i razvoju nove industrije. Svoju prvu inačicu v1.0 Kindall je ponudio Intelu jer ga je razvio za Intel Intellec-8 , no upravitelji Intela nisu nisu imali neka zanimanja za proizvodnju i prodaju gotovih računarskih sistema.

Nakon što je Intel odbio njegovu ideju, Kindall je krenuo svojim putem jer je vjerovao da će se nova računala proširiti i biti dostupna svakome. Dne 1975. tvrtka IMSAI kupila je od Kindalla inačicu v1.2 za svoje računalo IMSAI 8080 u kit inačici, a 1976. godine IMSAI je angažirao Kindalla da razvije bolju inačicu tvorničku inačicu IMSAI 8080 za cijenu od USD$25.000 (USD$105,551.85 u 2016. [3]). Kindall je uspio razviti novu inačicu v1.3 skupa sa svojim studentom Glenom Ewingom. Ime operacijskog sustava jest skraćenica složenice Control Program/Monitor, no kasnije 1977. godine je ovo začenje bilo promjenuto u Control Program for Microcoputers.

Nakon pojave CP/Ma na IMSAI 8080, zanimanje se podiglo za novi operacijski sustav i posao je krenuo jer su nova računala koja su bila napravljena rabeći model sabirnice S-100 s mikropreradnicima Intel 8080, Intel 8085 i Zilog Z80 su počela prepraljivati tržište. Pošto je CP/M bio zasnovan na tim skopovskim principima, i od novih tvrtki zahtjevali su samo male preinake u BIOSu, cijeli posao i rizik oko razvoja novog sistema bio je smanjen i doveden na minimum. Ovo je uzrokovalo brzo prihvaćanje na tržištu. Mnogi poduzetnici započeli su s razvojem i prodajom programske podrške za računala koja su rabile CP/M i za njih nisu bile potrebne preinake jer softver na jednoj CP/M stroju mogao se s jako malim preinakama rabiti na nekom drugom stroju ili preinake nisu bile uopće potrebne.

Problemi sa disk formatima, skopovljem i prenosivosti

Inačice

  • v1.0 do v1.4
  • v2.2
  • v3.1
  • v4.1
  • CP/M-86
  • MP/M
Sistemska CP/M disketa za računalo Commodre 128

Programska podrška

Pojava CP/M-a kao standardnog operacijskog sustava imao je velik utjecaj na razvijanje industrije za programsku podršku. Mnoge tvrtke i pojedinici sada su imali platformu koja je omogućavala prodaju aplikacija bez većih ili nikakvih preinaka. Zbog dobro dokumentiranih poziva u operacijskom sustavu i dobrog programskog stoga (za to vrijeme) omogućavalo je stvaranje i demokratiziranje programske podrške koja je tada samo postojala na mini računalima i većim složenijim sistemima. Kroz CP/M pojavila su sljedeće aplikacije koje su imale utjecaj na razvoj korisničih i ostalih aplikacija:

  • WordStar - prvi opće prihvaćeni uređivač riječi

Pojavom CP/M-a isto tako započeo je veći pokret u izdavanju slobodne programske podrške preko organizacije Lifeboat Associates.

Poznata računala s CP/M operativnim sustavom

Prožetiji popis računala možete pronaći u članku: Popis računala s operacijskim sustavom CP/M

Emulatori

Postoji razna programska podrška za novije operacijske sustave koje omogućavaju emulaciju operacijskog sistema CP/M.

Vanjske poveznice

  1. http://www.classiccmp.org/cpmarchives/cpm/mirrors/www.geocities.com/SiliconValley/5711/architec.html
  2. http://members.iinet.net.au/~daveb/cpm/format14.html
  3. http://www.usinflationcalculator.com/ Inflacijski kalkulator za USD$