An Entity of Type: organisation, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

In computing, position-independent code (PIC) or position-independent executable (PIE) is a body of machine code that, being placed somewhere in the primary memory, executes properly regardless of its absolute address. PIC is commonly used for shared libraries, so that the same library code can be loaded in a location in each program address space where it does not overlap with other memory in use (for example, other shared libraries). PIC was also used on older computer systems that lacked an MMU, so that the operating system could keep applications away from each other even within the single address space of an MMU-less system.

Property Value
dbo:abstract
  • Position independent code (PIC – pozičně nezávislý kód, též Position Independent Executable, PIE – pozičně nezávislý spustitelný soubor) je v informatice strojový kód, který je možné vykonat nezávisle na tom, na jaké adrese je v operační paměti umístěn. Pokud strojový kód obsahuje absolutní adresy v adresách skoků i v odkazech na data a je takový kód umístěn na jiné adresy, než byl původně určen, míří cíle skoků nebo odkazy na jeho vlastní data na nesprávné adresy. Pozičně nezávislý kód používá místo absolutních adres relativní odkazy (např. skok o 10 adres dále, data jsou na adrese o 100 méně, než je aktuální adresa), takže je funkční i při umístění na jinou adresu. Překladače generují instrukce skoků a volání s relativními adresami — pokud takové instrukce obsahuje instrukční sada zvoleného procesoru a pokud se ta adresa nezískává až za běhu (například protože sídlí v jiné knihovně). (cs)
  • Position-independent Code (PIC; deutsch: positionsunabhängiger Code) oder position-independent executable (PIE; deutsch: positionsunabhängiges ausführbares Programm) bezeichnet Maschinencode, der ausgeführt werden kann, unabhängig davon, an welcher Adresse er sich im Hauptspeicher befindet. PIC wird üblicherweise für dynamische Bibliotheken verwendet, damit diese für jedes Programm an eine beliebige Speicherposition geladen werden können, wo sie sich nicht mit anderen Objekten des 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 unterscheidet sich von , bei dem vor der Ausführung alle verwendeten Adressen bei Speicherzugriffen durch den Linker oder Lader an die aktuelle Position im Speicher angepasst werden müssen. Um positionsunabhängigen Code zu generieren, muss der Compiler diese Adressierungsart unterstützen. Er muss sämtliche Maschinenbefehle, die sich auf eine absolute Speicheradresse beziehen, durch entsprechende Befehle ersetzen, die relativ zur aktuellen Position arbeiten. Diese zusätzliche Indirektion kann dazu führen, dass positionsunabhängiger Code langsamer ausgeführt wird als das identische Programm in positionsabhängigem Code. Mit dem Übergang zur virtuellen Adressierung durch die MMU ist es möglich geworden, Programmcode immer an dieselben virtuelle Adresse zu laden, so dass PIC an Bedeutung verloren hat. (de)
  • In computing, position-independent code (PIC) or position-independent executable (PIE) is a body of machine code that, being placed somewhere in the primary memory, executes properly regardless of its absolute address. PIC is commonly used for shared libraries, so that the same library code can be loaded in a location in each program address space where it does not overlap with other memory in use (for example, other shared libraries). PIC was also used on older computer systems that lacked an MMU, so that the operating system could keep applications away from each other even within the single address space of an MMU-less system. Position-independent code can be executed at any memory address without modification. This differs from absolute code, which must be loaded at a specific location to function correctly, and load-time locatable (LTL) code, in which a linker or program loader modifies a program before execution so it can be run only from a particular memory location. Generating position-independent code is often the default behavior for compilers, but they may place restrictions on the use of some language features, such as disallowing use of absolute addresses (position-independent code has to use relative addressing). Instructions that refer directly to specific memory addresses sometimes execute faster, and replacing them with equivalent relative-addressing instructions may result in slightly slower execution, although modern processors make the difference practically negligible. (en)
  • 位置独立コード(いちどくりつコード、英: position-independent code、PIC)または位置独立実行形式(いちどくりつじっこうけいしき、英: position-independent executable、PIE)とは、主記憶装置内のどこに置かれても絶対アドレスに関わらず正しく実行できる機械語の列である。PICは主に共有ライブラリに使われ、各プログラムが(例えば他の共有ライブラリに)使われていない任意の別々のアドレスに同じ共有ライブラリをロードして使うことができる。PICはMMUによる仮想記憶の仕組みが無い古いコンピュータシステムでも使われていた。PICを使えば、MMUのないシステムであってもオペレーティングシステム (OS) が単一のアドレス空間内で複数のアプリケーションを共存させることができる。 位置独立コードはメモリ上の任意の位置にコピーでき、修正することなく実行できる。リロケータブルコードは、指定されたアドレスで実行可能にするためにリンケージエディタやローダが特別な処理を施すが、位置独立コードではそれが不要である。位置独立コードはソースコードにおける特別な意味論が必要で、コンパイラがそれをサポートしていなければならない。絶対アドレスを指定する分岐命令など、特定のメモリアドレスを参照する命令は、等価なプログラムカウンタ相対命令に置き換えなければならない。そのために命令数が増えることもあるので効率は低下するが、最近のプロセッサはその差が無視できる程度になるよう設計されている。 (ja)
  • 위치 독립 코드(PIC: position-independent code) 또는 위치 독립 실행 파일(PIE: position-independent executable)은 메모리의 어딘가에 위치한 기계어 코드의 몸체로서 절대 주소와 관계 없이 적절히 실행된다. PIC는 주로 공유 라이브러리에 사용돼서, 같은 라이브러리 코드도 (사용되는 메모리 공간에 겹쳐써지지 않으면서) 각 프로그램의 주소 공간에 로드될 수 있게 된다. PIC는 또한 메모리 관리 장치(MMU)가 없는 오래된 컴퓨터 시스템에서도 사용되며, 운영 체제가 애플리케이션을 단일 주소 공간 내에서 서로 떨어져 있게 해줄 수 있다. 위치 독립 코드는 수정 없이 어느 메모리 주소에서도 실행될 수 있다. 이것은 재배치 가능 코드와의 다른 점인데, 재배치 가능 코드는 링커 또는 로더가 실행 전에 프로그램을 수정해서 단지 특정한 메모리 위치에서만 실행된다. 위치 독립 코드를 생성하는 것은 종종 컴파일러의 기본 옵션이지만, 컴파일러는 절대 주소의 사용을 불허하는 것 같이 몇몇 언어들에서의 사용을 제한한다(위치 독립 코드는 상대 주소를 사용해야 한다). 비록 현대 프로세서들은 실질적으로 무시해도 될 만한 차이점을 보이지만, 직접적으로 특정한 메모리 주소들을 참조하는 명령어들은 동등한 상대 주소 명령어들보다 가끔은 빨리 실행되는 특징을 갖는다. (ko)
  • 在计算机领域中,地址无关代码 (英文: position-independent code,缩写为PIC),又称地址无关可执行文件 (英文: position-independent executable,缩写为PIE) ,是指可在主存储器中任意位置正确地运行,而不受其绝对地址影响的一种机器码。PIC广泛使用于共享库,使得同一个库中的代码能够被加载到不同进程的地址空间中。PIC还用于缺少内存管理单元的计算机系统中,使得操作系统能够在单一的地址空间中将不同的运行程序隔离开来。 地址无关代码能够在不做修改的情况下被复制到内存中的任意位置。这一点不同于代码,因为重定位代码需要经过链接器或加载器的特殊处理才能确定合适的运行时内存地址。地址无关代码需要在源代码级别遵循一套特定的语义,并且需要编译器的支持。那些引用了绝对内存地址的指令(比如绝对跳转指令)必须被替换为PC相对寻址指令。这些间接处理过程可能导致PIC的运行效率下降,但是目前大多数处理器对PIC都有很好的支持,使得这效率上的这一点点下降基本可以忽略。 (zh)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 571303 (xsd:integer)
