- Position-Independent Code
-
Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen und beteilige dich an der Diskussion! (+)
Begründung: Struktur und Quellen --Crazy1880 18:58, 6. Mai 2011 (CEST)Position-independent Code (PIC, engl. für positionsunabhängiger Code) ist Maschinencode, der ausgeführt werden kann, unabhängig davon, wo im Hauptspeicher er sich befindet. PIC wird üblicherweise für dynamische Bibliotheken verwendet, damit diese für jedes Programm an eine Speicherposition geladen werden können, wo sie sich nicht mit anderen Objekten dieses Programms überlappen. Auf älteren Computern ohne MMU wurde PIC verwendet, um die verschiedenen Programme gleichzeitig in den Speicher laden zu können, obwohl solche Systeme nur einen Adressraum haben.
Position-independent Code kann an eine beliebige Stelle im Speicher kopiert und von dort ohne Änderungen ausgeführt werden. Damit unterscheidet er sich von relozierbarem Code, der einer speziellen Verarbeitung durch den Linker oder Lader bedarf, bevor er an einer bestimmten Speicherposition ausgeführt werden kann. Der Quellcode aus dem PIC generiert wird muss bestimmte Anforderungen erfüllen. Ebenso muss der Compiler es unterstützen. Er muss sämtliche Maschinenbefehle, die sich auf eine absolute Speicheradresse beziehen, durch entsprechende Befehle ersetzen, die relativ zum Befehlszähler arbeiten. Diese zusätzliche Indirektion kann dazu führen, dass positionsunabhängiger Code langsamer ausgeführt wird als äquivalenter positionsabhängiger Code.
Wikimedia Foundation.