ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
ダウンロード
ブラウザよりも高速アクセス!
 

位置独立コード

索引 位置独立コード

位置独立コード(いちどくりつコード、英: 、PIC)または位置独立実行形式(いちどくりつじっこうけいしき、英: 、PIE)とは、主記憶装置内のどこに置かれても絶対アドレスに関わらず正しく実行できる機械語の列である。PICは主に共有ライブラリに使われ、各プログラムが(例えば他の共有ライブラリに)使われていない任意の別々のアドレスに同じ共有ライブラリをロードして使うことができる。PICはMMUのない古いコンピュータシステムでも使われていた。PICを使えば、MMUのないシステムであってもオペレーティングシステム (OS) が単一のアドレス空間内で複数のアプリケーションを共存させることができる。 位置独立コードはメモリ上の任意の位置にコピーでき、修正することなく実行できる。リロケータブルコードは、指定されたアドレスで実行可能にするためにリンケージエディタやローダが特別な処理を施すが、位置独立コードではそれが不要である。位置独立コードはソースコードにおける特別な意味論が必要で、コンパイラがそれをサポートしていなければならない。絶対アドレスを指定する分岐命令など、特定のメモリアドレスを参照する命令は、等価なプログラムカウンタ相対命令に置き換えなければならない。そのために命令数が増えることもあるので効率は低下するが、最近のプロセッサはその差が無視できる程度になるよう設計されている。.

48 関係: ARMアーキテクチャ実行ファイル主記憶装置仮想記憶ページング方式メモリアドレスメモリ管理ユニットライブラリリロケータブルバイナリリンケージエディタレジスタ (コンピュータ)ローダプロシージャダイナミックリンクライブラリアドレス空間アドレス空間配置のランダム化オペレーティングシステムグローバル変数コンパイラコンピュータセキュリティコア戦争スタブソースコードCOFFCOMファイルESA/390Exec Shield英語LinuxLinuxディストリビューションMacOSMC68000MC6809Microsoft Developer NetworkMicrosoft WindowsMIPSアーキテクチャMMIXPaXPowerPCReturn-to-libc攻撃RISCSPARCThe Art of Computer ProgrammingUnix系X64X86機械語65816 (コンピュータ)

ARMアーキテクチャ

ARMアーキテクチャ とは、ARMホールディングスの事業部門であるARM Ltdにより設計・ライセンスされている、組み込み機器や低電力アプリケーション向けに広く用いられている、プロセッサコアのアーキテクチャである。.

新しい!!: 位置独立コードとARMアーキテクチャ · 続きを見る »

実行ファイル

実行ファイル(じっこうファイル、Executable、Executable file)とは、コンピュータがプログラムとして解釈実行できるファイルである。実行可能ファイル、実行形式ファイル、あるいは単に実行形式とも呼ばれる。 多くの場合、特定のCPUの機械語を格納したバイナリ形式である(この形式の実行ファイルを単に「バイナリ(ファイル)」と呼ぶこともある)。あるファイルが実行ファイルかどうかは、主に規約の問題である。オペレーティングシステムによっては実行ファイルであることを示すファイル名の規約が存在する(拡張子 ".bin" ".exe"など)。あるいはファイルのメタデータで実行ファイルかどうかを示す(例えばUNIX系オペレーティングシステムのファイルパーミッションビット)。 最近のアーキテクチャでは、実行ファイルにはプログラム自体に含まれない情報も格納される。例えば、実行に必要な環境についての情報、デバッグ情報、シンボル情報などである。 実行ファイルには特定のオペレーティングシステムのシステムコールを呼び出すコードが含まれることもある。つまり実行ファイルはプロセッサ固有であるだけでなくオペレーティングシステム固有でもある。 ソースファイルと実行ファイルの違いはあいまいである。というのもソースから実行形式への変換が暗黙のうちに行われることがあるためである。インタプリタのファイル(シェルスクリプトやバッチファイルを含む)は、厳密に言えばインタプリタプログラムが解釈する命令を与えるものである。.

新しい!!: 位置独立コードと実行ファイル · 続きを見る »

主記憶装置

