KERNAL

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
busolă Dezambiguizare - Această intrare se referă la sistemul de operare al computerului de acasă Commodore . Kernal este uneori transcrierea greșită a nucleului .

KERNAL (acronim pentru Keyboard Entry Read, Network și Link ) este numele nucleului sistemului de operare rezident în ROM - ul computerelor de acasă pe 8 biți produse de Commodore International .

Istorie

KERNAL s-a născut pentru Commodore PET din 1977 și a fost ulterior integrat în Commodore VIC-20 , Commodore 64 , Commodore 16 , Commodore Plus / 4 și Commodore 128 . A fost scris inițial de John Feagans , care a introdus ideea de a separa rutinele de bază ale sistemului de operare și a fost apoi dezvoltat în continuare de mai mulți oameni, în special de Robert Russell , care a adăugat multe dintre caracteristicile pentru VIC-20 și C64.

La începutul dezvoltării sale pentru PET, KERNAL era cunoscut intern de Commodore sub numele de kernel, dar în 1980 Russel a greșit să scrie termenul pe notele sale marcând kernal . Când Neil Harris și Andy Finkel, cei care se ocupau de elaborarea documentației produsului Commodore, au început să lucreze la notele lui Russell pentru a scrie manualul programatorului VIC-20, nu au observat greșeala de ortografie, raportând-o în documentele oficiale. [1]

O altă versiune, raportată de scriitor / programator Jim Butterfield și alții, afirmă în schimb că cuvântul Kernal este acronimul (sau poate acronimul inversă ) de K eyboard E nÎncercați R EAD, N ReŃeaua, A nd L cerneală, care de fapt face ca o un anumit sens având în vedere rolul lui KERNAL în sine.

Berkeley Softworks a folosit ulterior termenul pentru a denumi rutinele centrale ale sistemului său de operare GUI pentru computerele pe 8 biți, GEOS KERNAL.

Bug-ul a fost corectat când a fost dezvoltat sistemul de operare pentru seria de computere Amiga : Amiga ROM Kernel a folosit transcrierea exactă.

Caracteristici tehnice

KERNAL consta din rutine de nivel scăzut , apropiate de hardware - ul mașinii (spre deosebire de rutinele de nivel înalt ale interpretului BASIC , de asemenea, rezident în ROM), apelabile printr-o masă de salt , din care partea centrală, din motive de retrogradare compatibilitate , a rămas de-a lungul anilor la fel pentru toate computerele din seria de 8 biți. [2]
ROM-ul KERNAL a ocupat ultimii 8 KB din 64 KB de spațiu de adrese CPU ( $ E000 la $ FFFF). Mai multe rutine KERNAL ar putea fi apelate printr-o tabelă de salt prezentă în RAM pagina 3 (adrese de la $ 0300 la $ 0333): apelurile către aceste rutine ar putea fi interceptate pur și simplu prin modificarea adreselor prezente în tabelul de salt, astfel încât să indice modificarea sau înlocuirea versiuni ale aceluiași., scrise de utilizator. [3]

Eșantion de cod

Un exemplu simplu, caracteristic al utilizării KERNAL este dat de următorul cod în ansamblul 6502 (scris cu asamblatorul ca65 ):

 CHROUT = $ ffd2; CHROUT trimite un caracter dispozitivului de ieșire curent
CR = $ 0d; Cod PETSCII pentru „Întoarcere în coș” 
;
Buna ziua:
        ldx # 0; începe cu caracterul în poziția 0
Următorul:
        mesaj lda, x; citește al X-lea caracter al mesajului
        beq gata; ieșiți din buclă când este citit un octet zero
        jsr CHROUT; sunați la CHROUT pentru a afișa caracterul pe dispozitiv
                        ; ieșire curentă (de obicei ecranul)
        inx; următorul personaj
        bne în continuare; se repetă până când caracterul citit este 0 - sfârșitul șirului
                        ; (lungimea maximă a șirului de 255 octeți)
Terminat:
        rts; iese din subrutină
;
mesaj:
        .byte " Bună, lume! "
        .byte CR, 0; Întoarcerea transportului și 0, 0 este marcatorul de sfârșit de șir

Acest exemplu de cod folosește rutina CHROUT , situată la adresa hexazecimală $FFD2 (65490), pentru a trimite un șir de text dispozitivului de ieșire curent (de obicei reprezentat de ecran).

Notă

  1. ^ Brian Bagnall, On the Edge: The Spectacular Rise and Fall of Commodore , Variant Press, 2006, p. 202, ISBN 978-0-9738649-0-8 .
    ( RO )

    " Nucleul este cea mai fundamentală parte a unui program, de obicei un sistem de operare, care se află în memorie în orice moment și oferă serviciile de bază. Este partea sistemului de operare cea mai apropiată de aparat și care poate activa hardware-ul direct sau interfața cu un alt strat software care conduce hardware-ul. "

    ( IT )

    „Nucleul este cea mai fundamentală parte a unui program, de obicei un sistem de operare, care se află în memorie tot timpul și care oferă serviciile de bază. Este partea sistemului de operare cea mai apropiată de mașină și care poate activa hardware-ul direct sau interfața cu un alt strat software care gestionează hardware-ul. "

  2. ^ Brian Bagnall, On the Edge: The Spectacular Rise and Fall of Commodore , Variant Press, 2006, p. 202, ISBN 978-0-9738649-0-8 .
    ( RO )

    "Tabelul de salt kernal, folosit pentru a accesa toate subrutinele din kernal, era o matrice de instrucțiuni JMP (jump) care duceau la subrutinele reale. Această caracteristică a asigurat compatibilitatea cu software-ul scris de utilizator în cazul în care codul din ROM-ul kernal trebuia mutat într-o revizuire ulterioară. "

    ( IT )

    „Tabelul de salt kernal, folosit pentru a accesa toate subrutinele kernale, a fost un vector al instrucțiunilor JMP (jump) care duceau la subrutinele reale. Această caracteristică a asigurat compatibilitatea cu software-ul scris de utilizator în cazul în care codul din ROM-ul nucleului a fost mutat, în versiunile ulterioare, de necesitate. "

  3. ^ Brian Bagnall, On the Edge: The Spectacular Rise and Fall of Commodore , Variant Press, 2006, p. 202, ISBN 978-0-9738649-0-8 .
    ( RO )

    "Multe dintre subrutinele kernale (de exemplu, OPEN și CLOSE) au fost vectorizate prin pagina a treia în RAM, permițând unui programator să intercepteze apelurile kernale asociate și să adauge sau să înlocuiască funcțiile originale."

    ( IT )

    "Multe dintre subrutinele kernale (de exemplu OPEN și CLOSE) au fost vectorizate prin pagina a treia în RAM, permițând unui programator să intercepteze apelurile kernale asociate și să adauge sau să înlocuiască funcțiile originale."

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT