• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Plik obiektowy

    Przeczytaj także...
    MIPS (Microprocessor without Interlocked Piped Stages) jest to architektura komputerowa (w szczególności procesor typu RISC) rozwijana przez firmę MIPS Technologies. Istnieje zarówno w wersji 32- jak i 64-bitowej.Symbian - nazwa systemu operacyjnego open source, dołączonych do niego bibliotek, rozwiązań interfejsu użytkownika oraz specyfikacji dla programów narzędziowych wyprodukowanych przez konsorcjum Symbian, w skład którego wchodzą najwięksi producenci telefonów komórkowych (Nokia, Motorola, Siemens, Sony Ericsson). Symbian został stworzony w oparciu o system EPOC, wykorzystywany w PDA firmy Psion PLC.
    Konsolidator dynamiczny, inaczej linker dynamiczny - to część systemu operacyjnego, która wywoływana jest w chwili uruchomienia programu i odpowiada za załadowanie do przestrzeni adresowej procesu niezbędnych dla niego bibliotek programistycznych, uzupełnienie wczytanego kodu o adresy funkcji bibliotecznych, które będą przez proces wykorzystywane, i rozpoczęcie wykonywania wczytanego kodu maszynowego od wskazanego przez programistę punktu.

    Plik obiektowyplik binarny generowany przez kompilator lub asembler podczas kompilacji pliku z kodem źródłowym lub podczas łączenia plików obiektowych przez konsolidator (linker).

    Klasyfikacja[ | edytuj kod]

    Pliki obiektowe można podzielić na cztery klasy:

  • pliki relokowalne (ang. relocatable files)
  • pliki wykonywalne (ang. executable files)
  • biblioteki dynamiczne (ang. shared object files lub dynamic libraries)
  • zrzuty pamięci (ang. core files)
  • Struktura[ | edytuj kod]

    Ze względu na duże podobieństwo plików relokowalnych, plików wykonywalnych, bibliotek dynamicznych oraz zrzutów pamięci współczesne systemy operacyjne stosują jeden format pliku do opisu wszystkich czterech klas plików obiektowych. Oczywiście duże różnice pomiędzy systemami operacyjnymi powodują, że każda z rodzin systemów operacyjnych stosuje własny format. W systemach Unix takim formatem pliku jest Executable and Linkable Format (ELF), a w Microsoft Windows Portable Executable (PE).

    XCOFF (ang. eXtended Common Object File Format) – format plików wykonywalnych – ulepszona wersja COFF. Opracowana przez IBM i używana w systemie AIX.COM (z ang. COre iMage) - rozszerzenie nazwy pliku wykonywalnego w systemie DOS i CP/M. Pierwotnie COM oznaczało zwykły plik tekstowy ze zbiorem poleceń do wykonania przez system operacyjny.

    Typowy plik obiektowy składa się co najmniej z następujących części:

  • nagłówek
  • kod i dane binarne
  • tablica symboli
  • informacje o relokacji
  • informacje dla debugera
  • Nagłówek umieszczany jest zawsze na początku pliku obiektowego i jest analizowany przez konsolidator oraz konsolidator dynamiczny w celu ustalenia dalszego sposobu postępowania z tym plikiem. Nagłówek dostarcza ogólnych informacji o pliku obiektowym takich jak:

    ELF, Executable and Linkable Format – format plików wykonywalnych, plików obiektowych, bibliotek współdzielonych oraz zrzutów pamięci, popularny na systemach uniksowych (używany m.in. w Linuksie, FreeBSD, BeOS, AmigaOS 4.0).Asembler (z ang. assembler) – termin informatyczny związany z programowaniem i tworzeniem kodu maszynowego dla procesorów. W języku polskim oznacza on program tworzący kod maszynowy na podstawie kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku programowania bazującym na podstawowych operacjach procesora zwanym językiem asemblera, popularnie nazywanym również asemblerem. W tym artykule język programowania nazywany będzie językiem asemblera, a program tłumaczący – asemblerem.
  • format pliku obiektowego
  • kolejność bajtów, w jakiej został zapisany ten plik obiektowy
  • klasa pliku obiektowego, która określa, czy dany plik to plik relokowalny, plik wykonywalny, biblioteka dynamiczna lub zrzut pamięci
  • architektura procesora, dla którego ten plik został stworzony
  • opis reszty pliku obiektowego (podział na sekcje oraz ich rozmiary)
  • Kod i dane binarne przechowują instrukcje zrozumiałe dla procesora oraz dane wykorzystywane przez te instrukcje. Są one kopiowane do pamięci operacyjnej przy uruchamianiu pliku wykonywalnego lub ładowaniu biblioteki dynamicznej. Pierwsze pliki obiektowe zawierały tylko kod i dane binarne.

    Microsoft Windows (ang. windows „okna”, IPA: [maɪkɹoʊsɑːft ˈwɪndoʊz]) – rodzina systemów operacyjnych stworzonych przez firmę Microsoft. Systemy rodziny Windows działają na serwerach, systemach wbudowanych oraz na komputerach osobistych, z którymi są najczęściej kojarzone. Pamięć operacyjna (ang. internal memory, primary storage) – pamięć adresowana i dostępna bezpośrednio przez procesor, a nie przez urządzenia wejścia-wyjścia procesora. W pamięci tej mogą być umieszczane rozkazy (kody operacji) procesora (program) dostępne bezpośrednio przez procesor i stąd nazwa pamięć operacyjna. W Polsce często pamięć ta jest utożsamiana z pamięcią RAM, choć jest to zawężenie pojęcia, pamięcią operacyjną jest też pamięć nieulotna (ROM, EPROM i inne jej odmiany) dostępna bezpośrednio przez procesor, a dawniej używano pamięci o dostępie cyklicznym.

    Tablica symboli zawiera między innymi opisy funkcji i zmiennych eksportowanych przez plik obiektowy oraz opisy funkcji i zmiennych, do których ten plik się odwołuje. Opis pojedynczego symbolu zawiera:

  • nazwę symbolu (funkcji lub zmiennej)
  • wartość symbolu – często jest to adres, pod którym dany symbol (funkcja lub zmienna) zostanie umieszczony w pamięci
  • rodzaj symbolu
  • Informacje o relokacji określają miejsca w kodzie binarnym, które należy zmodyfikować podczas konsolidacji. Niektóre z nich są wykorzystywane przy zwykłej konsolidacji, niektóre (informacje o relokacji odwołań do bibliotek dynamicznych) dopiero przy uruchamianiu pliku wykonywalnego.

    Konsolidacja (linkowanie od ang. link - łączyć) to proces polegający na połączeniu skompilowanych modułów (plików zawierających kod obiektowy lub plików bibliotek statycznych) i utworzeniu pliku wykonywalnego lub rzadziej innego pliku obiektowego. Dodatkowo podczas konsolidacji do pliku wynikowego mogą być dołączone odpowiednie nagłówki i informacje charakterystyczne dla konkretnego formatu pliku wykonywalnego.COFF (Common Object File Format) - format plików wykonywalnych użyty w systemie Unix System V Release 3, później zaadaptowany do systemu Microsoft Windows NT.

    Informacje dla debugera mogą, ale nie muszą wystąpić w pliku obiektowym. Ich format może stanowić integralną część formatu pliku obiektowego (COFF), albo może być zdefiniowany oddzielnie i wykorzystywany z różnymi formatami plików obiektowych (stabs, DWARF).

    Popularne formaty plików obiektowych[ | edytuj kod]

  • DOS
  • COM
  • DOS executable (MZ)
  • Relocatable Object Module Format – popularnie zwane plikami „OBJ” lub „OMF”; czasem wykorzystywane w Microsoft Windows
  • Systemy wbudowane
  • IEEE-695
  • S-records
  • Macintosh
  • PEF (Mac OS)
  • Mach-O (NEXTSTEP, OS X, iOS)
  • Unix
  • a.out – dawniej bardzo popularny na systemach Unix; obecnie zastępowany przez ELF
  • COFF (System V)
  • ECOFF (MIPS)
  • XCOFF (AIX)
  • ELF – standard we współczesnych systemach Unix
  • Mach-O (NEXTSTEP, OS X, iOS)
  • Microsoft Windows
  • 16-bit New Executable
  • Portable Executable (PE) – używany w 32-bitowych i 64-bitowych wersjach Microsoft Windows
  • Inne
  • IBM 360 object format
  • NLM
  • XBE – Xbox executable
  • APP – Symbian executable file format.
  • RDOFF
  • Linki zewnętrzne[ | edytuj kod]

  • John R.Levine, Linkers and Loaders
  • a.out (assembler output) – format plików wykonywalnych używany szczególnie w Uniksie i innych uniksopodobnych systemach operacyjnych jako format plików wykonywalnych, plików obiektowych oraz bibliotek dzielonych.Definicja intuicyjna: Kod źródłowy to zapis programu komputerowego w formie czytelnej dla człowieka umożliwiający jego modyfikację i rozwój.




    Warto wiedzieć że... beta

    Mac OS – system operacyjny komputerów Macintosh. Od wydania wersji 10.0 (OS X), starsze wersje znane są jako Mac OS Classic.
    System operacyjny (ang. Operating System, skrót OS) – oprogramowanie zarządzające systemem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.
    Plik relokowalny (ang. relocatable file) to rodzaj pliku obiektowego generowanego przez kompilator lub asembler podczas kompilacji pliku z kodem źródłowym. Plik relokowalny może zostać również utworzony przez konsolidator w wyniku połączenia kilku plików relokowalnych. Proces ten nazywamy konsolidacją przyrostową.
    W informatyce, zrzut rdzenia (w żargonie Unixowym), zrzut pamięci lub zrzut systemu zawiera zapisany stan pamięci roboczej programu komputerowego w danym czasie, zazwyczaj w chwili gdy program uległ awarii lub zakończył pracę w nieoczekiwany sposób. W praktyce inne kluczowe elementy stanu programu zazwyczaj są "zrzucane" w tym samym czasie, takie jak np. rejestry procesora, które mogą zawierać licznik programu, wskaźnik stosu, informacje odnośnie zarządzania pamięcią i inne dane dotyczące procesora i flag systemu operacyjnego. Zrzuty pamięci są często wykorzystywane w diagnozowaniu i usuwaniu błędów w programach komputerowych.
    Unix Time-Sharing System (pisane również jako UNIX, choć nie jest to skrót – nazwa „UNIX” jest kalamburem określenia Multics, który był wzorem dla Uniksa) – system operacyjny rozwijany od 1969 r. w Bell Labs (UNIX System Laboratories, USL) przez Dennisa Ritchie i Kena Thompsona. W latach 70. i 80. zdobył bardzo dużą popularność, co zaowocowało powstaniem wielu odmian i implementacji. Część z nich, w szczególności Linux oraz OS X, jest w użyciu do dziś. UNIX jest zarejestrowanym znakiem towarowym The Open Group.
    Biblioteka dynamiczna – rodzaj biblioteki, która łączona jest z programem wykonywalnym dopiero w momencie jego wykonania. Aby tego dokonać, system operacyjny komputera musi posiadać pewne funkcje, które umożliwiają łączenie dynamiczne.
    AIX (ang. Advanced Interactive eXecutive) to odmiana systemu Unix tworzona przez firmę IBM na podstawie zarówno SysV, jak i BSD. W systemie zostały zaimplementowane także technologie z systemów mainframe, które zwiększają jego niezawodność i dostępność. System operacyjny AIX jest przeznaczony dla serwerów firmy IBM z procesorami z rodziny Power (RS/6000, pSeries, Power System). Wczesne wersje systemu AIX były też instalowane na komputerach Macintosh firmy Apple wyposażonych w procesory POWER. Obecnie dostępna jest bardzo szeroka gama systemów serwerowych wyposażonych w procesory Power, od najwiekszych Power System 795 (do 256 układów POWER7) do serwerów typu blade (najmniejszy dostępny serwer JS12 wyposażony w 2 układy POWER6). O ile cały czas dostępna jest możliwość natywnej instalacji (bezpośrednio na serwerze), to jednak jest ona stosowana stosunkowo rzadko, a preferowane są raczej środowiska zwirtualizowane, wykorzystujące hiperwizor PowerVM. W przypadku dużych maszyn (np. p590) jest to rozwiązanie domyślne.

    Reklama

    Czas generowania strony: 0.026 sek.