主記憶装置(しゅきおくそうち)は、記憶装置の分類で、「補助記憶装置」が一般に外部バスなど比較的CPUから離れていて大容量だが遅い記憶装置を指すのに対し、コンピュータのメインバスなどに直接接続されている記憶装置で、レイテンシやスループットは速いが比較すると小容量である。特に、CPUが入出力命令によって外部のインタフェースを操作するのではなく、「ロード・ストア命令」や、さらには通常の加算などの命令において直接読み書きできる対象であるものを指す。メインメモリ、一次記憶装置とも。.

新しい!!: 位置独立コードと主記憶装置 · 続きを見る »

仮想記憶

仮想記憶(かそうきおく、Virtual Memory、バーチャルメモリ)とは、コンピュータ分野におけるメモリ管理の仮想化技法の一種であり、オペレーティングシステムなどが物理的なメモリを、アプリケーション・ソフトウェア(プロセスなど)に対して、専用の連続した主記憶装置に見えるように提供する。 この技術により、物理的な主記憶装置に加えてハードディスク装置等の補助記憶装置を併用すれば、物理的な主記憶装置よりも大きな仮想メモリを提供する事ができる。またアプリケーション・プログラム側は、物理メモリ上のアドレスを意識しなくて良いため、マルチタスクの実現が容易である。このため現代のオペレーティングシステムの多くが仮想記憶をサポートしている。 仮想的に与えられたアドレスを仮想アドレス (virtual address) または論理アドレス (logical address)、実記憶上で有効なアドレスを物理アドレス (physical address) または実アドレス (real address) という。仮想アドレスの範囲を仮想アドレス空間、物理アドレスの範囲を物理アドレス空間という。.

新しい!!: 位置独立コードと仮想記憶 · 続きを見る »

ページング方式

ページング方式 (Paging) とは、コンピュータのオペレーティングシステムにおいて記憶装置をページと呼ばれる小さな単位に分割して割り当てを行うアルゴリズム群である。仮想記憶のベースとなる設計の一つ。 物理メモリ空間および論理メモリ空間を、基本的に一定サイズのページと呼ばれる単位に分割して管理を行う。論理メモリから物理メモリ空間への対応づけはページテーブルと呼ばれる構造体で実現され、この構造体はオペレーティングシステム (OS) によって管理される。物理メモリ空間に対応づけられていない論理メモリを参照した時にはページフォルトという例外によってOS側の例外処理ルーチンに制御が移行し、OS側の管理によって適宜対応したページを二次記憶等から読み込み、テーブルを更新してその参照した命令の実行に戻る。 これを実現するハードウエアであるメモリ管理ユニット (MMU) の中にはトランスレーション・ルックアサイド・バッファ (Translation Lookaside Buffer:TLB) と呼ばれる一種のキャッシュがあり、ユニット内部ではこの対応表に基づいてメモリアドレスの対応づけを行っている。このテーブルから参照出来なかったときをTLBミスと呼ぶ。このときの処理はMMUの設計によって異なり、MMU内にはTLBのみを持ちTLBミスが即例外を起こし、OSがページテーブルを引いてTLBに追加することによってTLBミスを解決するアーキテクチャや、ページテーブル自体のフォーマットがOSが使えるビットを含めた形でMMUによって定義されていて、TLBミス時にMMU自身が与えられた物理アドレスにあるページテーブルを参照するアーキテクチャもある。.

新しい!!: 位置独立コードとページング方式 · 続きを見る »

メモリアドレス

メモリアドレス(memory address)は、コンピュータの主記憶装置にアクセスするためにソフトウェアおよびハードウェアによって様々なレベルで使用されるデータ概念である。通常、メモリアドレスは、整数として表示・処理される固定長の数字の列である。メモリアドレスの数値の意味は、CPUの機能(やなど)や様々なプログラミング言語で採用されている配列のようなメモリの使用法に基づいている。.

新しい!!: 位置独立コードとメモリアドレス · 続きを見る »

メモリ管理ユニット

68451 MMU。MC68010で利用可能 メモリ管理ユニット (Memory Management Unit、MMU) は、コンピュータのハードウェア部品のひとつであり、CPUの要求するメモリアクセスを処理する。.

新しい!!: 位置独立コードとメモリ管理ユニット · 続きを見る »

ライブラリ

ライブラリ()は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。ライブラリと呼ぶ時は、それ単体ではプログラムとして作動させることはできない実行ファイルではない場合がある。ライブラリは他のプログラムに何らかの機能を提供するコードの集まりと言うことができる。ソースコードの場合と、オブジェクトコード、あるいは専用の形式を用いる場合とがある。たとえば、UNIXのライブラリはオブジェクトコードをarと呼ばれるアーカイバでひとまとめにして利用する。図書館()と同様にプログラム(算譜)の書庫であるので、索引方法が重要である。 また、ソフトウェア以外の再利用可能なものの集合について使われることもある。.

新しい!!: 位置独立コードとライブラリ · 続きを見る »

リロケータブルバイナリ

リロケータブルバイナリとは、リロケータブルな性質を持つバイナリである。 普通、コンピュータの機械語(実行形式)では、実効アドレスの記述には絶対アドレスが用いられる。この場合、プログラムファイルを置くアドレス位置は一箇所に固定され、そのままでは別アドレス位置に置いて実行することはできない。 そこで、あらかじめ絶対アドレスの記述に代えて仮想のアドレス指定をしておき、実行形式のプログラムファイルを生成する際にはじめて絶対アドレスを記述する(このためのソフトウェアを「リンケージエディタ」と呼ぶ)ようにすれば、メモリ空間のどこにでもその実行形式プログラムを置くことができる。 分割コンパイルで出力されるオブジェクトやバイナリライブラリはたいていリロケータブルバイナリである。 CPUやOSの仕様によっては、実行形式の機械語プログラムに絶対アドレスをまったく用いないことにして、そのまま任意のアドレスにロードできるようにしたものもある。そのようなコードを位置独立コードという。.

新しい!!: 位置独立コードとリロケータブルバイナリ · 続きを見る »

リンケージエディタ

リンケージエディタ(リンカ(linker)、連係編集プログラムとも)とは機械語のプログラムの断片を結合し実行可能なプログラムを作成するプログラムのことである。例として、C言語では、ソースファイルをコンパイルするとオブジェクトファイルが生成される。それに他のオブジェクトファイルやライブラリを結合して1つのプログラムが完成する。この結合(リンク)の際リンケージエディタが使われる。.

新しい!!: 位置独立コードとリンケージエディタ · 続きを見る »

レジスタ (コンピュータ)

レジスタ(register)はコンピュータのプロセッサなどが内蔵する記憶回路で、制御装置や演算装置や実行ユニットに直結した、操作に要する速度が最速の、比較的少量のものを指す。.

新しい!!: 位置独立コードとレジスタ (コンピュータ) · 続きを見る »

ローダ

ーダ は、プログラムやデータなどを、外部(他のコンピュータや外部記憶装置)からインタフェースなどを通して受け取り、主記憶装置やワークエリアに置く(ロードする)プログラムである。なお、それに加えてプログラムを起動できる状態にし、それを実行するというスタートアップなどと呼ばれる機能まで混同している者も多い。以下は、もっぱらその混同に関する説明である。.

新しい!!: 位置独立コードとローダ · 続きを見る »

プロシージャ

プロシージャ (procedure)とは、プログラミングにおいて複数の処理を一つにまとめたものをいう。手続きとするのが定訳である。一連の処理を意味を持った一まとまりにすることで、再利用性が高まり、プログラム中に繰り返して現れる処理を1ヶ所で記述でき、プログラムの保守、管理を容易にする。 繰り返し利用されることから、ルーチンとも言う。呼び出し関係は通常階層構造をなし、その最上位にある、プログラム全体のエントリーポイントを含むルーチンをメインルーチン、呼び出されるものをサブルーチンと言う。また、関数と呼ばれることもある(通常、数学における関数とは違ったものであるので、注意が必要である)。 プログラミング言語により、プロシージャのような構文の分類や呼称はさまざまである。詳細はサブルーチンの記事を参照のこと。 Category:プログラミング言語の構文 he:שגרה ur:دستورالعمل.

新しい!!: 位置独立コードとプロシージャ · 続きを見る »

ダイナミックリンクライブラリ

ダイナミックリンクライブラリ (Dynamic Link Library: DLL、動的リンクライブラリ)は、ソフトウェアの一種。動的リンクを使ったライブラリのこと。あるいは、Windowsで使用されるファイル形式を特に意図して、この語が用いられる場合もある。 複数のプログラムから共通に利用できるように種々の機能をプログラムとは分離させた、シェアードライブラリ(共有ライブラリ)でもあることが多い。.

