JPH08286893A - 複数ベンダー及び複数アーキテクチャー実行用のコンピュータファイル及びその形成方法 - Google Patents

複数ベンダー及び複数アーキテクチャー実行用のコンピュータファイル及びその形成方法

Info

Publication number
JPH08286893A
JPH08286893A JP3236996A JP3236996A JPH08286893A JP H08286893 A JPH08286893 A JP H08286893A JP 3236996 A JP3236996 A JP 3236996A JP 3236996 A JP3236996 A JP 3236996A JP H08286893 A JPH08286893 A JP H08286893A
Authority
JP
Japan
Prior art keywords
file
program
processor
executable
operating system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3236996A
Other languages
English (en)
Inventor
James Sloey
スロイ ジェイムズ
Annette L Moore
エル ムーア アネット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Eastman Kodak Co
Original Assignee
Eastman Kodak Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Eastman Kodak Co filed Critical Eastman Kodak Co
Publication of JPH08286893A publication Critical patent/JPH08286893A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 エミュレーションを用いることなく異なるプ
ロセッサ/オペレーティングシステムの組み合わせで実
行可能な単一のコンピュータファイルを提供する。 【解決手段】 単一コンピュータ実行可能ファイル内に
あり、第一のオペレーティングシステムの制御下で第一
のプロセッサにより実行可能な第一のプログラム、単一
コンピュータ実行可能ファイル内にあり、第二のオペレ
ーティングシステムの制御下で第二のプロセッサにより
実行可能な第二のプログラム、及び第一のプロセッサに
該第一のプログラムを実行させ、第二のプロセッサに該
第二のプログラムを実行させるプログラムロケイターと
からなり、第一と第二のオペレーティングシステムの制
御下でそれぞれ動作し、夫々異なるファイルにアクセス
し、相互に異なる第一及び第二のプロセッサにより実行
するための、単一のコンピュータで実行可能なファイル
を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はオペレーティングシ
ステムの制御の下で実行されるコンピュータシステムの
プロセッサによるコンピュータファイルの実行に関し、
より詳細にはエミュレーションなしに異なるプロセッサ
を有し、異なるオペレーティングシステムが走る異なる
コンピュータシステム上で実行可能なコンピュータファ
イルに関する。
【0002】
【従来の技術】コンピュータの歴史の実質的な全てを通
じて類似の能力を有するコンピュータの複数のモデルが
存在してきたが、相互に対して書かれたプログラムを動
作することは不可能であった。現在では最も通常の汎用
目的のコンピュータはパーソナルコンピュータ又はワー
クステーションと称されるクラスである。現在使用され
ているこの型の最も通常のコンピュータシステムはIB
M PC、アップルのマッキントッシュ、サンのワーク
ステーション及びこれら3つに互換性のあるマシンであ
る。これら3つの型は完全に異なるオペレーティングシ
ステム及び幾つかのプロセッサを用いる。プログラムは
IBM PCシステムのプロセッサ(インテル8x8
6,又はペンティアム)の全てで実行可能なように書け
る。しかしながらマシンの他の2つのクラスにより用い
られるプロセッサは共通に実行可能に作ることは容易で
はない。
【0003】アップルのマッキントッシュは共通に実行
可能なコードが書かれるプロセッサの一つの群(モトロ
ーラ680x0)とエミュレーションが用いられない場
合にはプロセッサの他の群で実行可能なプログラムが実
行不可能な他の群のプロセッサ(モトローラ60x)と
を有する。プロセッサのこの後者の群はパワーPCマッ
キントッシュで用いられている。類似の状況はモトロー
ラ680x0プロセッサを用いるあるもの及びSPAR
Cプロセッサを用いる他のものであるサン ワークステ
ーションに関して存在する。パワーPCマッキントッシ
ュ及びサン ワークステーションの両方はそれらのプロ
セッサにより用いられる適切なコードを検出しうるオペ
レーティングシステムを実行する。結果としてどのよう
なマッキントッシュ又はパワーPCマッキントッシュで
も実行可能なコンピュータ実行可能ファイルを作成可能
であり、同様にしてそれらのシステムでプロセッサの
「ネイティブモード」で、即ちエミュレーションなしで
どのようなサン ワークステーション上でも走りうるコ
ンピュータ実行可能ファイルを作成しうる。
【0004】異なるクラスのマシンの3つのクラスの一
つに対して書かれたプログラムを実行するための知られ
ている方法はエミュレーションのみである。例えばマッ
キントッシュに対してIBM PC用に書かれたプログ
ラムを実行することは可能である。しかしながら実行の
この方法は高度に非効率であり、大量のオーバーヘッド
を要求し、共通に使用可能ではない。例えばIBM P
Cはサン ワークステーション用に書かれたプログラム
を実行することが不可能である。
【0005】パーソナルコンピュータに存在する規格化
されていないことはソフトウエアの開発者に対して多く
の問題を引き起こしている。パーソナルコンピュータの
プロセッサの基本的な違いのみならず、パーソナルコン
ピュータの異なるクラスに対する異なったオペレーティ
ングシステム及びグラフィックユーザーインターフェイ
ス(GUI)も存在する。IBM PCは最も互換性の
あるプロセッサを有するが、このクラスのパーソナルコ
ンピュータはオペレーティングシステム及びGUIでの
最小限の互換性しか持たない。全ての又は実質的に全て
のサン及びアップルコンピュータはコンピュータの製造
者からの、即ちサン又はアップルのオペレーティングシ
ステムを用いている一方で、IBM PC用のオペレー
ティングシステムの幾つかのベンダー及びGUIの少な
くとも3つのベンダーが存在する。結果としてソフトウ
エアの開発者はソフトウエアを開発するために単一のプ
ロセッサ/オペレーティングシステムの組み合わせのみ
を選択するか又は異なるプロセッサ/オペレーティング
システムの組み合わせに対するソフトウエアの異なるバ
ージョンを維持するために多数のプロセッサ、多数のオ
ペレーティングシステム、又は両方をサポートすること
を選択するかを強いられてきた。高い競合性及び産業の
急速な変化により開発者は典型的に彼ら自身のソフトウ
エアを常に変化し、同時に最も人気のあるプロセッサ/
オペレーティングシステムの組み合わせはなお競合する
ように作られねばならない多くの変化を更に増加するよ
う変化する。
【0006】規格化又は共通の操作のある領域はコンピ
ュータ産業を通して存在する。これはコンピュータファ
イルがパーソナルコンピュータの異なるクラス間で共有
されることを可能にする。規格化又は共通化の第一の領
域は最低のレベルでのそれらのマシンの全てはデータ及
びプログラムを表すために2進デジットを用いることで
ある。3以上の次数のデジットを用いるデジタルコンピ
ュータはほとんど作られてきていない。更に重要なのは
8ビットバイトの一般の規格があり、情報交換のための
米国標準コード(ASCII)フォーマットで記憶され
たデータにアクセスすることが可能である。加えてマシ
ンのあるクラスでコンピュータファイルを記憶し、マシ
ンの他のクラスでのファイルを検索することが可能であ
る磁気及び光ディスクの大きさの充分な規格がある。C
D−ROMでは用いられる規格はISO9660であ
る。通信プログラムはまたファイルが有線又は無線通信
を用いる電話線のような特にシリアル通信での通信ライ
ンを介して伝送されるように存在する。ファイルはパー
ソナルコンピュータクラスのみならず、ミニコンピュー
タ及びメインフレームコンピュータのような汎用コンピ
ュータの他のクラスでも一のクラスのマシンから他へ伝
送される。
【0007】上記で述べたようにマシンの一のクラスか
ら他へコンピュータ読み取り可能ファイルを動かすこと
が可能である。しかしながらいったんファイルがマシン
の異なるクラスへ伝送されるとファイルは読み取られう
るが、通常は実行されえない。結果としてソフトウエア
開発者は異なるプロセッサ/オペレーティングシステム
の組み合わせに対して同じ機能を達成しうる多数のファ
イルを維持しなければならないのみならず、各プロセッ
サ/オペレーティングシステムの組み合わせに対して異
なるディスク上にプログラムをまた配布しなければなら
ない。斯くして消費者は単一のソフトウエア開発者から
の本質的に同じ製品を含み、製品が用いられうるプロセ
ッサ/オペレーティングシステムの組み合わせのみが異
なる多数のパッケージを提供される。
【0008】ある場合には単一のISO9660CD−
ROMは一以上のプロセッサ/オペレーティングシステ
ムの組み合わせに対するプログラムを含むが、あるマシ
ンはどのプログラムがどのコンピュータで実行されるか
を識別するためになお用いられねばならない。類似の状
況は通信ラインを介してプログラムにアクセスする場合
に存在する。ファイルは全てサポートされたプロセッサ
/オペレーティングシステムの組み合わせに対して用い
られなければならず、故に適切なファイルは各コンピュ
ータシステムに対して選択されなければならない。
【0009】CD−ROMに関する選択処理を簡単にす
る一つの知られた方法はGarcia等による米国特許
第5359725号に記載されている。この技術はこの
規格の特殊な特徴によりISO9660CD−ROM上
でのみ動作する。CD−ROM上に存在する各プロセッ
サ/オペレーティングシステムに対する及び、この技術
による異なるファイルはディレクトリ構造のみが各プロ
セッサ/オペレーティングシステムの組み合わせに対す
る適切なファイルの識別を助けるために変化される。
【0010】
【発明が解決しようとする課題】本発明の目的はエミュ
レーションを用いることなく異なるプロセッサ/オペレ
ーティングシステムの組み合わせで実行可能な単一のコ
ンピュータファイルを提供することにある。本発明の他
の目的はファイルが異なるプロセッサ/オペレーティン
グシステムの組み合わせで実行されるようファイルを記
憶するために用いられるメディアに依存しないコンピュ
ータ実行可能ファイルを提供することにある。
【0011】本発明の更に他の目的は電話線を介して伝
送されえ、異なるプロセッサ/オペレーティングシステ
ムを有する受信コンピュータシステムで実行されるマル
チアーキテクチャーコンピュータ実行可能ファイルを提
供することにある。
【0012】
【課題を解決するための手段】上記目的は第一と第二の
オペレーティングシステムの制御下でそれぞれ動作する
相互に異なる第一及び第二のプロセッサにより実行さ
れ、各アクセスファイルは異なる単一コンピュータ実行
可能ファイル及び関連するディレクトリのエントリを提
供することにより達成される。単一コンピュータ実行可
能ファイルは、第一のオペレーティングシステムの制御
下で第一のプロセッサにより実行可能な第一のプログラ
ムと第二のオペレーティングシステムの制御下で第二の
プロセッサにより実行可能な第二のプログラムとをふく
む。単一のコンピュータで実行可能なファイル及び関連
するディレクトリのエントリは第一のプロセッサに該第
一のプログラムを実行させ、第二のプロセッサに該第二
のプログラムを実行させるプログラムロケイターをまた
含む。
【0013】オペレーティングシステムの一つがコンピ
ュータ実行可能ファイルの異なる部分を分離して識別す
るときにプログラムロケイターはディレクトリエントリ
内にあり、それによりオペレーティングシステムはコン
ピュータ実行可能なファイル内の第二のプログラムを第
二のプロセッサに供給する。例えばアップルマッキント
ッシュ及びパワーPC マッキントッシュのオペレーテ
ィングシステムはデータフォークと称される第一の部分
とそれに続く資源フォークと称される部分とを有するコ
ンピュータ実行可能ファイルを形成する。本発明によれ
ばファイルは資源フォークでマッキントッシュプログラ
ムを及びデータフォークで他のプログラムを記憶するこ
とにより680x0マッキントッシュ又はパワーPC
マッキントッシュ及びサン ワークステーション又はI
BM PC互換コンピュータのいずれかで実行可能に提
供される。
【0014】マッキントッシュ及びサン又はIBM P
C上で実行可能なファイルは異なるプロセッサに対する
実行可能なコードを含む2つのファイルを組み合わせる
ことにより形成される。第一のプログラムはサンのワー
クステーション又はIBMPCクラスのコンピュータの
プロセッサ又はオペレーティングシステムである第一の
オペレーティングシステムの制御下で第一のプロセッサ
により実行可能な第一のファイル内に記憶される。第二
のプログラムは上記のように第二のファイルの最初及び
続く部分を含むオペレーティングシステムの下で制御さ
れるアップルのマッキントッシュ又はパワーPC マッ
キントッシュコンピュータである第二のオペレーティン
グシステムの制御下で第二のプロセッサにより実行可能
な最初及びそれに続く、各々第二のプログラムのセグメ
ントを含む部分を含む第二のファイル内に記憶される。
第二のファイルがパワーマッキントッシュにより実行可
能な場合には第二のファイルの最初及び続く部分のそれ
ぞれはパワーPC マッキントッシュにより実行可能な
プログラムのセグメントを含む。この場合には次の段階
は第二のファイルの最初の部分内の第二のプログラムの
全てのセグメントを第二のファイルのそれに続く部分に
動かす。
【0015】いったんこれがなされると第一のオペレー
ティングシステムの制御下で操作される第一のプロセッ
サにより記憶されるファイルは第二のファイルの最初の
部分に動かされる。第一のファイルは電話線を用いる又
は用いないシリアル通信、両方のコンピュータシステム
によりアクセス可能なディスクの転送、又は異なるオペ
レーティングシステムの下で両方のプロセッサ操作を含
む単一コンピュータシステムでの共通メモリデバイスを
分割することによりどのような知られている方法を用い
る第一のファイルを形成するコンピュータシステムから
も転送されうる。
【0016】
【発明の実施の形態】以下に明らかとなる他の目的及び
利点と共に上記の目的は同じ符号は類似の部分を示す本
発明の一部分をなす図を参照してより完全に記載される
ような構成及び動作の詳細に存在する。ブロック図は図
1に示され、従来のコンピュータシステムを示す。本発
明によるコンピュータ実行可能ファイルを実行するどの
ようなコンピュータシステムでも典型的には図1に示さ
れた部品のほとんどを含む。プロセッサ又はCPU10
及びランダムアクセスメモリ(RAM)12は実質的に
全てのコンピュータに含まれる。ほとんど全てのコンピ
ュータはまた読み取り専用メモリ(ROM)14をまた
含む。ここ数年に製造された実質的に全てのパーソナル
コンピュータはハードドライブ16と、ほとんどが一以
上のフロッピードライブ18をまた含む。少なくとも携
帯型でないパーソナルコンピュータがCD−ROMドラ
イブ20を含むことはより一般的になってきている。ほ
とんどのパーソナルコンピュータではないがその多くが
特に電話線であるシリアル通信ラインを介して他のコン
ピュータと通信するモデム22をまた含む。他のI/O
ポート24は例えばプリンタ及びポインティング装置の
ような他の装置と通信するよう設けられる。パーソナル
コンピュータは人間の操作者と通信するためのキーボー
ド26及び表示器28のある型を含む。
【0017】フロッピィドライブ18及びCD−ROM
ドライブ20で用いられるメディアの例は図1に示され
る。今日最も一般的に用いられる磁気ディスクはたぶん
ディスク30のような3.5インチフロッピィディスク
である。CD−ROM32の例はまた図1に示される。
本発明によるコンピュータ実行可能ファイルはハードド
ライブ16内の磁気ディスクを含むメディアのこれらの
型又はどのような他の型のいずれか上に記憶される。フ
ァイルはまた例えばネットワークを介して他のコンピュ
ータにモデム22上で又はI/Oポート24を介して伝
送されうる。
【0018】出版物「Inside Macintos
h−−Power PC System Softwa
re」に記載されるように60x(パワーPC)プロセ
ッサを有するマッキントッシュコンピュータのオペレー
ティングシステムは680x0及び60xのアプリケー
ションの両方を実行可能である。これはアップルのマッ
キントッシュシステムで形成されたファイルは最初の部
分又はデータフォーク42及び最初の部分42に続く続
く部分又は資源フォーク44を含む。680x0プロセ
ッサ用のアプリケーション又はプログラムは資源フォー
ク44内でのみプログラムコードを含む。故にパワーP
Cマッキントッシュのオペレーティングシステムを含む
全てのアップルのマッキントッシュのオペレーティング
システムは資源フォーク44を最初に見て、そこで見い
だされたプログラムを実行し、資源フォーク44内のコ
ードフラグメント資源(「cfrg」型)でない場合に
はファイルは60xアプリケーションであり、プログラ
ムコードは「cfrg」資源により識別された位置でえ
られる。しかしながら以下に説明するようにデータを6
0xプログラムを含むファイルのデータフォーク42又
は資源フォーク44のどちらかに位置させることが可能
である。
【0019】単一のファイルで60x及び680x0実
行可能コードを含むアプリケーションを作成することは
また可能である。これらは図2に示される構造を有する
「fatアプリケーション」と称される。図2のBRと
ラベルされたセグメントはデータを含む又は60xコー
ドの部分である。680x0プロセッサを有するマッキ
ントッシュコンピュータ上のプロセスマネージャーは
「cfrg」資源を無視し、680x0コードを実行す
る。マッキントッシュコンピュータに基づくパワーPC
プロセッサ上のオペレーティングシステムのプロセスマ
ネージャーは「cfrg」資源を読み取り、典型的には
データフォーク42である特定された位置でのコードを
用いる。
【0020】fatアプリケーションはマッキントッシ
ュコンピュータ上の異なるプロセッサに関する上記の問
題を解決するために用いられうるが、マッキントッシュ
でないコンピュータ上のファイルの内容を実行する能力
を提供しない。これは加速されたパワーPCコード資源
を形成することにより可能になる。この資源は「cfr
g」資源の除去に伴い資源フォーク44に動かされる。
資源フォーク44はまた60xプロセッサ又は680x
0プロセッサのいずれかにより実行されことを可能にす
るために680x0コードを含み、又は680x0に基
づくマッキントッシュコンピュータ上のファイルを実行
する能力を含むことが望ましくない場合には60xコー
ドのみが存在する。
【0021】資源フォーク44に位置する加速されたパ
ワーPCコード資源を形成することによりファイルのデ
ータフォーク42はマッキントッシュでないコンピュー
タ用に書かれたプログラムに対して利用可能に形成され
る。fat資源を構築し、加速されたパワーPCコード
資源として資源フォーク内に60xコードを移動する過
程は図10から13及び図3に示される。最初に680
x0コードは従来技術の方法で構築52され、68KC
odeRes.rsrcと名付けられたファイルに記憶
される。それから60xコードは従来技術の方法で構築
54され、PCDCoderes.pefに記憶され
る。
【0022】次に図10、11のルーチンPPCBui
ld.tsは2つの従来技術の構築操作の出力を結合す
るよう実行される。PPCBuild.tsの2頁の1
7ラインでは図11のルーチンPEFRezFromD
ata.rを実行することにより好ましい実行可能なフ
ォーマット(「pef」拡張子)データファイルから資
源への60x構築操作の出力を変換する。これは段階5
4で生じた60xコードを段階52で生じた資源の資源
フォークに付加する。
【0023】次にプロセッサセレクターコードは図1
2、13のPCDTK.rと名付けられたルーチンを実
行することにより資源フォーク内に挿入58される。P
CDTK.rの最後の長い4ラインはそれぞれ680x
0及び60xコード資源を含む「CODE」と称される
資源を形成する。コメントにより示されるようにこれら
のラインの最初の2つはそれに続く2ライン内の資源コ
ンテナとして定義される680x0及び60xコードに
対する共通過程(ユニバーサルプロセデュア)ポインタ
である。段階52、53、56、58での操作の結果は
680x0及び60xアプリケーション及びそれぞれへ
のポインタの両方に対する資源の全てを含む空のデータ
フォーク及び資源フォークを有するテンポラリファイル
である。以下に更に詳細に説明するようにこのファイル
はそれらのオペレーティングシステムはこれらのポイン
タ及び資源を含む資源フォークと共にファイルを取り扱
う方法により680x0に基づくマッキントッシュ又は
60xに基づく(パワーPC)マッキントッシュのいず
れか上で実行されうる。
【0024】好ましい実施例ではファイルを実行しうる
プロセッサの数は図3に示されるフローチャートで以下
のブロックに続くことにより増加される。これらの操作
は段階58で形成される空のデータフォークを有するテ
ンポラリファイルとNON−MAC.EXEとして図4
で識別される他のコンピュータシステムからのプログラ
ムの両方にアクセスしうるマッキントッシュシステム上
で好ましくはなされる。これらのファイルは資源エディ
ッタ(ResEdit)として知られるマッキントッシ
ュのツールにより同時にアクセス60される。PPCB
uild.tsでは「Rez」で開始する2ラインに続
いて以下に説明する手動操作を自動的におこなうために
資源エディッタを如何にして呼び出すかを記載するコメ
ントである。
【0025】段階58からえられたNON−MAC.E
XEファイル及びテンポラリファイルが資源エディッタ
を用いて手動で結合されるときに表示スクリーンは図5
及び6に示されるもののように表示器28(図1)上に
形成される。資源エディッタはファイルCOMBINE
D.EXEを形成するために段階58からNON−MA
C.EXEファイルの資源フォーク内にえられるテンポ
ラリファイル内の資源フォークの内容を動かす62よう
用いられる。図7に示されるように型及びクリエイター
情報は段階58からえられるテンポラリファイルのそれ
に適合するようNON−MAC.EXEのそれから変化
64され、それによりファイルはマッキントッシュ上で
実行可能であると認識され、一方で「EXE」拡張子は
ファイルがIBM PC上で実行可能であると認識され
ることを可能にする。代替的にNON−MAC.EXE
の内容は「EXE」拡張子でリネイムされなければなら
ない一時ファイルのデータフォーク内に入れられるが、
型及びクリエイターは変化しなくてもよい。
【0026】上記のように680x0コード及び60x
コードの組み合わせの処理は自動的になされるよう記載
された。しかしながらマッキントッシュでないプログラ
ムに対して上記と同様な方法で資源フォーク内に60x
コードを手動で動かすために資源エディッタをまた用い
うる。本発明による複数アーキテクチャー実行可能ファ
イルは上記実施例に限定されない。マッキントッシュパ
ーソナルコンピュータで用いられるオペレーティングシ
ステム及び資源エディッタにより供される特徴によるこ
となく単一ファイル内の異なる処理に対する2つのプロ
グラムを結合することはまた可能である。例えばそのよ
うなファイルはサン ワークステーションで用いられる
プロセッサの一つ及びIBM PCで用いられるインテ
ル8x86プロセッサ用に形成される。得られたファイ
ルは上記のようにこれら2つのコンピュータシステム上
で用いられるようそれら自身により分配され、又はNO
N−MAC.EXEファイルとしてデータフォーク内に
挿入され、それにより得られたファイルは全てのマッキ
ントッシュコンピュータ、全てのIBMコンピュータ及
びサン ワークステーションの少なくとも1つのプロセ
ッサ/オペレーティングシステムの組み合わせで実行さ
れうる。
【0027】本発明によるマッキントッシュでないコン
ピュータ用の複数アーキテクチャー実行可能ファイルは
図8に示されるフローチャートの各段階により形成され
る。最初にプロセッサのそれぞれに対するプログラムは
形成され、それから単一コンピュータシステムからアク
セス可能な位置で記憶70される。どのような知られた
方法でも上記のようにこの目的のために用いられる。マ
ッキントッシュでない複数アーキテクチャー実行可能フ
ァイルを形成する鍵は他のプロセッサにより実行された
ときにそれはどのような望まない効果も有さない1つの
プロセッサ用の分岐(branch)プログラムを含む
ことである。そのようなプログラムは全てのファイルフ
ォーマットと2進数又は1つのプロセッサ用の比較可能
なコードでの分岐コマンドとを他のプロセッサの命令の
組と比較することにより形成される。一連のコードは第
一のプロセッサを配置に分岐させ、これは第二のプロセ
ッサに有害な効果を有さないことが可能であることが判
明したときに一連のコードは分岐プログラムとして記憶
72される。分岐プログラムは全てのプログラムにアク
セスを有するコンピュータシステム上での連結を用いる
従来技術の方法で第一及び第二のプロセッサ上で実行さ
れることが望ましいプログラムと結合74される。必要
ならば結合のプロセスは得られたファイルを編集するこ
とを含み、それにより分岐させる一連のコードはそれに
対して書かれたプログラムに対して第一のプロセッサを
分岐する。
【0028】結果として分岐プログラムはオペレーティ
ングシステムから独立である。何故ならばオペレーティ
ングシステムが上記のように単一のファイルの資源フォ
ーク内の680x0及び60xプログラムに対する場合
としてプロセッサの型を識別する必要がないからであ
る。更にまた異なるプロセッサを有するコンピュータシ
ステム上でファイルが実行されることを可能にする従来
技術でしばしば用いられるような特殊なハードウエア又
はエミュレーションは必要ない。
【0029】段階74で作られたファイルが上記のよう
に作られたファイルのデータフォーク内にマッキントッ
シュでないファイルとして挿入される場合には図6に示
されたフローチャート内の段階は得られたファイルが実
行されたときに実施される。最初にどのようなオペレー
ティングシステム内でもディレクトリはファイルに対す
るポインタを得るためにアクセス80される。上記のよ
うにこの操作がマッキントッシュオペレーティングシス
テム上でなされたときには用いられた第一のポインタは
ファイルの資源フォークを示す。マッキントッシュでな
いオペレーティングシステムではこれは決定ブロック8
2により図9に示される。ポインタはサン ワークステ
ーション又はIBM PCの場合には複数アーキテクチ
ャーコンピュータファイルの初期部分を示す。
【0030】段階74から得られたマッキントッシュで
ないファイルが段階66から得られたマッキントッシュ
ファイルと結合するか否かを無視して、ファイルがマッ
キントッシュでないシステム上で実施されるときに処理
はファイルの始まりから始まる。ファイルが分岐コマン
ドを認識する「第一の」プロセッサにより実行される場
合にはブロック84で示される処理が分岐し、第一のプ
ロセッサに対するプログラムを実行86する。ファイル
を実行するプロセッサが分岐命令を分岐命令として認識
できない第二のプロセッサであるときには第一のプロセ
ッサに対する分岐コードはいかなる有害な影響もなく実
行され88、それから第二のプロセッサ用のプログラム
は実行される。
【0031】上記のようにマッキントッシュオペレーテ
ィングシステムは単一のファイルで60xプログラム及
び680x0プログラムの両方を扱うために設計され
る。決定ブロック92に示されているように60xプロ
セッサは「cfrg」資源は表示されず、資源フォーク
内での資源を実行94することを認識する。実行された
第一の資源は680x0及び60xプロセッサの両方で
のイリーガル命令であるプロセッサセレクタ又はトラッ
プである。マッキントッシュオペレーティングシステム
は命令を実行するプロセッサの型を識別するプロセッサ
スタック上に情報を置くことによりトラップの実行に応
答する。プロセッサは資源フォークに記憶された適切な
ポインタを選択92し、ポインタが指し示す資源内のプ
ログラムを実行94又は96するためにこの情報を用い
る。
【0032】本発明の多くの特徴及び利点は詳細な明細
書から明らかであり、斯くして本発明の真の精神及び範
囲内に収まる本発明のこのような全ての特徴及び利点は
請求項により覆われることが意図されている。更に多く
の変更及び修正は当業者により既になされているので本
発明を示され、記載された構成及び動作そのものに限定
することは望ましくなく、従って全ての適切な変更及び
等価物は本発明の範囲内にある。
【図面の簡単な説明】
【図1】コンピュータシステム及びシステムにより用い
られる種々のメディアのブロック図である。
【図2】本発明によるコンピュータ実行可能ファイルの
データ構造を示す図である。
【図3】本発明によるファイルを形成する方法の第一の
実施例を示すフローチャートである。
【図4】図3に示される方法で形成されたスクリーン表
示を示す。
【図5】図3に示される方法で形成されたスクリーン表
示を示す。
【図6】図3に示される方法で形成されたスクリーン表
示を示す。
【図7】図3に示される方法で形成されたスクリーン表
示を示す。
【図8】本発明によるファイルを形成する方法の第一の
実施例を示すフローチャートである。
【図9】本発明によるファイルを実行するフローチャー
トである。
【図10】本発明によるファイルのルーチンプログラム
を示す。
【図11】本発明によるファイルのルーチンプログラム
を示す。
【図12】本発明によるファイルのルーチンプログラム
を示す。
【図13】本発明によるファイルのルーチンプログラム
を示す。
【符号の説明】
10 CPU 12 RAM 14 ROM 16 ハードドライブ 18 フロッピードライブ 20 CDーROMドライブ 22 モデム 24 I/Oポート 26 キーボード 28 表示器 30 フロッピィディスク 32 CD−ROM 42 データフォーク 44 資源フォーク

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 単一コンピュータ実行可能ファイル内に
    あり、第一のオペレーティングシステムの制御下で第一
    のプロセッサにより実行可能な第一のプログラムと;単
    一コンピュータ実行可能ファイル内にあり、第二のオペ
    レーティングシステムの制御下で第二のプロセッサによ
    り実行可能な第二のプログラムと;第一のプロセッサに
    該第一のプログラムを実行させ、第二のプロセッサに該
    第二のプログラムを実行させるプログラムロケイターと
    からなり、 第一と第二のオペレーティングシステムの制御下でそれ
    ぞれ動作し、夫々異なるファイルにアクセスし、相互に
    異なる第一及び第二のプロセッサにより実行するため
    の、単一のコンピュータで実行可能なファイル及び関連
    するディレクトリエントリ。
  2. 【請求項2】 相互に異なる第一及び第二のオペレーテ
    ィングシステムの下で動作する第一及び第二のプロセッ
    サ上で実行可能な複数アーキテクチャーコンピュータフ
    ァイルを構成し、第二のオペレーティングシステムはそ
    れの最初の部分に先立つどのような実行可能なファイル
    のそれに続く部分にもアクセスする方法であって、 (a) 第一のオペレーティングシステムの制御下で第
    一のプロセッサにより実行可能で、第一のファイル内に
    第一のプログラムを記憶し; (b) 第二のオペレーティングシステムの制御下で第
    二のプロセッサにより実行可能で、最初及びそれに続く
    部分よりなり、各々第二のプログラムのセグメントを含
    み、第二のファイル内に第二のプログラムを記憶し; (c) 第二のファイルの最初の部分内の第二のプログ
    ラムの全てのセグメントを第二のファイルのそれに続く
    部分に動かし; (d) 第一のファイルから第一のプログラムを第二の
    ファイルの最初の部分に動かす各段階からなる方法。
