unix eszközök a tanulmány objektum fájlok

A modern művészet a számítógépes programozás - ez a kombináció egy emberi személyiség, egy sor speciális szerszámok, ezáltal meglehetősen kísérteties termék - szoftverek -, hogy mások is hasznos. Programozók - a beteg emberek, akik képesek kezelni a nehézségeket a számítógépek. Számítógépek nagyon érzékenyek az igényeiknek, és nem tűri a követelményektől való eltérés. Bármi legyen is a természete a raktár, a program számítógépek nehéz, és a feladat egyszerűsítésére hoztak létre számos eszközt.

A UNIX operációs rendszerek és Linux® fontosabb - ezek a fájlok. Azt lehet mondani, hogy a lényeg a programozás UNIX és Linux - az írás-kód, amely együttműködik a fájlokat. A rendszerben számos fájltípusokat. Object fájlok egy különleges design, amely biztosítja a rugalmas többcélú felhasználásra.

Eszközök a kereskedelmi

A világon a számítógépes programozás segítségével a különböző formátumú objektumot fájlokat. COM formátumokat használják a DOS-os környezetben. OBJ és EXE. UNIX és Linux használt a.out. COFF és ELF. A Microsoft® Windows® egy hordozható futtatható fájl formátumban (hordozható végrehajtható, PE) és Macintosh - PEF. Mach-O és mások.

Kezdetben saját objektum fájlformátum minden típusú számítógépet, de az Advent a UNIX és más operációs rendszerek, amelyek átvihetők az egyik hardver platform a másik, néhány közös formátumok, amelyek emelkedett szintje a közös szabvány. Az utóbbiak közül - a.out formátumot. COFF és ELF.

Ahhoz, hogy megértsük a szerkezet a tárgy fájl, meg kell eszközöket, hogy tud olvasni különböző részei egy tárgy fájlt, és megjeleníti őket egy olvasható formátumban. Ez a cikk bemutatja néhány, a legfontosabb szempontok az ezekkel az eszközökkel. De először meg kell, hogy munkahelyeket teremtenek, és hogy egy áldozat. Nem beteg.

munkahely

Indítsuk el a munkamenet xterm. Térjünk a tanulmány az objektum fájlokat a zöld munkahelyeket A következő parancsok hozzon létre egy kényelmes helyen dolgozni tárgyi fájlokat:

Listing 1. hw.c Program

Ez egy egyszerű „Hello World” program, amely szolgálja a beteg a tanulmány a különféle eszközök állnak rendelkezésre a arzenálját UNIX. Ahelyett, hogy egy rövid utat a létrehozása egy futtatható fájl (és sokan vannak hivatkozások) fogunk foglalkozni kell építeni, és megvizsgálja a tárgyat magát a fájlt.

fájlformátumok

Általában az eredmény egy C fordító assembler kód bármilyen processzor adja meg. Az assembly kód jut el a szerelő program, amely alapértelmezés szerint létrehozza a nagyapja minden objektum fájlok - a.out fájlt. A neve is mutatja, assembly kimenet (Output assembler). Ahhoz, hogy hozzon létre egy a.out fájlt, írja xterm ablakban a következő parancsot:

Ez a parancs létrehoz egy új fájlt, hw.s, amely tartalmazza a szöveget, amely nem esik a szerelő bemenet. Általában nem jelenik meg, mint az alapértelmezett fordító generál a.out fájlt. Ahogy az várható volt, a UNIX szerelő program képes feldolgozni a bemeneti fájl az ilyen típusú, és létrehozza az a.out fájlt.

UNIX Tools

Feltételezve, hogy a fordítás sikeres volt, és van egy a.out fájlt, vizsgáljunk meg. Többek között szerszámok, hasznos a tanulmány objektum fájlok a következők:

  • nm: listák szimbólumok objektum fájlok.
  • objdump: Megjeleníti a részletes információkat az objektumban lévő fájlokat.
  • readelf: Információkat jelenít ELF objektum fájlok.

Az első eszköz a listán - ez nm, amely felsorolja a szimbólumok listáját a tárgytól fájlokat. Ha ezt a parancsot nm. akkor veszi észre, hogy alapértelmezés szerint megkeresi a fájlt úgynevezett a.out Ha nincs ilyen fájl létezik, a segédprogram kifejezzék elégedetlenségüket. Bárhogy legyen is a helyzet, ha a szerszám találja a.out által létrehozott fájl a fordító, akkor megjelenik egy lista hasonló a 2. lista.

Jegyzék 2. A kimeneti nm

Szakaszokat tartalmazó végrehajtható kódot, az úgynevezett szöveges részek vagy szegmensek. Vannak is adatszekcióból vagy szegmensek, amelyek nem végrehajtható információ vagy adat. Egy másik típusú partíció, jelöljük BSS. Ez tartalmazza egységek kezdődő karakteres adat.

Mielőtt minden szimbólum, az nm parancs. azt jelzi, hogy a megfelelő értéket hexadecimális (alapértelmezett) formátumban, valamint a karakter megfelelő kódot karakter típus. Néhány a leggyakoribb kódok: A (abszolút érték) - olyan értékeket, nem fog változni további összekapcsolása; B - szimbólumok a BSS szakasz; C - közös jelző szimbólumok nem inicializált adat.

