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

オブジェクトファイル

索引 オブジェクトファイル

ブジェクトファイル またはオブジェクトコード とは、コンパイラがソースコードを処理した結果生成される、コード生成の結果であるバイナリコードを含む中間的なデータ表現のファイルである。中身は、機械語バイナリとそれに付随するシンボルテーブルやリロケーションテーブルといった付加情報であり、さらにデバッグ支援情報や近年はリンク時最適化等のための高度な情報が含まれる場合もある。オブジェクトファイル群をリンクすることによって最終的な実行ファイルやライブラリが作成される。オブジェクトファイルのほとんどは機械語である(コンピュータのCPUが直接実行できるコード)。オブジェクトファイルフォーマットはコンパイラやアセンブラが生成するオブジェクトファイルのファイルフォーマットである。.

39 関係: A.outフォーマットAIX実行ファイル仮想記憶位置独立コードハッシュテーブルバイナリバイトコードメモリアドレスライブラリリロケータブルバイナリリンケージエディタデバッグファイルフォーマットアプリケーションプログラミングインタフェースアセンブリ言語グローバル変数コンパイラシンボルテーブルソースコードBFDライブラリCOFFCOMファイルCPUDWARFEXEフォーマットExecutable and Linkable FormatGNUプロジェクトMach-OMacOSMS-DOSNew ExecutableNeXTPortable ExecutablePreferred Executable FormatUNIXUNIX System V機械語.bss

A.outフォーマット

a.outフォーマットは、UNIXにおける最初の実行ファイルおよびリンク可能ファイルのファイルフォーマットである。名前は、コンパイラの出力するファイルのデフォルトの名前がa.out(アセンブラアウトプット)であることから名付けられた。Windows上のgccではa.outファイルの代わりにa.exeを生成する。.

新しい!!: オブジェクトファイルとA.outフォーマット · 続きを見る »

AIX

AIX(Advanced Interactive Executive、エーアイエックス)は、IBM の UNIX オペレーティングシステムのブランド名である。.

新しい!!: オブジェクトファイルとAIX · 続きを見る »

実行ファイル

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

新しい!!: オブジェクトファイルと実行ファイル · 続きを見る »

仮想記憶

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

新しい!!: オブジェクトファイルと仮想記憶 · 続きを見る »

位置独立コード

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

新しい!!: オブジェクトファイルと位置独立コード · 続きを見る »

ハッシュテーブル

ハッシュテーブルの例(名前をキーとして電話番号を検索) ハッシュテーブル (hash table) は、キーと値の組(エントリと呼ぶ)を複数個格納し、キーに対応する値をすばやく参照するためのデータ構造。ハッシュ表ともいう。ハッシュテーブルは連想配列や集合の効率的な実装のうち1つである。.

新しい!!: オブジェクトファイルとハッシュテーブル · 続きを見る »

バイナリ

バイナリ (binary) とは二進法のことであるが、コンピュータが処理・記憶するために2進化されたファイルまたはその内部表現の形式(バイナリデータ)のことを指して用いることが多い。 コンピュータが扱うすべてのデータはバイナリデータ(バイトの並び)であり、プレーンテキスト(または単にテキスト)もバイナリデータの一種ではあるが、通常バイナリとテキストは対比して用いられる。テキストとはデータの内容すべてを人間が読んで理解できる (human-readable) もの、バイナリとはそうでないものを指す。human-readableに対する語はmachine-readableだが、これは(機械的に読むことが可能であるように)フォーマットが定められているもの、という意味である。バイナリフォーマットではエンディアンなどに互換性・移植性の上で注意が必要であり、それを避けてテキスト形式で記録することも少なくない(UNIX哲学も参照。なお浮動小数点数やループした構造の表現など、テキスト形式にも注意が必要な点は多い)。バイナリエディタを用いると、バイナリファイルを1バイトずつの(16進法での)数値の並びとして表示・編集を行うことができる。バイナリのファイルでも多くは部分的にテキストとして読み取れる箇所が存在するため、そういった箇所のみを抜き出すstringsというユーティリティもある。 バイナリファイルにはたとえば画像ファイルや音声ファイル、圧縮されたファイルなどがある。バイナリファイルの中にはファイルの先頭にメタ情報(ヘッダ)を持っているものがある。たとえばGIFファイルは複数の画像を持つことができ、ファイルの先頭でそれぞれの画像を区別する情報が記述されている。そのようなメタ情報を持たないファイルはフラットバイナリファイルと呼ばれる。コンピュータプログラム関係では、テキストであるソースコードとの対比からコンパイルされたコード(オブジェクトファイルや実行ファイルなど。またそのような機械語(ネイティブバイナリ)に限らず、WebAssemblyやJavaなどのバイトコード類なども含む)のファイル等を指してバイナリと呼ばれることがしばしばある。プロプライエタリのソフトウェアは、バイナリの形態でさらに難読化を掛けて、販売されることが多い。 バイナリ形式でのデータの表現方法はさまざまなものがある。例えば、数値であれば0~9までの数をパターン化して記録するBCD、ゾーンビットと実際の数値、正の数か負の数かを記録する符号ビットからなるアンパック10進数(ゾーン10進数)や、実際の数値と符号ビットだけからなるパック10進数などがある。文字列の扱いとしては、ナル文字('\0')で終端する方法や、長さ(オクテット数、あるいは文字(符号点)の個数)を別に保持する、といった方式がある。前者では、'\0' を含むようなバイナリを「文字列」として扱うことができない。.