JP3236996A 1995-03-15 1996-02-20 複数ベンダー及び複数アーキテクチャー実行用のコンピュータファイル及びその形成方法 Pending JPH08286893A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40480595A 1995-03-15 1995-03-15
US404805 1995-03-15

Publications (1)

Publication Number Publication Date
JPH08286893A true JPH08286893A (ja) 1996-11-01

Family

ID=23601120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3236996A Pending JPH08286893A (ja) 1995-03-15 1996-02-20 複数ベンダー及び複数アーキテクチャー実行用のコンピュータファイル及びその形成方法

Country Status (2)

Country Link
EP (1) EP0732649A3 (ja)
JP (1) JPH08286893A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097499A (ja) * 2011-10-31 2013-05-20 Brother Ind Ltd 電子機器、電子機器のファイル処理プログラム、電子機器のファイル処理方法、及び電子機器システム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835775A (en) * 1996-12-12 1998-11-10 Ncr Corporation Method and apparatus for executing a family generic processor specific application
US20090182546A1 (en) * 2006-07-25 2009-07-16 Nxp B.V. Mobile device comprising an operating system emulator

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991019244A1 (en) * 1990-06-04 1991-12-12 3Com Corporation Method for optimizing software for any one of a plurality of variant architectures
GB2268293A (en) * 1992-06-17 1994-01-05 Texas Instruments Ltd Installing a resident part of a Terminate and Stay Resident program.
US5432937A (en) * 1993-08-20 1995-07-11 Next Computer, Inc. Method and apparatus for architecture independent executable files

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013097499A (ja) * 2011-10-31 2013-05-20 Brother Ind Ltd 電子機器、電子機器のファイル処理プログラム、電子機器のファイル処理方法、及び電子機器システム