Object fájlokat sok különböző részein, külön szakaszokra. Szakaszok tartalmazhatnak végrehajtható kódot, karakter nevek, értékek inicializált adat, valamint számos más típusú adatokat. További információt ezekről adattípusok megtalálhatók az oldalakon férfi UNIX könyvtárban nm. ahol mindegyik típus által leírt jellegű értékek jelennek meg a parancs kimenetét.

Részletek, részletek.

Még egy egyszerű „Hello World” program eléri a tárgyat tartalmazó fájl széles skálájával részleteket. Nm program jó jegyzékbe szimbólumok, valamint ezek és érték azonban szükség erősebb eszközöket többet megtudni a tartalmát a szakaszok a fent említett.

Két ilyen eszköz - ez objdump program readelf. Ha beírja a következő parancsot, látni fogja a szerelő lista egyes szakaszain a tárgy fájl futtatható kódot tartalmazó. Elképesztő, nem igaz, hogy mennyi kód valójában generál fordítóprogramot ilyen kis programot?

A programozó, elbűvölte az alacsony szintű programozási részlet, ez egy kiváló eszköz a tanulás kimeneti fordítóprogramok és összeszerelő. Részletek jut, mint az ebben a kódot, sokat elárul a természet a processzor, amelyen a rendszer működik. Tanulás ezt az információt, valamint a műszaki dokumentációt a gyártó által megadott, a CPU, akkor kap nagyon értékes ismereteket arról, hogyan működik, köszönhetően a világosság kiadási futó programokat.

readelf programot is lehet nyomtatni a tartalmát objektumfájl hasonló átláthatóságot. Ennek ellenőrzéséhez írja be az alábbi parancsot:

Ez a parancs látható eredményt kapjuk listában 4. Az ELF fejléc összefoglalót az összes szakaszok a fájlt. Mielőtt számbavételét tartalmának ilyen címszavak kérjük, vegye figyelembe, hogy sokan. Ez az információ hasznos lehet a tanuló nagy tárgy fájlokat.

Amint látható az adatokat, egy egyszerű fájl a.out „Hello World” program tartalmaz sok hasznos adat - a verzió információ, hisztogram, több tábla különböző típusú karakter, stb Már több eszközt itt bemutatott elég, hogy kiad egy csomó időt a tanulás új információk a futtatható fájlok vizsgálatával objektum fájlok.

Amellett, hogy ezeket a szakaszokat, a fordító tudja helyezni a objektumfájl hibakeresési információkat, és ez tükröződni fog itt. Írja be a következő parancsot, hogy egy kis időt, hogy tanulmányozza, milyen fordítót mondom (mintha hibakeresés):

A végrehajtható fájlokat - ez is az objektum fájlok

A UNIX világában, a futtatható fájlok object fájlokat, és akkor tárja fel őket is, mint az imént végzett a fájl a.out. Egy nagyon hasznos gyakorlat - menj a / bin vagy / local / bin és alkalmazza nm. objdump és readelf hogy olyan parancsokat, amelyek a gyakran használt, például jelszó. ps. macska vagy rm. Gyakran, amikor az írás olyan programok, amelyek jellemzője, hogy a már végrehajtott egy szabványos eszközöket, hasznos, hogy milyen valójában ez az eszköz működik, rá vonatkozó objdump -d parancs .

Ha azt szeretnénk, hogy működjön együtt a fordítóprogramok és más nyelvi eszközökkel, akkor rájön, hogy az eltöltött idő a tanulmány a különböző objektum fájlok, amelyek segítségével a számítógép rendszer, nem vész kárba. A UNIX operációs rendszer, sok szint és réteg, hogy az eszközöket vizsgáló objektum fájlok találhatók, közel a hardver. Ez lehetővé teszi, hogy valóban úgy érzi, a rendszer.

következtetés

Feltárása objektum fájlok jelentősen elmélyítse tudását a UNIX operációs rendszer lehetővé teszi, hogy jobban megértsük, hogyan kell valóban alkotó szoftver forráskódját. Azt javaslom, hogy vizsgálja meg a termelés a szerszámok a cikkben leírt, az objektum programvezéreltté található / bin vagy / local / bin a rendszert, és olvassa el a dokumentációt a rendszer, a szállító által megadott.

Letölthető Resources

Kapcsolódó témák

  • Eredeti cikk: UNIX eszközök feltárása objektum fájlok
  • Futtatható fájl formátumban. További információ a futtatható fájl formátumok megtalálható Wikipedia.
  • A méret a futtatható és alakítható modulok (Végrehajtható és összekapcsolása Format, ELF). További információ megtalálható a honlapon a University of California-Davis.
  • AIX és UNIX cikkeket. Találj más cikkeket William Zimmerli. (EN)
  • Próbaverziói IBM szoftver. Építsd meg a következő fejlesztési projekt szoftver letölthető közvetlenül a developerWorksön.
  • Wiki AIX 5L. Környezete csoportmunka tartalmazó adatokhoz kapcsolódó műszaki információt AIX.

Kapcsolódó cikkek