Mikä on todellinen tila?

Todellinen tila on muistin osoitemalli ja toimintatila tietokoneen mikroprosessoreille. Todellisessa tilassa muistia, johon ohjelma voi päästä käsiksi – yleensä hajamuistia (RAM) – ei hallita tai puskuroida millään tavalla laitteisto, ohjelmisto tai perus- ja lähtöpalvelut (BIOS). Tämä tarkoittaa sitä, että ohjelma pystyy käyttämään kaikkia saavutettavia muistiosoitteita riippumatta siitä, mihin muistia käytetään, ja sen on hallittava kaikki muistin lukemiseen ja kirjoittamiseen liittyvät näkökohdat itse. Todellisen tilan käyttöön liittyy useita rajoituksia, mukaan lukien se, että käytettävissä olevan muistin määrä on rajoitettu 1 megatavuun, koska tässä tilassa suoritin sallii osoitteiden pituuden vain 20 bittiä. Käytännön näkökulmasta tietokoneohjelmistot eivät enää käytä reaalitilaa, koska se korvattiin turvallisemmalla, laajennettavalla ja joustavammalla osoitetilalla, joka tunnetaan nimellä suojattu tila.

Tietokoneen keskusprosessoriyksikkö (CPU) on paikka, jossa todellinen tila voidaan aktivoida, ja useimmat tilan näkökohdat käsittelevät itse asiassa ongelmia, joita yleensä nähdään kokoonpanokielellä kirjoitetuissa sovelluksissa, koska ne ovat luonteeltaan melko atomisia. Alkuperäiseen 8086 -arkkitehtuuriin perustuvat suoritinpiirit alkavat todellisessa tilassa, kun ne on kytketty päälle, jotta ne voivat ajaa ohjelmia, jotka on kirjoitettu aiemmille laitteille, vaikka tämä usein vaatisi emulointiohjelmiston onnistumisen. Suojattu tila on korvannut todellisen osoittamisen lähes kokonaan vuodesta 2011 lähtien siihen pisteeseen, että käytettävissä on hyvin vähän kääntäjiä, jotka voivat jopa koota ohjelman, joka voi käyttää todellista osoittamista, ja vielä vähemmän valtavirran käyttöjärjestelmiä, jotka voisivat käyttää sitä.

Muisti reaalitilassa on pohjimmiltaan yksi, lineaarinen tavusekvenssi, jota voidaan käyttää vapaasti osoitteella, joka koostuu 16 -bittisestä segmenttiosoitteesta ja 4 -bittisestä offset -segmentistä, mikä tekee täydellisen 20 -bittisen osoitteen yhdistettynä. Ohjelma voi käyttää mitä tahansa muistipaikkaa ja lukea tai kirjoittaa mitä tahansa sijainnista riippumatta. Tämä tarkoittaa, että ilman asianmukaista hallintaa ja tietämystä todellisen osoitetilaa käyttävä ohjelma voi helposti korvata käyttöjärjestelmän ja järjestelmän BIOSin, laukaista fyysisen laitteiston keskeytyksen tai lähettää vahingossa signaalin oheislaitteelle. Tämä voi paitsi aiheuttaa järjestelmän jäätymisen tai kaatumisen, myös tietojen menetyksen tai laitteiston fyysisen vaurioitumisen.

Prosessori -arkkitehtuurin edistyessä suojattu tila korvasi lopulta todellisen tilan lähes kaikissa ohjelmistoissa. Ajan myötä todellisen osoitetilan käyttö tuli tarpeettomaksi, koska se ei pystynyt käyttämään yli 1 megatavua RAM -muistia eikä pystynyt käyttämään yli 20 bittiä järjestelmäväylää, mikä tarkoittaa, että se pystyi käyttämään vain murto -osaa useimmissa käytettävissä olevista resursseista tietokoneita. Todellinen osoite aiheuttaa myös merkittävän turvallisuusriskin. Yksi harvoista tavoista kirjoittaa ohjelma, joka käyttää todellista osoitetilaa, on käyttää kokoonpanokieltä ja suorittaa ohjelma erityisellä levykäyttöjärjestelmällä (DOS), joka ei automaattisesti vaihda suojattuun tilaan käynnistyksen yhteydessä.