Also Published As

Publication number Publication date
EP0732649A3 (en) 1997-01-15
EP0732649A2 (en) 1996-09-18

Similar Documents

Publication Publication Date Title
US5339434A (en) Heterogeneous data translation system
US7739673B2 (en) Multiple stage program recompiler using information flow determination
US7178142B2 (en) System and method for dynamically verifying the compatibility of a user interface resource
US5623661A (en) System for and method of providing delta-versioning of the contents of PCTE file objects
EP0938050A2 (en) Modular storage method and apparatus for use with software applications
US20060287844A1 (en) Method and system for improved software localization
US8001242B2 (en) Method for redirection of host data access to multiple non-host file systems or data stores
Harold Java I/O: Tips and Techniques for Putting I/O to Work
JP2009266246A (ja) 拡張可能ファイル形式
CN1193775A (zh) 软只读存储器
JPS6120129A (ja) 複数コ−ド系情報処理方式
US7672955B2 (en) Method and system for platform-independent file system interaction
US6592628B1 (en) Modular storage method and apparatus for use with software applications
US6922735B2 (en) Management of co-processor information by integrating non-program information with program information
JPH08286893A (ja) 複数ベンダー及び複数アーキテクチャー実行用のコンピュータファイル及びその形成方法
US5724559A (en) Method for displaying ISPF panels in a VM non-ISPF environment
US6918109B2 (en) Execution of synchronized Java methods in Java computing environments
US20060294127A1 (en) Tagging based schema to enable processing of multilingual text data
CA1309778C (en) Graphics image editor
JP2000122876A (ja) 情報処理装置
WO2001088704A1 (en) Real time translation of user interfaces in an arbitrary application
US7904883B2 (en) Localizable object pattern
JP3637606B2 (ja) データ処理装置
Friesen Java I/o, Nio and Nio. 2
EP1249756B1 (en) Management of co-processor information by integrating non-program information with program information