新しい!!: 位置独立コードとダイナミックリンクライブラリ · 続きを見る »

アドレス空間

情報処理において、アドレス空間 (Address Space) とは、メモリアドレスが意味を成すコンテキストを定義したもの。あるいは、一連のメモリアドレスによってアクセス可能なメモリ空間を意味する。 メモリアドレスはコンピュータのメモリ内の物理的位置を識別するものであり、住所とある意味で類似している。アドレスはデータが格納されている位置を指すが、それはちょうど人間の住所がその人の居住地を指すのと同じである。人間の住所とのアナロジーで言えば、「アドレス空間」とは、町や市や国といったある範囲の地域に対応すると考えることができる。2つのアドレスが数値的に同じでも、それぞれ異なるアドレス空間内のアドレスであれば、異なる位置を指していると言える。これは2つの市に「××町○丁目△-□」という住所が存在したとき、それらが別の場所を指すのと同じことである。 アドレス空間の例:.

新しい!!: 位置独立コードとアドレス空間 · 続きを見る »

アドレス空間配置のランダム化

アドレス空間配置のランダム化(address space layout randomization, ASLR)とは、重要なデータ領域 の位置(通常、プロセスのアドレス空間における実行ファイルの基底とライブラリ、ヒープ、およびスタックの位置が含まれる)を無作為に配置するコンピュータセキュリティの技術である。.

新しい!!: 位置独立コードとアドレス空間配置のランダム化 · 続きを見る »

オペレーティングシステム

ペレーティングシステム(Operating System、OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)のために、ソフトウェアの中でも基本的、中核的位置づけのシステムソフトウェアである。通常、OSメーカーが組み上げたコンピュータプログラムの集合として、作成され提供されている。 オペレーティングシステムは通常、ユーザーやアプリケーションプログラムとハードウェアの中間に位置し、ユーザーやアプリケーションプログラムに対して標準的なインターフェースを提供すると同時に、ハードウェアなどの各リソースに対して効率的な管理を行う。現代のオペレーティングシステムの主な機能は、ファイルシステムなどの補助記憶装置管理、仮想記憶などのメモリ管理、マルチタスクなどのプロセス管理、更にはGUIなどのユーザインタフェース、TCP/IPなどのネットワーク、などがある。オペレーティングシステムは、パーソナルコンピュータからスーパーコンピュータまでの各種のコンピュータや、更にはスマートフォンやゲーム機などを含む各種の組み込みシステムで、内部的に使用されている。 製品としてのOSには、デスクトップ環境やウィンドウシステムなど、あるいはデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、基本的なアプリケーションソフトウェア(ウェブブラウザや時計などのアクセサリ)が、マーケティング上の理由などから一緒に含められていることもある。 OSの中で、タスク管理やメモリ管理など特に中核的な機能の部分をカーネル、カーネル以外の部分(シェルなど)をユーザランドと呼ぶ事もある。 現代の主なOSには、Microsoft Windows、Windows Phone、IBM z/OS、Android、macOS(OS X)、iOS、Linux、FreeBSD などがある。.

新しい!!: 位置独立コードとオペレーティングシステム · 続きを見る »

グローバル変数

ーバル変数(大域変数、global variable)は、コンピュータプログラミングにおいて全てのスコープからアクセスできる変数のことである。グローバル変数の寿命は、プログラムの生存期間と同じである。対する語は、ローカル変数である。スコープも参照。.

新しい!!: 位置独立コードとグローバル変数 · 続きを見る »

コンパイラ

ンパイラ(英:compiler)とは、コンピュータ・プログラミング言語の処理系(言語処理系)の一種で、高水準言語によるソースコードから、機械語に(あるいは、元のプログラムよりも低い水準のコードに)変換するプログラムである。.

新しい!!: 位置独立コードとコンパイラ · 続きを見る »

コンピュータセキュリティ

ンピュータセキュリティ(英語:Computer Security)は、情報セキュリティの一部で、コンピュータシステムを災害、誤用および不正アクセスなどから守ることである。また、ハードウェア、ソフトウェア、データ、ネットワークのいずれについてもその機密性、完全性、可用性を維持することである。 不正な利用とは、第三者による秘密情報へのアクセス、許可されていない操作の実行、ネットを介した詐欺(架空請求、ワンクリック詐欺など)が含まれる。この語は、しばしばコンピュータセキュリティ(安全性)を保つための仕組みや技術を指すために用いられる。また、コンピュータセキュアとも呼ばれる場合もある。.

