Konsolidator dynamiczny

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Konsolidator dynamiczny, inaczej linker dynamiczny – 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.

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.Setuid oraz setgid – atrybuty plików oraz katalogów w systemach uniksopodobnych, które pozwalają na uruchomienie pliku wykonywalnego z prawami właściciela/grupy tego pliku oraz zmieniają działanie niektórych operacji na katalogach. Ich nazwy to skrótowce powstałe z angielskich zdań: "Set User ID (identity)" (Ustaw identyfikator użytkownika) oraz "Set Group ID" (Ustaw identyfikator grupy). Stosowane są do umożliwienia użytkownikom uruchamiania programów, które do poprawnej pracy wymagają wyższych uprawnień niż te, które typowy użytkownik systemu zazwyczaj posiada, np. zmiana hasła.

Stosowany jest jako sposób zmniejszenia objętości programów wykonywalnych oraz zaoszczędzenia pamięci (przestrzeń adresowa z kopią biblioteki może być współdzielona przez wiele procesów). Wadą tego rozwiązania jest to, że zmniejsza się przenośność plików binarnych między platformami oraz wersjami bibliotek.

Proces – jedno z podstawowych pojęć w informatyce, definiowane jako egzemplarz wykonywanego programu. Każdy nowo powstały proces otrzymuje unikatowy numer, który go jednoznacznie identyfikuje, tzw. PID (od (ang.) process identifier).System plików – metoda przechowywania plików, zarządzania plikami, informacjami o tych plikach, tak by dostęp do plików i danych w nich zgromadzonych był łatwy dla użytkownika systemu; także: wolumin.

Systemy uniksowe[ | edytuj kod]

W systemach uniksowych linker dynamiczny najczęściej występuje w postaci pliku o nazwie: ld.so (systemy typu BSD, Sun Solaris), ld-linux.so (Linux).

Linker dynamiczny bierze pod uwagę wartość zmiennych środowiskowych, takich jak: LD_LIBRARY_PATH, LD_PRELOAD, LD_AUDIT. Niektóre z tych zmiennych instruują linker o konieczności załadowania kodu bibliotek nieujętych w strukturach kontrolnych pliku wykonywalnego procesu. Inne mogą wskazywać niestandardowe położenie bibliotek w systemie plików systemu operacyjnego. Ze względów bezpieczeństwa większość zmiennych środowiskowych typu LD_ jest ignorowana lub specyficznie traktowana przy wykonywaniu programów w ustawionym bitem setuid lub setgid.

Przestrzeń adresowa to mapa możliwej do zaadresowania przez proces pamięci. Nie cały jej obszar musi mieć swój odpowiednik w pamięci fizycznej, co jest implementowane za pomocą pamięci wirtualnej. W skład przestrzeni adresowej procesu wchodzą najczęściej:Konsolidator (ang. linker) lub program konsolidujący to jeden z programów składowych kompilatora. Konsolidator w trakcie procesu konsolidacji łączy zadane pliki obiektowe i biblioteki statyczne tworząc w ten sposób plik wykonywalny. W systemach uniksowych jest to zazwyczaj program o nazwie ld.

Zobacz też[ | edytuj kod]

  • konsolidator




  • Warto wiedzieć że... beta

    Biblioteka (w informatyce) – zbiór klas, funkcji (i ew. innych konstrukcji programistycznych), z których korzystają różne programy.
    BSD (ang. Berkeley Software Distribution, czasami nazywany Berkeley Unix) – odmiana systemu operacyjnego Unix wywodząca się ze stworzonych na Uniwersytecie Kalifornijskim Berkeley rozszerzeń dla systemu rozwijanego przez firmę AT&T. Także potoczna nazwa licencji BSD, na której te systemy są wydawane oraz pokrewnych licencji tego typu (np. licencja MIT).
    Język maszynowy (kod maszynowy) – język programowania, w którym zapis programu wymaga instrukcji bezpośrednio jako liczb, które są rozkazami i danymi bezpośrednio pobieranymi przez procesor wykonujący ten program.
    Zmienna środowiskowa (ang. environment variable) to nazwana wartość, zazwyczaj zawierająca ciąg znaków, przechowywana i zarządzana przez powłokę. Zmienna środowiskowa może wpływać na działanie procesów uruchamianych w systemie operacyjnym i wtedy staje się pewnym mechanizmem komunikacji lub też przechowywać wartość w celu jej późniejszego wykorzystania.
    Solaris, Oracle Solaris (uprzednio Sun Solaris) – system operacyjny z rodziny Unix firmy Oracle (oryginalnie opracowany przez Sun Microsystems) pierwotnie dla rodzimej architektury SPARC – obecnie dostępny także dla 32- oraz 64-bitowych maszyn opartych o procesory firm Intel, AMD oraz VIA. Solaris 2.5.1 był również wydany dla architektury mikroprocesora PowerPC. Kod został zoptymalizowany dla maszyn wieloprocesorowych. System jest stosowany jako platforma dla rozwiązań serwerowych i stacji roboczych. Komputery z systemem Solaris są między innymi używane na Międzynarodowej Stacji Kosmicznej i w amerykańskich wahadłowcach.

    Reklama