Egy operációs rendszer nélküli dologra hogyan lehet feltölteni programot, vagy beprogramozni?
4> " A BIOS az csak és kizárólag a PC (és PC klón) gépeken létező dolog. Az 1980-as évek elejéből. És ma is ha nem PC ről beszeélünk nincs BIOS."
Pedig van más gépekben is. Rosszul tudtad.
Sőt, még VGA BIOS is létezett/létezik és alkalmasint még HDD kontroller BIOS is.
"Aki meg olyan dolgot állít, hogy egy mobil telefon alaplapjára rá van integrálva a háttért tár az menjen vissza az isokolába egy kicsit tanulni."
Itt is bajok vannak.
De bizony, a mobilokban az a legcélszerűbb, ha az alaplapra van integrálva a háttértér, amit SD kártyával is ki lehet egészíteni.
Operációs rendszerre akkor van szükség, ha párhuzamosan vagy sorosan több program fut egy gépen és az éppen futó folyamatot, annak időigényét nem lehet előre ismerni.
Persze akkor is jól jöhet egy oprendszer, ha a processzek azonos szolgáltatáscsokrot, rutingyűjteményt (pl. libc) igényelnek.
Ha a futó program egyszerűbb, akkor nem feltétlenül kell oprendszer. Persze cserébe mindent meg kell írni, amit a progi csak igényel (pl. libc).
"Egy operációs rendszer nélküli dologra hogyan lehet feltölteni programot, vagy beprogramozni?"
A processzor (pl z80) megtehet olyat, hogy automatikusan végig lépked a memória címeken (0000h..FFFFh) és ahol 00-tól eltérő tartalmat talál, azt elkezdi végrehajtani. Elég, ha a ROM vagy flash RAM fel van programozva és a címtérbe bele van drótozva.
Van olyan proci is, amelyik egy adott címről olvas ki egy másik címet, ahol a futtatandó program található.
Mondjuk 00h..ffh a teljes memória. A proci meg a ffh-ról kiolvassa mondjuk az fh címet és oda ugrik, onnan kezd el olvasni és végrehajtani. Akkor itt a memória (ROM) felprogramozása úgy történik, hogy a progit beírják a fh címtől kezdődően és a ROM legvégére a kezdőcímet (ez itt most a fh) égetik.
"Akkor minden féle fordító, meg mindenféle dolog nélkül, létre lehetne hozni programozási nyelveket?"
Ez hülyeség. Ezt honnan vetted?
De hogy kerül rá egy processzorra az információ? Vagy a háttértárra?
Ha nincs rendszer, akkor fizikailag az információt, a megírt programot, hogyan tudják rárakni?
#26 - A legegyszerűbb esetekben (pl. digitális karóra, számológép, tetris, stb) a végletekig leegyszerűsítve van legalább két chip "összedrótozva": egy, amibe a program bele van égetve, egy meg maga a processzor. (meg még egy rakás másik apróság, de minket most csak ez a két fő egység érdekel) Mikor áramot kap egy ilyen áramkör, a processzor egyszerűen beolvassa a programot a másik chipről, és utasításról utasításra elkezdi végrehajtani.
Ilyen szituációban a program beégetésére vannak cél-eszközök, ezek sokfélék lehetnek. Például egy USB-s céleszköz, amivel a számítógépen megírt és lefordított programot bele lehet írni egy ilyen ROM-ba.
A háttértárakat általában csatlakoztatják valamilyen számítógéphez, és ott kiírják az adatot. Nem kell nagy varázslatra gondolni, kb. arról beszélünk, mintha egy pendrive-ra írnál egy Windows vagy Linux telepítőt.
Most lett elmagyarázva. A proci áramot kap, meg órajelet. Elindul. A hozzá illesztett memória első (ez a 00.) rekeszéből beolvassa, amit ott talál. Ha az tartalmilag 00 akkor tovább lépteti a címregisztert 00-ról 01-re. Ha ott is 00 van akkor tovább lép a 01-ről a 02-re, majd a 03-ra és így tovább, amíg nem talál valamit, ami nem 00. Azt beolvassa és a számtól függ, hogy mit csinál. Lehet ott mondjuk 12h. Ez legyen az a MOV utasítás, ami a memória következő címéről beolvassa annak tartalmát az AR regiszterbe. ekkor a programszámláló (ami a memória éppen aktuális címére mutat) nem eggyel, hanem kettővel lesz több. Itt ezen az új címen mondjuk a 13h lesz, ami egy másik MOV utasítás, de ez a köv memóriacímről nem az AR hanem a BR regiszterbe tölti azt, amit ott talál. A következő címen meg mondjuk 20h lesz, ami egy összeadó utasítás opkódja. Ez hozzáadja BR tartalmát AR-hez. A köv. címen a 21h lesz, ami ismét egy MOV utasítás, de ez az AR regiszter tartalmát a memóriába másolja, arra sorszámú a címre, amit a következő címen talál. Ha ott mondjuk 03h van, akkor az AR tartalma a 03. címre kimásolódik, azaz a RAM-ba.
És így tovább, és így tovább.
A memória meg két részből áll, az egyik a RAM a másik a ROM. A ROM-ot fel lehet programozni a rendszeren kívül is. A memória címek meg mennek 0-tól 65535-ig. Ez pont 64k. Ennek mondjuk az alsó fele a RAM a felső meg a ROM. A gép elindul, a proci végig pörög a RAM-on, mert az üres, odaér a ROM-hoz, ami a 32768. címtől kezdődően van 65535-ig. Ugyanez hexában 8000h-tól FFFFh-ig terjed. Ezen a területen már talál programot, amit beolvas, futtat, beolvas, futtat. Ennyi.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!