新しい!!: オブジェクトファイルとバイナリ · 続きを見る »

バイトコード

バイトコード (bytecode) は、仮想マシンによる実行のために設計された、実行可能なプログラムのバイナリ表現である。ソフトウェアによって処理されるため、大抵は実機の機械語より抽象度の高い中間コードになっている。プログラミング言語の実装において、特定のハードウェアへの依存度を下げ、またインタプリタの実装を容易にするために用いられる。コンパイラの中間コードとして用いられることもある。 バイトコードという名前は命令の構成がバイト指向であること、すなわち命令長がバイト可変長であったり、命令中のフィールドの区切りがバイト区切りに合っているといったことから来ている。特にJavaの場合オペコードが1バイトである。しかし、仮想マシンの機械語をバイトコードと呼ぶことがJavaで広く一般的になったことから、前述のようなバイト指向でなくともバイトコードと呼んでいることも多い。バイト単位でなくビット単位の場合は、ビットコードとも呼ばれる。ワード指向のためにワードコードという語を使っている例も見られる。 バイトコードで記述されたプログラムは通常、バイトコードインタプリタによって解釈・実行される。バイトコードインタプリタは機械語を解釈・実行するCPUとの類似性からバーチャルマシンとも呼ばれる。.

新しい!!: オブジェクトファイルとバイトコード · 続きを見る »

メモリアドレス

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

新しい!!: オブジェクトファイルとメモリアドレス · 続きを見る »

ライブラリ

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

新しい!!: オブジェクトファイルとライブラリ · 続きを見る »

リロケータブルバイナリ

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

新しい!!: オブジェクトファイルとリロケータブルバイナリ · 続きを見る »

リンケージエディタ

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

新しい!!: オブジェクトファイルとリンケージエディタ · 続きを見る »

デバッグ

デバッグ(debug)とは、コンピュータプログラムや電気機器中のバグ・欠陥を発見および修正し、動作を仕様通りのものとするための作業である。サブシステムが密結合であると、1箇所の変更が別の箇所でのバグを作り出すので、バグの修正がより困難となる。.

新しい!!: オブジェクトファイルとデバッグ · 続きを見る »

ファイルフォーマット

ファイルフォーマットはコンピュータなどの情報機器で利用するファイルの保存形式である。コンピュータで扱う文書、音声、画像、動画などのさまざまなメディアのファイルを特定の利用方法やアプリケーションソフトウェアで共通に扱うための形式や規格のこと。.

新しい!!: オブジェクトファイルとファイルフォーマット · 続きを見る »

アプリケーションプログラミングインタフェース

アプリケーションプログラミングインタフェース(、)とは、広義の意味ではソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。 APIには、サブルーチン、データ構造、オブジェクトクラス、変数などの仕様が含まれる。APIには様々な形態があり、POSIXのような国際規格、マイクロソフトのWindows APIのようなベンダーによる文書、プログラミング言語のライブラリ(例えば、C++のStandard Template Libraryやなど)がある。 商業的に使われる狭義の意味ではOSやミドルウェアやWebサービス等サービスを利用するアプリケーション(Application)を作成する(Programming)ためのインターフェース(Interface)である。こちらの意味ではサービスから提供されないStandard Template Libraryなど言語の標準ライブラリーは含まない。 APIはApplication Binary Interface (ABI) とは異なる。APIはソースコードベースだが、ABIはバイナリインタフェースである。例えば、POSIXはAPIだが、Linux Standard Base (LSB) はABIである(LSBはいろいろな規定の集合なので、正確には「LSBには、ABIにまで踏み込んでいる部分もある」)。.

