Kezdőoldal » Számítástechnika » Programozás » Linux-os forrásprogramokat...

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?

Figyelt kérdés

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...



2017. okt. 27. 18:44
 1/8 anonim ***** válasza:
93%
Egy részleges POSIX implementáción keresztül. Több ilyen implementáció is volt a DOS-hoz, pl. emx+gcc, DJGPP, és a DR-DOS-hoz is volt POSIX bővítés. Van egyébként Symbian-hoz is, Windows NT-hez is, Androidhoz is, meg még egy tucat rendszerhez.
2017. okt. 27. 19:05
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
0%

"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.

2017. okt. 27. 20:28
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
A lényeget le is hagytam: a DOS valós, míg a Linux védett módú operációs rendszer.
2017. okt. 27. 20:39
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

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.

2017. okt. 28. 08:52
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

"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.

2017. okt. 28. 15:04
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

"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.

2017. okt. 29. 01:46
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:
Sose értettem anno, mi az a "protected mode runtime library" :-)
2017. okt. 29. 10:36
 8/8 anonim ***** válasza:

"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.

2017. okt. 29. 19:10
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!