Ce este modul real?

Modul real este o schemă de adresare a memoriei și o stare de funcționare pentru microprocesoarele computerului. În modul real, memoria care poate fi accesată de un program — de obicei memoria cu acces aleatoriu (RAM) — nu este gestionată sau stocată în niciun fel de hardware, software sau de serviciile de bază de intrare și ieșire (BIOS). Aceasta înseamnă că un program este capabil să acceseze toate adresele de memorie accesibile, indiferent pentru ce este folosită memoria și trebuie să gestioneze singur toate aspectele de citire și scriere în locațiile de memorie. Mai multe restricții vin cu utilizarea modului real, inclusiv faptul că cantitatea de memorie accesibilă este limitată la 1 megaoctet, deoarece procesorul în acest mod permite adreselor să aibă doar 20 de biți lungime. Dintr-o perspectivă practică, software-ul de calculator nu mai utilizează modul real, deoarece a fost înlocuit cu un mod de adresare mai sigur, extins, mai flexibil, cunoscut sub numele de modul protejat.

Unitatea centrală de procesare (CPU) a unui computer este locul unde poate fi activat modul real, iar cele mai multe aspecte ale modului tratează de fapt problemele observate de obicei în aplicațiile scrise în limbaj de asamblare, deoarece acestea sunt de natură destul de atomică. Cipurile de procesor care se bazează pe arhitectura originală 8086 încep în modul real atunci când sunt pornite pentru a putea rula programe care au fost scrise pentru hardware-ul anterior, deși acest lucru ar necesita adesea un software de emulare pentru a avea succes. Modul protejat a înlocuit aproape complet adresarea reală, începând cu 2011, până la punctul în care există foarte puține compilatoare disponibile care pot chiar compila un program care poate folosi adresarea reală și chiar mai puține sisteme de operare mainstream care l-ar putea rula.

Memoria în modul real este practic o singură secvență liniară de octeți care poate fi accesată liber cu o adresă formată dintr-o adresă de segment de 16 biți și un offset de 4 biți în cadrul segmentului, făcând o adresă completă de 20 de biți atunci când sunt combinate. Un program poate accesa orice punct din memorie și poate citi sau scrie orice, indiferent de ce se află în locație. Aceasta înseamnă că, fără o gestionare și cunoștințe adecvate, un program care utilizează modul de adresare reală ar putea suprascrie cu ușurință sistemul de operare și BIOS-ul sistemului, declanșa o întrerupere hardware fizică sau trimite accidental un semnal către un dispozitiv periferic. Acest lucru nu numai că ar putea cauza înghețarea sau prăbușirea unui sistem, dar ar putea provoca și pierderea de date sau deteriorarea fizică a hardware-ului.

Pe măsură ce arhitectura procesorului a avansat, modul protejat a înlocuit în cele din urmă modul real în aproape toate programele. De-a lungul timpului, utilizarea modului de adresare reală a devenit inutilă, deoarece nu era capabilă să acceseze mai mult de 1 megaoctet de RAM și nu putea folosi mai mult de 20 de biți din magistrala de sistem, ceea ce înseamnă că putea folosi doar o fracțiune din resursele disponibile pe majoritatea calculatoare. Adresarea reală prezintă, de asemenea, un risc semnificativ de securitate. Una dintre puținele modalități de a scrie un program care utilizează modul de adresare reală este să folosești limbajul de asamblare și să executați programul sub un sistem de operare pe disc special (DOS) care nu trece automat în modul protejat la pornire.