新しい!!: 位置独立コードとコンピュータセキュリティ · 続きを見る »

コア戦争

ア戦争 (Core Wars) はプログラミングゲームのひとつである。専用に設計された仮想機械中で、互いに干渉しうるプログラム同士が戦うというもので、敵対するプログラムを終了させ、自分は生き残ってマシンを占領するのがゲームの目的である。仮想機械は『MARS』(火星にも掛けているが、Memory Array Redcode Simulatorの頭字語)という名前で、戦闘プログラムは『戦士』"warriors" と呼ばれる。 ロボットバトルシミュレーションといった趣きのプログラミングゲームは他にもあるが、コンピュータの記憶装置そのものを戦場とし、プログラムが存在するメモリを上書きするなどして直接プログラム同士が戦う、という点がこの作品の特色である。なお「コア」は磁気コアメモリに由来する。.

新しい!!: 位置独立コードとコア戦争 · 続きを見る »

スタブ

タブ (stub) とは、コンピュータプログラムのモジュールをテストする際、そのモジュールが呼び出す下位モジュールの代わりに用いる代用品のこと。下位モジュールが未完成でも代わりにスタブを用いることでテストが可能になる。逆に上位モジュールの代わりに用いる代用品を'''ドライバ'''(ソフトウェアの場合)またはコントローラ(ハードウェアの場合)と呼ぶ。ただし、仮のモジュールではなく正規のモジュールについてもドライバ/コントローラと呼ばれる事があるので、区別するために「テストドライバ」や「サンプルドライバ」などと呼ぶ事も多い。 なお、stubの原義は使い残し、半券、切り株と言った意味である。.

新しい!!: 位置独立コードとスタブ · 続きを見る »

ソースコード

青で示されているのが有効なコードである。 ソースコード(source code)とは、コンピュータプログラミング言語で書かれた、コンピュータプログラムである文字列(テキストないしテキストファイル)のことである。.

新しい!!: 位置独立コードとソースコード · 続きを見る »

COFF

COFF (Common Object File Format) はUnixシステムで用いられる実行ファイル、オブジェクトファイル、共有ライブラリのファイルフォーマット仕様である。Unix System V で導入され、SVR4で導入されたELFによって広く置き換えられる前に、XCOFFやECOFFなどの拡張仕様の基礎を形作った。COFFとその派生種はその後もUnixライクシステムやMicrosoft Windows上で使われ続けている。.

新しい!!: 位置独立コードとCOFF · 続きを見る »

COMファイル

COMファイル (コムファイル、COM file) は、実行可能ファイル形式の一つ。語源はcommand(命令)。拡張子は.COM」(本来は大文字)だが、トップレベルドメインの.com (commercial) とは無関係。 実行時のメモリイメージがそのままファイルとなっている、最も単純な実行可能ファイル形式である。 MS-DOSのCOMファイルはコンピュータウイルスCascadeに感染する。.

新しい!!: 位置独立コードとCOMファイル · 続きを見る »

ESA/390

ESA/390 (Enterprise Systems Architecture/390、エンタープライズ・システム・アーキテクチャ/390)は、IBMが1990年に発表したアーキテクチャである。 ESA/390は、IBMの最後の31ビットアドレス/32ビットデータのIBMメインフレーム用のアーキテクチャであり、アムダール、日立製作所、富士通などが互換機を製造した。System/370およびS/370-XA、ESA/370の後継であり、2000年に64ビットのz/Architectureに引き継がれた。 ESA/390アーキテクチャをサポートしたマシンは、1990年代にIBM S/390のブランドで販売された。IBM S/390シリーズはCPUの実装に最初はバイポーラを採用し、後にCMOSに移行した。 In the context of computer memory, 1 GB.

新しい!!: 位置独立コードとESA/390 · 続きを見る »

Exec Shield