新しい!!: オブジェクトファイルとアプリケーションプログラミングインタフェース · 続きを見る »

アセンブリ言語

モトローラ MC6800 のアセンブリ言語のソースコード アセンブリ言語(アセンブリげんご、英: assembly language)とは、コンピュータ、マイクロコントローラ、その他のプログラム可能な機器を動作させるための機械語を人間にわかりやすい形で記述する、代表的な低水準言語である。なお、英語の assembly とは「組立」という意味である。.

新しい!!: オブジェクトファイルとアセンブリ言語 · 続きを見る »

グローバル変数

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

新しい!!: オブジェクトファイルとグローバル変数 · 続きを見る »

コンパイラ

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

新しい!!: オブジェクトファイルとコンパイラ · 続きを見る »

シンボルテーブル

ンボルテーブル(Symbol table)は、コンパイラやインタプリタなどのようなコンピュータプログラミング言語処理系などのようなプログラムで使われるデータ構造であり、プログラムのソースコード内の各識別子(名前)と、それぞれの内容(データ型、スコープレベル、位置など)となるデータなどといった、「名前」→「中身」というような情報のテーブルである。.

新しい!!: オブジェクトファイルとシンボルテーブル · 続きを見る »

ソースコード

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

新しい!!: オブジェクトファイルとソースコード · 続きを見る »

BFDライブラリ

BFDライブラリ(ビーエフディーライブラリ、Binary File Descriptor Library)は、GNUプロジェクトにおいて、各種のオブジェクトファイルを取り扱う主要なメカニズムである。2003年時点で、約50のファイルフォーマットと約25のプロセッサ・アーキテクチャをサポートしている。 BFDライブラリは、オブジェクトファイルに共通の抽象的なビューを与えることにより動作する。オブジェクトファイルは、それぞれが名前・属性・データブロックを持つ複数の「セクション」、シンボルテーブル、リロケータブルバイナリのエントリ、を記述する「ヘッダ」を持つ。 内部的にBFDライブラリは、データを抽象的な形式から対象のプロセッサやファイルフォーマットが要求するビット/バイトレイアウトの形式に変換する。その主要なサービスはバイトオーダーの違いを取り扱うことである。例えば、リトルエンディアンのホストでのビッグエンディアンのターゲットの扱い、32ビットと64ビットの間の正しいデータ変換、再配置エントリによって決定されるアドレス演算の手順のようなものである。 BFDライブラリは当初、多種多様なツールから利用できる一般的なライブラリとして設計されていたが、GPLでのライセンシング、新しいシステムの特性に対応するためのAPIの頻繁な調整により、利用は抑えられる傾向にあった。BFDライブラリの主要な利用者は、GNUアセンブラ (GAS)、GNUリンカ (GLD)、他のGNU Binutilsのツール、GNUデバッガ (GDB) である。結果として、BFDライブラリ自体が独立して配布されることはなく、binutilsとGDBのリリースに同梱されている。いずれにせよ、BFDライブラリは組み込みシステム向け開発のためのGNUツールの重要な構成要素である。 BFDライブラリは、コアダンプで出力された構造体データを読むためにも利用される。.

新しい!!: オブジェクトファイルとBFDライブラリ · 続きを見る »

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ファイル · 続きを見る »

CPU

Intel Core 2 Duo E6600) CPU(シーピーユー、Central Processing Unit)、中央処理装置(ちゅうおうしょりそうち)は、コンピュータにおける中心的な処理装置(プロセッサ)。 「CPU」と「プロセッサ」と「マイクロプロセッサ」という語は、ほぼ同義語として使われる場合も多いが、厳密には以下に述べるように若干の範囲の違いがある。大規模集積回路(LSI)の発達により1個ないしごく少数のチップに全機能が集積されたマイクロプロセッサが誕生する以前は、多数の(小規模)集積回路(さらにそれ以前はディスクリート)から成る巨大な電子回路がプロセッサであり、CPUであった。大型汎用機を指す「メインフレーム」という語は、もともとは多数の架(フレーム)から成る大型汎用機システムにおいてCPUの収まる主要部(メイン)、という所から来ている。また、パーソナルコンピュータ全体をシステムとして見た時、例えば電源部が制御用に内蔵するワンチップマイコン(マイクロコントローラ)は、システム全体として見た場合には「CPU」ではない。.

