„Position-independent Code“ – Versionsunterschied

[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
KLBot2 (Diskussion | Beiträge)
K Bot: 4 Interwiki-Link(s) nach Wikidata (d:Q1582546) migriert
Code doppelt
Zeile 6:Zeile 6:


==Weblinks==
==Weblinks==
* [http://www.gentoo.org/proj/en/hardened/pic-guide.xml Introduction to PIC Code (englisch)]
* [http://www.gentoo.org/proj/en/hardened/pic-guide.xml Introduction to PIC (englisch)]
* [http://www.greyhat.ch/lab/downloads/pic.html PIC Code für i386 (englisch)]
* [http://www.greyhat.ch/lab/downloads/pic.html PIC für i386 (englisch)]


[[Kategorie:Datenformat]]
[[Kategorie:Datenformat]]

Version vom 5. Februar 2014, 13:21 Uhr

QS-Informatik
Beteilige dich an der Diskussion!
Dieser Artikel wurde wegen inhaltlicher Mängel 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, an welcher absoluten Adresse 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 (oder zum Stackpointer) arbeiten. Diese zusätzliche Indirektion kann dazu führen, dass positionsunabhängiger Code langsamer ausgeführt wird als äquivalenter positionsabhängiger Code.