dbo:wikiPageLength
  • 23607 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1063379139 (xsd:integer)
dbo:wikiPageWikiLink
dbp:cs1Dates
  • y (en)
dbp:date
  • February 2020 (en)
dbp:wikiPageUsesTemplate
dcterms:subject
gold:hypernym
rdf:type
rdfs:comment
  • 在计算机领域中,地址无关代码 (英文: position-independent code,缩写为PIC),又称地址无关可执行文件 (英文: position-independent executable,缩写为PIE) ,是指可在主存储器中任意位置正确地运行,而不受其绝对地址影响的一种机器码。PIC广泛使用于共享库,使得同一个库中的代码能够被加载到不同进程的地址空间中。PIC还用于缺少内存管理单元的计算机系统中,使得操作系统能够在单一的地址空间中将不同的运行程序隔离开来。 地址无关代码能够在不做修改的情况下被复制到内存中的任意位置。这一点不同于代码,因为重定位代码需要经过链接器或加载器的特殊处理才能确定合适的运行时内存地址。地址无关代码需要在源代码级别遵循一套特定的语义,并且需要编译器的支持。那些引用了绝对内存地址的指令(比如绝对跳转指令)必须被替换为PC相对寻址指令。这些间接处理过程可能导致PIC的运行效率下降,但是目前大多数处理器对PIC都有很好的支持,使得这效率上的这一点点下降基本可以忽略。 (zh)
  • Position independent code (PIC – pozičně nezávislý kód, též Position Independent Executable, PIE – pozičně nezávislý spustitelný soubor) je v informatice strojový kód, který je možné vykonat nezávisle na tom, na jaké adrese je v operační paměti umístěn. Pokud strojový kód obsahuje absolutní adresy v adresách skoků i v odkazech na data a je takový kód umístěn na jiné adresy, než byl původně určen, míří cíle skoků nebo odkazy na jeho vlastní data na nesprávné adresy. Pozičně nezávislý kód používá místo absolutních adres relativní odkazy (např. skok o 10 adres dále, data jsou na adrese o 100 méně, než je aktuální adresa), takže je funkční i při umístění na jinou adresu. (cs)
  • Position-independent Code (PIC; deutsch: positionsunabhängiger Code) oder position-independent executable (PIE; deutsch: positionsunabhängiges ausführbares Programm) bezeichnet Maschinencode, der ausgeführt werden kann, unabhängig davon, an welcher Adresse er sich im Hauptspeicher befindet. PIC wird üblicherweise für dynamische Bibliotheken verwendet, damit diese für jedes Programm an eine beliebige Speicherposition geladen werden können, wo sie sich nicht mit anderen Objekten des 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. (de)
  • In computing, position-independent code (PIC) or position-independent executable (PIE) is a body of machine code that, being placed somewhere in the primary memory, executes properly regardless of its absolute address. PIC is commonly used for shared libraries, so that the same library code can be loaded in a location in each program address space where it does not overlap with other memory in use (for example, other shared libraries). PIC was also used on older computer systems that lacked an MMU, so that the operating system could keep applications away from each other even within the single address space of an MMU-less system. (en)
  • 위치 독립 코드(PIC: position-independent code) 또는 위치 독립 실행 파일(PIE: position-independent executable)은 메모리의 어딘가에 위치한 기계어 코드의 몸체로서 절대 주소와 관계 없이 적절히 실행된다. PIC는 주로 공유 라이브러리에 사용돼서, 같은 라이브러리 코드도 (사용되는 메모리 공간에 겹쳐써지지 않으면서) 각 프로그램의 주소 공간에 로드될 수 있게 된다. PIC는 또한 메모리 관리 장치(MMU)가 없는 오래된 컴퓨터 시스템에서도 사용되며, 운영 체제가 애플리케이션을 단일 주소 공간 내에서 서로 떨어져 있게 해줄 수 있다. (ko)
  • 位置独立コード(いちどくりつコード、英: position-independent code、PIC)または位置独立実行形式(いちどくりつじっこうけいしき、英: position-independent executable、PIE)とは、主記憶装置内のどこに置かれても絶対アドレスに関わらず正しく実行できる機械語の列である。PICは主に共有ライブラリに使われ、各プログラムが(例えば他の共有ライブラリに)使われていない任意の別々のアドレスに同じ共有ライブラリをロードして使うことができる。PICはMMUによる仮想記憶の仕組みが無い古いコンピュータシステムでも使われていた。PICを使えば、MMUのないシステムであってもオペレーティングシステム (OS) が単一のアドレス空間内で複数のアプリケーションを共存させることができる。 (ja)
rdfs:label
  • Position-independent code (cs)
  • Position-independent Code (de)
  • 위치 독립 코드 (ko)
  • 位置独立コード (ja)
  • Position-independent code (en)
  • 地址无关代码 (zh)
rdfs:seeAlso
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License