新しい!!: オブジェクトファイルとCPU · 続きを見る »

DWARF

DWARF とは、広く使われているデバッグ用データフォーマットの規格である。当初ELFと共に設計されたが、オブジェクトファイルのフォーマットとは独立している。名称は "ELF" から発想した駄洒落だが、「Debug With Attributed Record Format の頭字語」という説もある。.

新しい!!: オブジェクトファイルとDWARF · 続きを見る »

EXEフォーマット

EXEフォーマット(エグゼフォーマット)とはMS-DOSおよびその互換・後継環境の実行ファイルフォーマットである。 MS-DOSで実行可能なバイナリのフォーマットには他に、COMフォーマットと言うファイルフォーマットが存在する。COMフォーマットは、コード、データ、スタックの全てのセグメントが同一であるモデルで、開始番地も固定の0x100であるメモリイメージそのものであり、シンボル再配置も無い。COMフォーマットは、ファイルヘッダを持たず拡張性がなかった。これに対し、EXEフォーマットは連続した一つのメモリイメージで、コード、データ、スタックの全てが別々の複数のセグメントを用いてアクセスする必要のある場合に対応し、開始アドレスおよびその時のセグメントレジスタの値をファイル先頭から相対指定することが可能でセグメント指定の再配置エントリが存在する。 COMフォーマットと区別するために、MS-DOSにおいてはファイル名には.EXEという拡張子が付けられ、ファイルの先頭には0x5A4D(ASCIIコードで'MZ'という文字列)のマジックナンバーが入っている。これは、MS-DOS 2.0の開発責任者の一人、Mark Zbikowskiのイニシャルに由来する。 C言語による表記は以下の通りである。尚、この定義はWineで使われているヘッダファイル (winnt.h) の定義から引用した。WORDは16ビット整数であり、DWORDは32ビット整数である。 また、拡張ヘッダという概念が後に付け加えられ、そこから指定されたヘッダに、WindowsやOS/2の実行ファイルの情報を指定し、これらのOS用に作られたプログラムが本来のアーキテクチャでOSで実行された場合は、その拡張ヘッダを解釈し、MS-DOS上で実行された場合、実行できない事を表示し終了させる等のプログラムを置くことが可能である。このようなフォーマットにはPortable Executable (PE) やNew Executable (NE), Linear Executable (LE, LX) 等が存在する。また、Microsoft Windows 3.xの386エンハンスドモードのカーネルであるWIN386.EXEや、Microsoft Windows 95等のカーネルであるVMM386.VXDでは特殊な拡張ヘッダで内部に存在するプロテクトモードのカーネルコードや仮想デバイスドライバ等へのオフセットを保持しており、リアルモードでの初期化を普通のDOSプログラムとして行った上で、そのヘッダにあるプロテクトモードのコードを実行していた。(WIN386.EXEではW3, VMM386.VXDではW4という識別子。).

新しい!!: オブジェクトファイルとEXEフォーマット · 続きを見る »

Executable and Linkable Format

Executable and Linkable Format (ELF) とは、コンパイラが生成するオブジェクト、および、ライブラリとリンクされた実行ファイルのファイルフォーマットである。a.outフォーマット、COFFの後継として広く採用されている。セクション数の制限が緩く、メモリ上で連続していないファイルや、ロードされる場所と実行される場所が違う箇所を含む場合にも対応が可能な柔軟な設計となっている。 System V が採用し、GNUツールチェーンがサポートしている。今ではBSD派生OSやLinuxをはじめとするフリーなOSにおける実行ファイルフォーマット、そして、ゲーム機等を含む組み込み機器開発にも数多く使われている。.

新しい!!: オブジェクトファイルとExecutable and Linkable Format · 続きを見る »

GNUプロジェクト

