Linux-os forrásprogramokat miként fordított régen DOS alá egy fordító, hogy működjön, miként kell ezt elképzelni?
DJGPP volt a fordító neve és miként tudott Linux alatt futó programokat DOS alatt is futtathatóvá tenni? A két rendszer közt azért nem kevés eltérés volt...
Gondolom hasonló elven, mint ahogy a CygWin működik (?), az Windows alatt teszi ugyanezt...
"Linux-os forrásprogramokat miként fordított régen DOS alá egy fordító"
Sehogy.
Eleve, a DOS lényegében a BIOS rutinok hívásainak gyűjteménye, míg a linux a boot folyamat után egyáltalán nem támaszkodik a BIOS-ra.
A memóriakezelés is más. A DOS nem ismer (legalább is alapban, extender nélkül) memóriát 1 MB felett, míg a linux csak az 1 MB feletti memóriát ismeri és kezeli.
A DJGPP egy c++ fordító. A dologhoz köze nincs, ahogy a Posix szabványnak se túl sok.
Megírták a programot úgy, hogy lehetőleg ne legyen benne semmi specifikus. Ezután átjavítgatták egy fordítóval a másik operációs rendszerre, ezzel lett egy-egy változat mindkettőre. Ha az új változat fordult a régi operációs
rendszeren, akkor nem kellett két változat.
"A két rendszer közt azért nem kevés eltérés volt"
Ez így van, ezért a futtató környezettől függően szükség van egy rétegre a kettő között. Ezt a réteget a fordító belevarrja a kész kódba.
"Ez így van, ezért a futtató környezettől függően szükség van egy rétegre a kettő között."
Pontosan így van. Egy emulációs layeren lett futtatva a kód.
"Sehogy.
Eleve, a DOS lényegében a BIOS rutinok hívásainak gyűjteménye, míg a linux a boot folyamat után egyáltalán nem támaszkodik a BIOS-ra. ........"
Ennek semmi köze a témához. Ha valami POSIX vagy legalább részben POSIX, akkor teljes egészében vagy részben implementálja a POSIX eljáráshívásokat. Ezt lehet nevezni emulációs layernek. Hogy az adott fordító ezt miképp oldja meg, az már a saját belügye.
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!