In computer science, relocation is the process of replacing symbolic references or names of libraries with actual usable addresses in memory before running a program. It is typically done by the linker during compilation, although it can be done at runtime by a relocating loader. Compilers or assemblers typically generate the executable with zero as the lower-most starting address.

PropertyValue
dbpprop:abstract
  • In computer science, relocation is the process of replacing symbolic references or names of libraries with actual usable addresses in memory before running a program. It is typically done by the linker during compilation, although it can be done at runtime by a relocating loader. Compilers or assemblers typically generate the executable with zero as the lower-most starting address. Before the execution of object code, these addresses should be adjusted so that they denote the correct runtime addresses. Relocation is typically done in two steps: Each object code has various sections like code, data, . bss etc. To combine all the objects to a single executable, the linker merges all sections of similar type into a single section of that type. The linker then assigns runtime addresses to each section and each symbol. At this point, the code (functions) and data (global variables) will have unique runtime addresses. Each section refers to one or more symbols which should be modified so that they point to the correct runtime addresses. A fixup table -- a relocation table -- can also be provided in the header of the object code file. Each "fixup" is a pointer to an address in the object code that must be changed when the loader relocates the program. Fixups are designed to support relocation of the program as a complete unit. In some cases, each fixup in the table is itself relative to a base address of zero, so the fixups themselves must be changed as the loader moves through the table.
  • リロケータブルバイナリとは、メモリ空間のどの位置にも置くことができる形式のプログラムファイルである。 普通、コンピュータの機械語(実行形式)では、実効アドレスの記述には絶対アドレスが用いられる。この場合、プログラムファイルを置くアドレス位置は一箇所に固定され、そのままでは別アドレス位置に置いて実行することはできない。 そこで、あらかじめ絶対アドレスの記述に代えて仮想のアドレス指定をしておき、実行形式のプログラムファイルを生成する際にはじめて絶対アドレスを記述する(このためのソフトウェアを「リンケージエディタ」と呼ぶ)ようにすれば、メモリ空間のどこでもその実行形式プログラムを置くことができる。 リロケータブルバイナリのままでは実行はできないため実行の即時性は損なわれるが、メモリの有効利用の点からは有用な技術である。 CPUやOSの仕様によっては、実行形式の機械語プログラムに絶対アドレスをまったく用いないことにして、本項のリロケータブルバイナリを排除したものもある。これを Position Independent Code という。この場合、実行形式のプログラムがそのままでどのアドレス位置にも置くことができる(リロケータブルである)ことから、先述の仮想のアドレス指定のような手間を省くことが可能である。
dbpprop:hasPhotoCollection
rdfs:comment
  • In computer science, relocation is the process of replacing symbolic references or names of libraries with actual usable addresses in memory before running a program. It is typically done by the linker during compilation, although it can be done at runtime by a relocating loader. Compilers or assemblers typically generate the executable with zero as the lower-most starting address.
rdfs:label
  • Relocation (computer science)
  • リロケータブルバイナリ
owl:sameAs
skos:subject
foaf:page
is dbpprop:disambiguates of
is dbpprop:redirect of