GNUプロジェクト(グヌープロジェクト、)とは、フリーソフトウェアマス・コラボレーションプロジェクトである。 プロジェクトは1983年9月27日にMITのリチャード・ストールマンにより発表された。このプロジェクトの狙いは、ユーザーが自由にソフトウェアを実行し、(コピーや配布により)共有し、研究し、そして修正するための権利に基づいたソフトウェアを開発し提供することにより、ユーザーにそのような自由な権利を与えた上でコンピュータやコンピューティングデバイスの制御をユーザーに与えることにある。GNUのソフトウェアはこれらの自由な権利を(そのライセンスによって)法的に保障しているため、フリーソフトウェアである。なおフリーソフトウェアの「フリー」という言葉は常に自由な権利を指し示すために必要なため使われている。 コンピュータの全てのソフトウェアが、(使用、共有、研究、修正を行うための)自由な権利を全てユーザーに付与することを確保するためには、ソフトウェアの中で最も基本的かつ重要な部分である(ユーティリティプログラムを数多く含む)オペレーティングシステムをフリーソフトウェアとすることが必要となった。GNU宣言によると、GNUプロジェクトの創立目標はフリーオペレーティングシステムを設立し、さらに可能であれば、「フリーでないソフトウェアを全く使わないでも済むようUNIXシステムに通常付属する有益なもの全て」も構築することであった。ストールマンはこのオペレーティングシステムをGNU("GNU's not Unix"を意味する再帰的頭字語)と呼ぶことに決め、その設計をプロプライエタリオペレーティングシステムであるUNIXの設計に基づくようにした。GNUの開発は1984年1月に開始された。1991年、リーナス・トーバルズによりGNUプロジェクトとは関係のないプロジェクトで開発されたLinuxカーネルが発表され、1992年12月にGNU General Public Licenseのバージョン2に基づき利用できるようにした, kernel.org, December 1992。LinuxカーネルはGNUプロジェクトによって既に開発されていた、オペレーティングシステムのユーティリティと組み合わされ最初のフリーソフトウェアオペレーティングシステムとして認められた。このフリーソフトウェアオペレーティングシステムはLinuxやGNU/Linuxとして知られている。 GNUプロジェクトは現在、ソフトウェア開発、意識改革、政治的キャンペーンや、新しい題材の共有などを行っている。.

新しい!!: オブジェクトファイルとGNUプロジェクト · 続きを見る »

Mach-O

Mach-O(まーく・おー)はコンパイラが生成するオブジェクトファイルおよび実行ファイルのファイルフォーマットである。NEXTSTEPに由来し、macOSで標準のバイナリファイルフォーマットとして採用されている。 複数アーキテクチャのバイナリを保持する事が可能である。(ファットバイナリ) 以下のような構造になっている。;FatHeader;fat_arch;MachHeader;ロードコマンド 実行ファイルとして体をなすにはロードコマンドは少なくともセグメントコマンドとスレッドコマンドが必要である。 Carbonアプリケーションではオブジェクトファイル・実行ファイルのフォーマットとしてPreferred Executable Format (PEF) とMach-Oの双方を利用できるが、macOSの機能を利用するにはMach-Oが最も適する。 Category:オブジェクトファイルフォーマット Category:MacOS.

新しい!!: オブジェクトファイルとMach-O · 続きを見る »

MacOS

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

新しい!!: オブジェクトファイルとMacOS · 続きを見る »

MS-DOS

MS-DOS(エムエス-ディーオーエス、エムエスドス)は、マイクロソフトが開発・販売していた、8086系マイクロプロセッサをCPUとする、IBM PCおよびそれに似た構成の(たとえばPC-98など)パーソナルコンピュータ向けのオペレーティングシステム(OS)である。IBMへのOEM供給品であった PC DOS (IBM DOS)を自社製品として供給・販売したもので、バージョン6以降はPC DOSから完全に独立して開発された。.

新しい!!: オブジェクトファイルとMS-DOS · 続きを見る »

New Executable

New Executableファイルとは、マイクロソフトの16ビットOSで採用された共有ライブラリおよび実行ファイルフォーマットの一つ。最初にMS-DOS 4.0で採用され、その後、Microsoft WindowsやOS/2で採用された。 特徴は、プロテクトモードを意識したセグメンテーションアーキテクチャに対応し、複数の連続しない64KB以下のファイルセグメントに対応していることである。 他のEXEフォーマットの拡張フォーマットと同様に互換性のために、対応しないオペレーティングシステムで実行した場合、対応していない旨を表示して終了する等のDOSプログラムを最初に付ける事になっている。その拡張ヘッダから指されたオフセットに'NE'と言うシグネチャで始まるファイルヘッダがあり、その後にセグメントテーブル等が数個並んでいる。 32ビットのWindowsアプリケーションにおいては、Portable Executableが使われるようになり、現役を退いた形になっている。.