Exec Shield はレッドハットが2002年後半に開始したプロジェクトであり、Linuxシステムに対するワームなどの自動化された攻撃の危険性を低減することを目的としている。最初の成果は、Linuxカーネル用セキュリティパッチであり、NXビットがハードウェアで実装されていないx86系マイクロプロセッサでNXビットをエミュレートするものだった。Exec Shield には他にも多数のコンポーネントがあるが、この最初のパッチだけを Exec Shield と呼ぶ人もいる。.

新しい!!: 位置独立コードとExec Shield · 続きを見る »

英語

アメリカ英語とイギリス英語は特徴がある 英語(えいご、)は、イ・ヨーロッパ語族のゲルマン語派に属し、イギリス・イングランド地方を発祥とする言語である。.

新しい!!: 位置独立コードと英語 · 続きを見る »

Linux

Linux(リナックス、他の読みは後述)とは、Unix系オペレーティングシステムカーネルであるLinuxカーネル、およびそれをカーネルとして周辺を整備したシステム(GNU/Linuxシステムも参照)である。.

新しい!!: 位置独立コードとLinux · 続きを見る »

Linuxディストリビューション

Linuxディストリビューションとは、Linuxを一般利用者がインストールしたり、利用できる形にまとめ上げたもの(頒布形態)。.

新しい!!: 位置独立コードとLinuxディストリビューション · 続きを見る »

MacOS

macOS(マックオーエス)は、アップルが開発・販売する、Macのオペレーティングシステムである。かつての名称はOS X、Mac OS Xであった(後述)。 技術的に直系ではないが、Classic Mac OS (Mac OS、System) の後継として、新たにBSD系UNIXをベースに開発された。.

新しい!!: 位置独立コードとMacOS · 続きを見る »

MC68000

MC68000(エムシーろくまんはっせん)、68000は米・モトローラ(現NXPセミコンダクターズ)が開発したMPU(MPUはマイクロプロセッサを指すのにモトローラが使った語でマイクロプロセッシングユニットの略)である。略して68K(ろくはちケー)などとも。後継MPUも含めた同一アーキテクチャのシリーズを総称するときは、680x0と呼称される。モトローラ自体は周辺LSIを含めてM68000ファミリと呼称した。MC型番は量産ロットで、量産先行品はXC型番となる。.

新しい!!: 位置独立コードとMC68000 · 続きを見る »

MC6809

1 MHz '''モトローラ6809'''E MC6809は、モトローラが1979年に発売した、8ビットのマイクロプロセッサ。対称性の高い命令体系を持っている点が特徴である。.

新しい!!: 位置独立コードとMC6809 · 続きを見る »

Microsoft Developer Network

Microsoft Developer Network (ディベロッパーネットワーク、MSDN) とは、マイクロソフトの開発者ネットワークであり同社が開発者向けに提供するサービスの総称。.

新しい!!: 位置独立コードとMicrosoft Developer Network · 続きを見る »

Microsoft Windows

Microsoft Windows(マイクロソフト ウィンドウズ)は、マイクロソフトが開発・販売するオペレーティングシステム (OS) の製品群。グラフィカルユーザインタフェース (GUI)を採用している。.

新しい!!: 位置独立コードとMicrosoft Windows · 続きを見る »

MIPSアーキテクチャ

MIPSアーキテクチャは、ミップス・コンピュータシステムズ(現ミップス・テクノロジーズ)が開発したRISCマイクロプロセッサの命令セット・アーキテクチャ (ISA) である。.

新しい!!: 位置独立コードとMIPSアーキテクチャ · 続きを見る »

MMIX

MMIX(エムミックス)は、ドナルド・クヌースがジョン・ヘネシー(MIPSプロセッサ設計者)や Dick Sites(Alphaプロセッサ設計者)の協力を得て設計した命令セット(命令セットアーキテクチャ、ISA)である。コンピュータプログラミングの「Art」を記している大著The Art of Computer Programming (TAoCP) において使用していた「MIX」の代替となるべく設計され、現代的な特徴を持つ。当命令セットを設計した後に執筆・改訂の TAoCP にて既に使用されている。 "MMIX" という綴りはローマ数字として解釈すると2009であり、前任のMIXの頭にMを付けたものであると同時に、2000年代のコンピュータ(プロセッサ)という意味を掛けているものと思われる(とはいえ、MIXの時の「実在のコンピュータ 16 種の型番から取って平均した」値の1009である、という主張にはかなりこじつけの気配があったのと同様、特に意味があるものではない)。.

