www.all2know.com Google WWW All2know fi
  Etusivu Etusivu | Tietoja Tietoja 
  Navigaatio
» Etusivu
» Artikelkategorier
» Luettelo luetteloista
» Aakkosellinen hakemisto
» Kalenteri
» Arvottu artikkeli
» Muokkaa Aiheesta muualla
Viimeisimmät muutokset: 2007-09-08
  Tänne linkitetyt sivut 
Kannettava tietokone
Levyke
MS-DOS
Tiedostopääte
Lista linkeistä » Komentotulkki
BIOS
Commodore 128
Digital Research
Lista linkeistä » Luettelo käyttöjärjestelmistä
Lista linkeistä » Multiplan
QDOS
  Muut kielet 
daCP/M
deCP/M
frCP/M
noCP/M
svCP/M
Luokka: Käyttöjärjestelmät

CP/M

CP/M (Control Program for Microcomputers tai Control Program/Monitor) on Digital Researchin Gary Kildallin kehittämä käyttöjärjestelmä, joka oli 'teollisuusstandardi' 1970-luvun loppupuolella ja 1980-luvun puoleenväliin asti.

CP/M:stä oli versiot useille eri suoritinarkkitehtuureille, mutta Intel 8080-yhteensopivaa suoritinta, erityisesti Zilog Z80:aa käyttävissä mikrotietokoneissa. CP/M tuki kaikkiaan 64 kB keskusmuistia. Suosittu aikainen järjestelmä perustui 8080-suorittimeen, 4 kB muistiin ja yhteen 8'-levykeasemaan. Myöhemmissä tietokoneissa oli Zilog Z80, jopa 64 kB muistia ja 720 kB levykeasema.

8-bittinen CP/M-käyttöjärjestelmä koostui kolmesta osasta:

  • komentotulkki CCP tai console command processor
  • levykäyttäjärjestelmä BDOS
  • syöttö- ja tulostusjärjestelmä BIOS.

BIOS oli laitteistoriippuvainen ja se piti kirjoittaa laitteistolle sopivaksi, loppu käyttäjärjestelmästä oli laitteistoriippumatonta. BIOS sisälsi 17 funktiota (CP/M versiossa 2.2), joita käytettiin näppäimistön lukuun, merkin tulostukseen näytölle ja sektorin kirjoittamiseen ja lukuun levykkeeltä. Tietokoneen käynnistyessä BIOS latasi käyttöjärjestelmän muut osat levykkeeltä. BDOS sisälsi toiminnot tiedostojen käsittelyyn, näytölle kirjoittamiseen ja tulostamiseen. CP/M käsittelee laitteistoa vain BIOS-kutsujen kautta. Kun BIOS oli kirjoitettu uudelle laitteelle, käyttöjärjestelmä toimi siinä. CP/M versiossa 2.2 käyttöjärjestelmän koko oli 3584 tavua. Sen lisäksi komentotulkki vie vielä noin kaksi kilotavua. Ohjelmien käynnistämisen lisäksi käyttöjärjestelmässä on 38 funktiokutsua, lähinnä tiedostojen käsittelyyn.

Muistin alkupäästä osa on varattu suorittimen keskeytysvektoreillevektoreille, muutamille muuttujille ja komentorivipuskuriksi käynnistettävälle ohjelmalle.

Tietokoneen käynnistyttyä se jäi 'A>'-kehotteeseen, josta voi käynnistää ohjelmia tai käsitellä tiedostoja komentotulkin avulla. Komento DIR näyttää levykkeellä olevat tiedostot. ERA tuhoaa tiedoston. Tiedostojen kopiointi tapahtui käskyllä PIP = (nimi tulee DEC:in PDP-6:n Peripheral Interchange Program -ohjelmasta). PIP pystyi myös kopioimaan tiedostoja erikoislaitteisiin, kuten CON: näytölle, tai syöttö näppäimistöltä, LST: tai PRN: kirjoittimelle.

1 Ohjelmistot
2 Tiedostojärjestelmä
3 16-bittiset versiot
4 Lähteitä

Ohjelmistot

Ohjelmat toimitettiin 8'-levykkeellä, jolle vakiintyi yhteensopiva 'jakeluformaatti', joka toimi kaikissa tietokoneissa. Myös 5¼'-levykkeitä käytettiin, mutta niille ei ollut yleistä standardia, eivätkä yhden valmistajan koneessa formatoidut levykkeet toimineet toisten valmistajien koneissa.