新しい!!: オブジェクトファイルとNew Executable · 続きを見る »

NeXT

NeXT(正式名称はNeXT, Inc.、Next Computer, Inc.、Next Software, Inc.と変遷)は、アメリカ合衆国カリフォルニア州レッドウッドシティを本拠地としたコンピュータ企業で、高等教育やビジネス市場向けのワークステーションを開発製造していた。アップルの創業者の1人スティーブ・ジョブズがアップルを辞め、1985年に創業。最初の製品NeXTcubeを1988年に発売し、小型化したNeXTstationは1990年に発売。売り上げはそれほど大きくはなく、全部で5万台ほどを販売したと見積もられている。とはいうものの、その革新的なオブジェクト指向型オペレーティングシステムNeXTSTEPと開発環境は多大な影響を及ぼした。 NEXTSTEPの主要なAPIは、後にOPENSTEPとして標準化された。NeXTは1993年にハードウェア事業から撤退し、いくつかのOEMへのOPENSTEP仕様販売と自社製の実装の販売に注力するようになった。NeXTはまた、世界初の企業向けWebアプリケーションフレームワークWebObjectsの開発でも知られている。WebObjectsは5万ドルと高価だったために広く普及することはなかったが、Webページの動的生成に基づいた初期のWebサーバとして特筆すべき例であった。アップルは1996年12月20日、4億2900万ドルでNeXTを買収し、現行のmacOSの大部分はNeXTSTEPを基盤として開発された。WebObjectsは、かつてOS X ServerおよびXcodeの付属ソフトであった。.

新しい!!: オブジェクトファイルとNeXT · 続きを見る »

Portable Executable

Portable Executable (PE) は、主に32ビット及び64ビット版のMicrosoft Windows上で使用される実行ファイルのファイルフォーマットを指す。PEフォーマット自体はオペレーティングシステムやハードウェアに依存しない設計となっているため、UEFIアプリケーションのバイナリフォーマットには、PEが採用されている。また、前述のUEFIとの整合性の確保やMicrosoft製OSとのマルチブート環境の構築を容易にする目的で、x86およびx86-64アーキテクチャにおけるLinuxカーネル実行ファイルやブートローダなど、非Windows系OSのシステムファイルの一部にも用いられている。 EXEフォーマットとの互換性のため、MS-DOS上で実行すると「This program cannot be run in DOS mode.」のようにDOSで実行されない旨が表示され、プログラムが終了するなどのMS-DOSプログラムが先頭に付く。その後ろに、PE固有の識別子およびCOFFに似たデータ構造があり、MS-DOSヘッダによってそのオフセットが指されている。また、さまざまなCPUアーキテクチャに対応するため、内部に判別用のフラグを持つ。実行時にDLLというファンクション群を動的にリンクし、コンポーネントレベルでのバグフィックス、互換性の維持が行われるようになっている。また、リソース領域にアイコン等を格納でき、GUI上で表示された場合アイコンがグラフィカルに表示され、ソフトウェア判別を容易にできる。.

新しい!!: オブジェクトファイルとPortable Executable · 続きを見る »

Preferred Executable Format

Preferred Executable Format (PEF) とは、Classic Mac OS及びmacOSの実行ファイル・オブジェクトファイルのフォーマット。BeOSのPowerPC版システムにも使われていた。 Classic Mac OSではPowerPCの搭載に伴い導入され、内部にPowerPCコードと68Kコードのそれぞれを含み、同一のAPIで呼び出せるようになっている(ファットバイナリ)。68K MacintoshでPEFアプリケーションを使用するには、CFM-68K Runtime Enablerという機能拡張が必要となる。 macOSではMach-Oが標準のフォーマットとなっているが、PEFもCarbonアプリケーションで利用できる。Mach-O CarbonはmacOSでしか実行できないが、PEF CarbonはMac OS 9とmacOSの双方で実行できる。Intel MacではRosetta上でのみ動作し、Intel Macでネイティブに動作するUniversal Binary化にはMach-O化が必須となる。 Category:アップルのソフトウェア Category:オブジェクトファイルフォーマット Category:Mac OS.

新しい!!: オブジェクトファイルとPreferred Executable Format · 続きを見る »

UNIX

UNIX (ユニックス、Unix、)は、コンピュータ用のマルチタスク・マルチユーザーのオペレーティングシステムの一種である。公式な商標は「UNIX」だが、商標以外の意味として「Unix」、またはスモールキャピタルを使用して「Unix」などとも書かれる。Unixは1969年、AT&Tのベル研究所にて、ケン・トンプソン、デニス・リッチーらが開発を開始した。 当初はアセンブリ言語のみで開発されたが、1973年にほぼ全体をC言語で書き直した。このため、Unixは歴史上、初めて高水準言語で書かれたOSであると言われる。 1973年の段階ではPDP-11に依存したコードが多く、移植性は低かったが、その後徐々にPDP-11に依存したコードを減少させ、1978年にInterdata 8/32への移植に成功して以降、徐々に他のプラットフォームにも移植されていった。 現在では「Unix」という語は、Unix標準に準拠するあらゆるオペレーティングシステムの総称でもある。現在ではUnixシステムは多数の系統に分かれており、AT&Tの開発停止後も、多数の商用ベンダーや非営利組織などによって開発が続けられている。 1970年代から1980年代の初期にかけて、Unixは大学や研究所などの教育機関で広範囲に採用され、特にカリフォルニア大学バークレー校をオリジナルとするBSD系統が誕生した。また Version 7 Unix や UNIX System V の特徴を持つオペレーティングシステムは「伝統的なUNIX」(traditional Unix)とも呼ばれる。 2007年に、「UNIX」の商標の所有者である標準化団体のThe Open Groupは、Single UNIX Specificationを完全に満たすと認証を受けたシステムのみが「UNIX」の商標を得られるとした。このためそれ以外のシステムは(ずっと以前から、AT&T版およびBSD以外を指して使われていた用語だが)「Unixシステムライク」または「Unixライク(Unix系)」と呼ばれるようになった。ただし The Open Groupはその呼称を気に入っていない。 現在では多く使われているUnixとしてはmacOS、AIX、HP-UX、Solarisなどがある(いずれも商用)。また認証を受けていないUnix系としてはLinux(派生OSにAndroid他)やMINIX、BSDの派生OS(FreeBSD、NetBSD、OpenBSD、DragonFly BSDなど)がある。.

新しい!!: オブジェクトファイルとUNIX · 続きを見る »

UNIX System V

System V(システムファイブ、SysV)は、初期の商用UNIXオペレーティングシステムの一種である。.

新しい!!: オブジェクトファイルとUNIX System V · 続きを見る »

機械語

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

新しい!!: オブジェクトファイルと機械語 · 続きを見る »

.bss

.bssまたはbssとは、静的にアロケートされた変数のうちプログラムの開始時に0で初期化されているものを含むデータセグメント内の1つのメモリ領域に付けられた名前である。Unix系や Windows を含め、多くのコンパイラやリンカがこの名前を使う。bssセクションあるいはbssセグメントと呼ばれることも多い。 C言語では、初期化式なしで静的にアロケートされた変数は0(数値型の場合)かNULLポインタ(ポインタ型の場合)に初期化される。数値の0とNULLポインタは一般的なコンパイラではすべてのビットが0のビットパターンで表現される。bssセクションは初期化式を持たないグローバル変数とstaticキーワードのついた初期化されていないローカル変数を含む。0からなるビットパターンで初期化される変数をbssセクションに割り当ててもよい。 通常、bssセクションに割り当てられたメモリはプログラムローダーがプログラムをロードするときに初期化する。main() が実行されるより前にCランタイムシステムがbssセクションにマップされたメモリ領域をゼロで初期化する。ただし、必要時まで0で初期化するのを遅延するというテクニックを使ってOSがbssセクションを効率的に実装してもよい。 一部のABIはsbssセグメント(small bssの意)をサポートしている。このセグメントは、特定のアドレスしかアクセスできない命令を使ったコンパクトなコードからもアクセスできるデータ要素を含む。 BSSはBlock Started by Symbolというアセンブラの疑似命令に由来する。このアセンブラUA-SAPは1950年代にRoy Nutt、Walter Ramshawとその他のUnited Aircraft Corporationの人々によって開発された。BSSというキーワードは、IBMの709および7090/94コンピュータのアセンブラFAT(FORTRAN Assembly Program)に導入された。.

新しい!!: オブジェクトファイルと.bss · 続きを見る »

ここにリダイレクトされます:

オブジェクトプログラムオブジェクトコード

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