新しい!!: 位置独立コードとMMIX · 続きを見る »

PaX

PaX は、メモリに関する最小特権保護を実装したLinuxカーネル向けコンピュータセキュリティパッチである。最小特権の手法により、プログラムは正しい動作以外は何もできなくなる。PaX は2000年にリリースされた。 PaX はデータ用メモリページを実行不可とし、コード用メモリページを書き込み不可にすると共に無作為な配置を行う。これによりセキュリティを危険にさらす様々な動作が不可能になる(バッファオーバーランの一種など)。データページの実行不可設定により、データをコードとして実行できなくなる。コードページの書き込み不可設定により、不正なライブラリ実行が難しくなる。ただし、変数やポインタの書き換えは防げない。 PaX は The PaX Team が保守しているが、個々の開発者は匿名である。 Linuxのマスコット、タックスの PaX.

新しい!!: 位置独立コードとPaX · 続きを見る »

PowerPC

IBM PowerPC 601 マイクロプロセッサ PPC601FD-080-2 IBM PowerPC 601+ マイクロプロセッサ PPCA601v5FE1002 IBM PowerPC 601 マイクロプロセッサ PPC601FF-090a-2 PowerPC(パワーピーシー、Performance optimization with enhanced RISC - Performance Computing)は1991年にアップルコンピュータ、IBM、モトローラの提携(AIM連合)によって開発された、RISCタイプのマイクロプロセッサである。 PowerPCはIBMのPOWERアーキテクチャをベースに開発され、アップルコンピュータのMacintoshやIBMのRS/6000などで採用された。現在ではゲーム機をはじめとした組み込みシステム、スーパーコンピュータで広く使われている。なお、POWER3以降は、POWERファミリ自体がPowerPCアーキテクチャに準拠している。.

新しい!!: 位置独立コードとPowerPC · 続きを見る »

Return-to-libc攻撃

Return-to-libc攻撃とは、バッファオーバーランによってコールスタック上のリターンアドレスを別のサブルーチンへのアドレスへ書き換え、さらにスタック上の引数に当たる位置も書き換えることで、サブルーチンを呼び出させるコンピュータセキュリティの攻撃手法である。攻撃者は、悪意あるコードをプログラムに注入することなく、単に既存の関数を呼び出すだけで攻撃を行う。 Unix系システムでは、C言語ランタイムとして "libc" という共有ライブラリが使われる(Windows でも該当するライブラリが存在する)。バッファオーバーランでは攻撃者は任意のコードに戻るように細工できるが、常にリンクされていて攻撃に使い易い機能が多く存在する libc をターゲットとすることが多い(例えば、system() は引数さえ正しく指定すれば、任意のプログラムを実行できる)。このため、全く別の場所を呼び出すようになっていても総称として "return-to-libc" と呼ぶ。.

新しい!!: 位置独立コードとReturn-to-libc攻撃 · 続きを見る »

RISC

RISC(りすく、Reduced Instruction Set Computer、縮小命令セットコンピュータ)は、コンピュータの命令セットアーキテクチャ(ISA)の設計手法の一つで、命令の種類を減らし、回路を単純化して演算速度の向上を図るものである。なお、RISCが提唱されたときに、従来の設計手法に基づくアーキテクチャは対義語としてCISCと呼ばれるようになった。 RISCを採用したプロセッサ (CPU) をRISCプロセッサと呼ぶ。RISCプロセッサの例として、ARM、MIPS、POWER、SPARCなどが知られる。.

新しい!!: 位置独立コードとRISC · 続きを見る »

SPARC

UltraSPARC IIマイクロプロセッサ SuperSPARC TMX390Z50GF H359403658C SPARC(スパーク、Scalable Processor Architecture)は、サン・マイクロシステムズが開発・製造したRISCベースのマイクロプロセッサであり、その命令セットアーキテクチャの名称である。 現在はSPARCインターナショナルの登録商標であり、複数のメーカーがこのアーキテクチャに基づいたプロセッサを製造している。.

新しい!!: 位置独立コードとSPARC · 続きを見る »

The Art of Computer Programming