CP/M oli käytössä jopa sadoissa eri valmistajien tietokoneissa. Suosituimpia olivat Altair, IMSAI 8080, Osborne 1 ja Kaypron kannettavat ja MSX. Luultavasti myydyin CP/M:ää ajava kone oli Commodore 128, jota harva käyttäjä kuitenkaan ajoi CP/M-tilassa. Jopa Apple II:een sai Z80-kortin, jolla pystyi ajamaan CP/M-ohjelmia.

Suosittuja CP/M:n ohjelmia olivat tekstinkäsittelyohjelma WordStar, dBASE-tietokanta, KAMAS, Turbo Pascal ja Multiplan. Suosittu ilmainen XMODEM mahdollisti modeemin käytön ja tiedostojen latauksen.

Tiedostojärjestelmä

CP/M:n tiedostojärjestelmässä levykkeellä on vain yksi hakemisto. Hakemiston koko on kiinteä. Tiedostojärjestelmä ei ollut välttämättä yhteensopiva eri koneiden välillä, joten tiedostojen siirrettävyys voi kärsiä.

Hakemisto on taulukko 32 tavun tietueita. Tiedoston nimelle on varattu tilaa 8+3 merkkiä. Nämä ominaisuudet kopioitiin myöhemmin MS-DOS-käyttöjärjestelmään. Tiedoston nimen lisäksi hakemistotietue sisältää käyttäjäkoodin, tiedoston viemien levylohkojen määrän ja 16 tavua levylohkojen numeroita. Lohkojen määrä sisältää tiedon siitä, montako 128-tavuista lohkoa tiedosto vie levyltä. Tilanvarausta varten puolestaan levy on jaettu 1 kB lohkoihin, ja tiedoston hakemistotietue sisältää tiedon siitä, mitkä lohkot kuuluvat tiedostoon.

Tiedoston kokoa ei ole tallennettu mihinkään, joten tiedostoa käsittelevän ohjelman täytyy pitää huolta siitä, ettei se lue tiedoston lopun ohi. Käytännön nyrkkisäännöksi muodostui päättää tekstitiedostot ohjauskoodilla control-Z (ASCII: SUB tai 0x1A), jonka jälkeen ohjelmat tiesivät tiedoston loppuvan.

Tiedostojärjestelmä ei pidä yllä tietoa siitä, mitkä levykkeen lohkot ovat vapaita, vaan kun käyttöjärjestelmä käynnistyy, se lukee koko hakemiston läpi ja muodostaa bittikartan, johon on merkitty tiedostoille varatut ja käytettävissä olevat alueet. Käytettäessä 180 kB levykettä tämä bittikartta on 23 tavua pitkä, mutta sitä ei tallenneta levykkeelle, ja näin säästetään yksi lohko.

Tiedoston suurin mahdollinen koko olisi 16 kB, koska yksi hakemistotietue voi osoittaa vain 16 lohkoa, mutta suunnittelijat pitivät tätä epäkäytännöllisenä, joten yli 16 kB:n tiedostot käyttävät useamman hakemistotietueen. Tähän käytetään hakemistotietueen extends-kenttää, joka kertoo monesko tiedostolle varattu tietue on kyseessä.

Lisäksi CP/M:n hakemisto sisältää käyttäjä-kentän. Käyttöjärjestelmä ei sisällä hakemistoja, mutta tiedostoja voi ryhmitellä ryhmiin sen avulla. Käyttöjärjestelmä listaa ainoastaan ne tiedostot, joiden käyttäjä-kenttä on saman kuin nykyinen käyttäjänumero. Käyttäjää vaihdettiin komentotulkin komennolla USER x, jossa x on luku 0--15. Eräät valmistajat lisäsivät tähän salasanakyselyn, mutta peruskäyttäjärjestelmässä käyttäjänvaihtoon ei sisältynyt mitään tietoturvaa, vaan käyttäjää voi vaihtaa ilman salasanoja tms. Ominaisuus oli kuitenkin apuna tiedostoja ryhmiteltäessä.

16-bittiset versiot

CP/M:stä kirjoitettiin myöhemmin versioita 16-bittisille suorittimille. Ohjelmat oli kuitenkin kirjoitettava alusta asti uudelleen, koska ne olivat assemblyaa. Yksi ensimmäisistä versioista oli CP/M-86 Intel 8086 -suorittimille ja sitä seurasi CP/M-68k Motorola 68000:lle. Myös Zilog Z8000:lle oli CP/M-8000.

Lähteitä

Tarjoaa Wikipedia, vapaa tietosanakirja. Aiheesta muualla. Kaikki teksti on saatavilla GNU Free Documentation License Aiheesta muualla.