Munka alkalmazások freebsd írott, linux

Munka alkalmazások FreeBSD alatt. Bináris Linux kompatibilitás

14.5.1. Hogyan működik?
A FreeBSD támogatja egy ún „futtatható class loader”, amely tulajdonképpen az első szakaszban a rendszer hívás execve (2).

Tény, hogy a FreeBSD több rakodógépek egy helyett, ami meghibásodás esetén, a program végrehajtja a script (script).

Történelmileg az egyetlen rakodó UNIX rendszerek, ellenőrizze a „bűvös szám” (általában az első 4 vagy 8 byte), hogy egy végrehajtható rendszer fájlformátumot ismert, és ha igen, hívja a megfelelő bootloader.

Ha a fájl nem azonosítja a rendszer, mint egy végrehajtható, execve (2) hibát jelzett, és az aktuális parancsértelmező kezdett végre a fájlt script.

Később, sh (1) módosításra került oly módon, hogy ellenőrizze az első két karakter a fájl, és ha ők találták magukat. A fájl fut, mint egy forgatókönyvet a csh (1) (amely azt SCO volt az első, hogy ez a módosítás).

FreeBSD másképp viselkedik: a lista fut letöltők, beleértve a speciális #! rakodó, hogy kívánatos vagy értelmező / bin / sh, ha találtak alkalmas.

FreeBSD futtatható fájl formátum határozza meg a „bűvös szám”. Ebben a szakaszban még nem széles körben, amelyre az operációs rendszer egy fájlt (Linux, Solaris, vagy bármely más, az ELF formátumú futtatható).

Ennek megfelelően, Linux programot kellene "megjelölt" Linux (például, via brandelf segédprogram (1)):

# Brandelf -t Linux fájl

Mikor az ELF-betöltő „márka” Linux, akkor kicseréli egy mutató értékét a proc struktúrában. A rendszer minden hívás indexelt keresztül ez a mutató (a hagyományos UNIX rendszert, egy tömb sysent [], amely tartalmazza a rendszer hívások). Néhány kivétel és a rendszer hívások kezelését egy speciális modul támogatja a Linux kernel.

Plusz, Linux emulátor dinamikusan „change root” a fájl rendszer, ha a keresett fájl (sőt, ugyanazt a dolgot, mint az unió lehetőséget, amikor szerelés fájlrendszerek (nem tévesztendő össze a unionfs!)). Először is, a fájl keresi a könyvtár / compat / linux / eredeti-hely ponton, és csak akkor, ha ez nem sikerül, az / eredeti-hely ponton. Ez lehetővé teszi a Linux programok elvégzésére FreeBSD csapat, ha nem lesz megfelelő Linux parancsokat. Például a másolás FreeBSD uname (1) a / compat / linux / bin /, akkor "kap" Linux programok jelentik, hogy FreeBSD alatt.

Mi a különbség a Linux rendszer hívások és FreeBSD? Tulajdonképpen nem. Az egyetlen különbség (a pillanatban, hogy a jövőben bármi lehet, és valószínűleg meg fog változni), talán az a tény, hogy a funkciók védelmi FreeBSD rendszer kéri, hogy a kernel és a Linux, akkor lehet akár a mag, vagy egy dinamikusan betölthető modul.

Nevezhetjük ezt emuláció? Nem. Mint ilyen, az emulátor (vagy szimulátor) hiányzik. Ebben az esetben, akkor miért mondják, hogy „Linux emuláció”? Ahhoz, hogy „bánt” FreeBSD. 8-). Tény, hogy ez a kérdés a terminológia: nincs szó létezik, amely pontosan leírja ezt a folyamatot. Azt nem mondhatjuk, hogy a FreeBSD fut a Linux alkalmazások (újrafordítás nélkül, vagy helyezzen megfelelő kernel modul). Akkor, és megalkotta a „Linux emuláció”.

Kapcsolódó cikkek