『』は、コンピュータプログラミングに関する書籍である。様々なアルゴリズムについて、その背景や歴史まで踏み込んだ徹底的な解説を行っている。著者のドナルド・クヌース は、自身のライフワークと位置づけている。 その全体構想から見れば現在も未完であるが、十分な業績としてみなされていることは、3巻初版までが刊行されていた1974年に受賞したチューリング賞の受賞理由に功績として本シリーズが含まれていることからも分かる。また、1976年に2巻の第2版の準備をしていた際に、初版のような鉛版による組版 (en:Hot metal typesetting) が行われなくなっていたために仕上がりに納得せず、組版システムの TeX を(当初は1978年のサバティカルが終わるまでには完全に仕上げるつもりで)作り始めてしまったことなど、逸話も多い。 現在3巻までと4巻の分冊が刊行されている。今後の計画についてはwebページで確認できるが、おおむね執筆開始当初の構想と変わっておらず、5巻は構文的 (syntactic) アルゴリズムについてで、9章が字句スキャナ、10章が(文字列)解析の技術、6巻は文脈自由文法の理論、7巻がコンパイラ技術となっている。ただし位置付けとして、5巻までの内容は central core of computer programming for sequential machines であるのに対し、6・7巻の内容は important but more specialized である、としている(またドラゴンブック等、この40年の間に書籍が充実した分野でもある)。 近年では、アスキーから日本語訳が出版されていた。2007年9月現在で3巻までと改訂版分冊1巻、4巻の分冊2,3が刊行されていた。その後、KADOKAWAドワンゴに在籍する元アスキーの編集者が担当する「アスキードワンゴ」レーベルにより、2015年6月の1巻再刊から再開され、2017年3月に4巻の最初のまとまった分冊である4A巻が刊行されている。 サイエンス社から出版されていた旧日本語訳版は、原著2巻相当分の4巻までしか出ていない。また、出版時期が古いためもあるが、専門用語について可能な限りカタカナ語を使わず訳すという少々冒険的な方針のために独特の用語が多用されており、和訳における専門用語の扱いにおける歴史的な一例にもなっている。.

新しい!!: 位置独立コードとThe Art of Computer Programming · 続きを見る »

Unix系

複数のUnix系システム間の関連図 Unix系(ユニックスけい、ユニックスライク)とは、Unixに類似した振る舞いをするオペレーティングシステム (OS) を指す用語である。その判断基準や範囲には複数の議論がある。.

新しい!!: 位置独立コードとUnix系 · 続きを見る »

X64

x64またはx86-64とは、x86アーキテクチャを64ビットに拡張した命令セットアーキテクチャ。 実際には、AMDが発表したAMD64命令セット、続けてインテルが採用したIntel 64命令セット(かつてIA-32eまたはEM64Tと呼ばれていた)などを含む、各社のAMD64互換命令セットの総称である。x86命令セットと互換性を持っていることから、広義にはx86にx64を含む場合がある。 なお、インテルはIntel 64の他にIA-64の名前で64ビット命令セットアーキテクチャを開発・展開しているが、これはx64命令セット、x86命令セットのいずれとも互換性がない。.

新しい!!: 位置独立コードとX64 · 続きを見る »

X86

x86(エックスはちろく)は、Intel 8086、およびその後方互換性を持つマイクロプロセッサの命令セットアーキテクチャの総称。16ビットの8086で登場し、32ビット拡張の80386(後にIA-32と命名)、64ビット拡張のx64、広義には更にAMDなどの互換プロセッサを含む。 なおインテルのIA-64は全く異なる。.

新しい!!: 位置独立コードとX86 · 続きを見る »

機械語

機械語(きかいご)またはマシン語(Machine code、machine language)とは、コンピュータのプロセッサが直接解釈実行可能な一連の命令群のデータそのもの(を、コンピュータ・プログラミング言語とみなしたもの)である。.

新しい!!: 位置独立コードと機械語 · 続きを見る »

65816 (コンピュータ)

DIP40パッケージの'''W65C816S'''マイコン。正方形のLCCプロセッサもある。 W65816(65C816)は、アメリカ・ウェスタンデザインセンター (WDC) の16ビットCPUで、モステクノロジーの6502の後継にあたるCPUである。65816の65は6502と互換性があることからきており、816は8ビットモードと16ビットモードの両方で動作することを意味している。.

新しい!!: 位置独立コードと65816 (コンピュータ) · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »