JP2000200192A - 予期しないプラットフォ―ム・バリアント上の装置をコア・プラットフォ―ム・カ―ネル・ソフトウエアの再リリ―スなしにサポ―トする機構 - Google Patents

予期しないプラットフォ―ム・バリアント上の装置をコア・プラットフォ―ム・カ―ネル・ソフトウエアの再リリ―スなしにサポ―トする機構

Info

Publication number
JP2000200192A
JP2000200192A JP11326850A JP32685099A JP2000200192A JP 2000200192 A JP2000200192 A JP 2000200192A JP 11326850 A JP11326850 A JP 11326850A JP 32685099 A JP32685099 A JP 32685099A JP 2000200192 A JP2000200192 A JP 2000200192A
Authority
JP
Japan
Prior art keywords
platform
psa
bus manager
bus
device driver
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
JP11326850A
Other languages
English (en)
Inventor
Gregory Slaughter
グレゴリー・スローター
Donald Hudson Jr
ドナルド・ハドソン,ジュニア
Thomas Saulpaugh
トーマス・ソウルポウ
Yuh-Yen Yeh
ユー−エン・イー
Bernard Traversat
バーナード・トラバーサット
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2000200192A publication Critical patent/JP2000200192A/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
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 システム・ソフトウエア・カーネルを変更す
る必要なく、新しいプラットホームおよび変更されたプ
ラットフォームをサポートする手段を提供する。 【解決手段】 本発明は、プラットフォーム・サービス
・エージェント(PSA)と呼ばれるアプローチを使用
する。PSAは、そのプラットフォーム・バリアント用
のシステム・ソフトウエアのバス・マネージャと一緒に
働き、システム・リソースを必要に応じて変更する。P
SAは、プラットフォームの細目を分離し、したがって
バス・マネージャを変更する必要はない。PSA自体が
カーネルの外にあり、ダウンロード可能であり、プラッ
トフォーム・バリアント用に容易に作成できるので、シ
ステム・ソフトウエア・カーネルの修正または再リリー
スなしに、新しいプラットフォームをサポートすること
ができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はオペレーティング・
システムおよびデバイス・ドライバに関する。
【0002】本発明の開示の一部分は、著作権法による
保護の対象となる資料を含んでいる。著作権所有者は、
米国特許商標庁のファイルまたは記録にあるとおりの特
許文献または特許開示文献による複製に反対しないが、
その他の点では、いかなるものであれすべての著作権を
留保する。Sun、サン・マイクロシステムズ、Sun
のロゴ、Solaris、Java、JavaOS、J
avaStation、HotJaba Viewsお
よびすべてのJavaベースの商標とロゴは、米国なら
びに他の諸国におけるサン・マイクロシステムズ,In
c.の商標または登録商標である。
【0003】
【従来の技術】コンピュータは、「オペレーティング・
システム」として知られているソフトウエアによって制
御される。コンピュータのオペレーティング・システム
は、コンピュータがコンピュータの動作を制御する様々
な機能をどのように実行するかを決め、コンピュータ上
で他のプログラムがどのように実行されるかを制御す
る。オペレーティング・システムには「カーネル」と呼
ばれる部分があり、これはオペレーティング・システム
の中核と見ることができる。カーネルは、コンピュータ
の動作を制御する基本的機能を含んでいる。従来の技術
における課題は、カーネル・ソフトウエアの変更を要せ
ずに、新しいタイプのコンピュータ装置で動作できるオ
ペレーティング・システムを実現することである。この
課題は、コンピュータ・システム、オペレーティング・
システムおよびカーネルについての以下の展望で理解で
きる。
【0004】コンピュータ・オペレーティング・システ
コンピュータ・システムは、中央処理装置(CPU)、
メモリ(主メモリ、キャッシュ・メモリ等)、および入
出力装置(I/O)とも呼ばれる周辺装置を備えてい
る。プロセッサは、コンピュータ・システムの「脳」と
考えることができる。プロセッサは、プロセッサにある
機能を実行させる一連の命令から成るプログラムによっ
て制御される。プロセッサで実行される他のすべてのプ
ログラムを制御するプログラムが1つ存在する。このプ
ログラムが、そのコンピュータのオペレーティング・シ
ステムとして知られている。
【0005】オペレーティング・システムは、プロセッ
サにある機能をさせ、またはあるサービスを行わせるこ
とができる。「アプリケーション」と呼ばれる他のプロ
グラムはサービス要求を出すことによってオペレーティ
ング・システムを利用する。オペレーティング・システ
ムによって提供されるサービスには、いつ、どのアプリ
ケーションを実行するかを決定すること、アプリケーシ
ョン間でのメモリ・リソースの共用を管理すること、接
続されているハードウエア装置(例えば、ディスク装
置、プリンタ、モデム、キーボード、スキャナ等)から
の入出力を処理すること、該当する場合にアプリケーシ
ョン・ユーザまたはコンピュータ・ユーザにエラーメッ
セージを送信すること、およびコンピュータ・システム
の総合管理を含む。オペレーティング・システムの中核
がシステム・ソフトウエアのカーネルである。
【0006】システム・ソフトウエアのカーネル カーネルはコンピュータ・オペレーティング・システム
の中核であり、オペレーティング・システムの他のすべ
ての部分のための基本サービスを提供する。カーネル
は、一般に「割込みハンドラ」と呼ばれるルーチン、ス
ケジューラ、およびスーパーバイザを含んでいる。割込
みハンドラは、サービス要求、またはカーネルのサービ
スを争奪する入出力操作の完了要求を処理する。スケジ
ューラは、どのプログラムがカーネルの処理時間を共用
するかを決める。スーパーバイザは、スケジュールに従
って、各処理にコンピュータを使用させる。
【0007】従来の技術のコンピュータ・システムの課
本発明が対象とする課題のいくつかを記述するために
は、まずコンピュータ・システムに関連するいくつかの
コンセプトについて説明する必要がある。1つは、プラ
ットフォームおよび、プラットフォーム依存性、および
プラットフォーム独立性の概念である。もう1つは、拡
張バスおよびデバイス・ドライバの概念である。
【0008】プラットフォーム プラットフォームは、コンピュータ・ハードウエア(プ
ロセッサ)と、特定のコンピュータ・システムから成る
オペレーティング・システムの組合せである。例えば、
Windowsとして知られているオペレーティング・
システムを走らせるインテル製のプロセッサを備えたコ
ンピュータ・システムは、1つのプラットフォームと見
なされる。DOSオペレーティング・システムを走らせ
るインテル・コンピュータは、別のプラットフォームと
考えられる。他のプラットフォームとしては、サン・マ
イクロシステムズのSparcプロセッサ・ベースのコ
ンピュータ、モトローラ・プロセッサ・ベースのコンピ
ュータ、およびユニックス・オペレーティング・システ
ムを使用するコンピュータがある。
【0009】プラットフォーム依存性およびプラットフ
ォーム独立性 過去においては、ソフトウエアは特定のプラットフォー
ム用に書かれ、それは他のプラットフォーム上では稼動
しなかった。そのようなソフトウエアをプラットフォー
ム依存性と言う。企業がワードプロセッサ・アプリケー
ションを異種プラットフォームのユーザに販売すること
を望む場合には、それが使われるプラットフォームごと
に、別々のバージョンのワード処理アプリケーションを
作成する必要があった。
【0010】オブジェクト志向プログラミングおよびJ
avaプログラミング言語などのプログラミング言語の
出現で、多種のプラットフォーム上で使用できるアプリ
ケーションを作り出すことが可能となった。そのような
アプリケーションは、一度書いてしまえば、多くのプラ
ットフォームのいずれでも使用することができる。その
ようなアプリケーションはプラットフォーム独立性と言
われた。
【0011】拡張バス 本願は一実施の形態では、拡張バスとして知られている
コンピュータ・システムの一部分に関する。拡張バスに
よって、コンピュータ・システムのプロセッサ(プロセ
ッサ上でソフトウエアを実行して)、主メモリ、および
プラットフォームに関連する他のハードウエアが、その
プラットフォーム外のハードウエア・デバイスを制御す
ることができるようになる。これらのデバイスとして
は、キーボード、プリンタ、スキャナ、ネットワーク・
インターフェイスとグラフィックス・カード、モデムな
らびにモニタが含まれる。拡張バスは、データ信号およ
び制御信号用の導体ならびにハードウエア支援用論理チ
ップ、および場合によりファームウエアとから構成され
る。ISA(工業規格機構)、PCI(周辺構成要素相
互接続)、S−バス、VMEバス等、様々な拡張バスが
ある。各拡張バスは、そのバス上のデバイスにアクセス
するためのプロトコルを定義する。
【0012】デバイス・ドライバは、バス上でコンピュ
ータ・システムと結合されている周辺デバイスを制御す
るために使用するソフトウエアである。過去において
は、デバイス・ドライバは、プラットフォーム依存性で
あった。しかし、プラットフォーム独立性のデバイス・
ドライバの方式が下記の特許に記載されている。199
8年6月29日に出願され、本特許出願の譲受人に譲渡
された、「Platform Independent
Device Drivers」という名称の米国特
許出願第09/107,047号、1998年6月29
日に出願され、本特許出願の譲受人に譲渡された、「S
ecurity For Platform Inde
pendent Device Drivers」とい
う名称の米国特許出願第09/106,912号、19
98年6月29日に出願され、本特許出願につき譲受人
に譲渡された、「Endianness Checki
ng For Platform Independe
nt Device Drivers」という名称の米
国特許出願第09/106,910号。
【0013】これらの特許出願は、本明細書中で参考と
して援用される。これらの特許出願に記載されているよ
うに、デバイス・ドライバとコア・プラットフォーム・
システム・ソフトウエア間で通信するためのテクニック
がある。この方式は、JavaOSとして呼ばれるオペ
レーティング・システムで実施されている。引用した特
許出願には、デバイス・ドライバをプラットフォーム独
立性にする方式が記載されている。所与のJavaOS
はプラットフォームから独立しており、バスにのみ依存
している。例えば、PCIバス上のデバイス用のJav
aOSデバイス・ドライバは、それがサポートするPC
IデバイスがSparcプロセッサ・ベースのプラット
フォームとx86ベースのプラットフォームのいずれに
接続されているかによらず、変更なしに実行される。
【0014】前記方式は、「バス・マネージャ」と呼ば
れるソフトウエア・エンティティの使用によって可能と
なる。バス・マネージャは、デバイス・ドライバがシス
テム・リソース(例えば、レジスタを含めたメモリにア
クセスするためのオブジェクト)を得るため、およびシ
ステム上でそれ以外の動作を実行するために、持つべき
インターフェイスを与えるシステム・カーネル・ソフト
ウエアである。バス・マネージャは、バスを制御しな
い。バス・マネージャはプラットフォーム依存性であ
り、各プラットフォームごとに、特定のバス用に1つの
バス・マネージャがサポートされる。バス・マネージャ
がプラットフォーム依存性であるので、JavaOS
は、プラットフォーム独立性ではなく、プラットフォー
ム依存性である。しかし、サード・パーティは、Jav
aOSの多くのアスペクトをリリースすることができ
る。サード・パーティによってリリースされることので
きるJavaOSの部分、例えば、デバイス・ドライバ
等は、プラットフォーム独立性である。
【0015】上記で参照した特許出願に記載された方式
では、プラットフォーム独立性デバイス・ドライバは、
関連するバス・マネージャのアブストラクト・メモリ空
間に関するメモリの割振り要求を指定する。デバイス・
ドライバは、バス・マネージャ・インターフェイスを呼
び出し、そのデバイス・ドライバが割り振ることのでき
るすべてのメモリ・オブジェクトを記述するメモリ記述
子のアレイを得る。関連するバス・マネージャは、その
要求を受け取り、次にその要求を、関連するバス・マネ
ージャのアブストラクト・アドレス空間から、実アドレ
ス空間を使用するいわゆる「プラットフォーム・マネー
ジャ」に変換する。プラットフォーム・マネージャは実
アドレスを割り振り、そのアドレスが、デバイス・ドラ
イバ用の関連するバス・マネージャを介して戻される。
デバイス・ドライバはアブストラクト・メモリ空間にア
クセスするために関連するバス・マネージャと通信する
ので、デバイス・ドライバはプラットフォーム独立性で
ある。
【0016】デバイス・ドライバ、バス・マネージャと
プラットフォーム・マネージャの間の通信は、Java
プログラミング言語によって提供される階層アブストラ
クト・メモリ・オブジェクト・クラスとそれに関連する
サブクラスを使用して実行される。これらのクラスおよ
びサブクラスは、本明細書中で参考として援用する同時
係属の米国特許出願第09/048,333号に詳細に
記載されている。しかし、本明細書に記載の方法、シス
テムおよびソフトウエアは、コンピュータ技術の当業者
に知られているテクニックを用いたどの類似のプログラ
ミング言語を使っても可能になることを理解されたい。
【0017】図2に、プラットフォーム独立性デバイス
・ドライバの方式が象徴的に示されている。デバイス・
ドライバAは拡張バス上のデバイスに関連付けられてい
る。デバイス・ドライバA(ソフトウエア・エンティテ
ィ)は、ソフトウエア・インターフェイスを介して、そ
の拡張バスと関連付けられているバス・マネージャAと
通信する。デバイス・ドライバは、その動作のためにメ
モリ空間を割り振ってもらう必要がある。デバイス・ド
ライバはプラットフォーム独立性なので、それがどのプ
ラットフォーム上で走っているかにかかわらず、アドレ
ス空間を要求する。その要求を処理してメモリが割り振
られるようにするのは、一部には、バス・マネージャの
役割である。
【0018】バス・マネージャは、システム・リソース
を得るために上位のバス・マネージャと通信することが
できる点で、階層的である。図2に示すように、最高位
のバス・マネージャはプラットフォーム・マネージャで
ある。バス・マネージャAは、ドライバ要求を変換して
それをプラットフォーム・マネージャに転送する。プラ
ットフォーム・マネージャは、そのプラットフォームに
適した実際のメモリ空間を割り振り、メモリ記述子をバ
ス・マネージャを介してそのデバイス・ドライバに返
す。
【0019】上記のプラットフォーム独立性デバイス・
ドライバの動作の一例として、PCIバス用に書かれた
デバイス・ドライバの場合について考える。ドライバ
が、PCIバスの「Config」アドレス空間のメモ
リ指定アドレス0x300を要求する。PCIバス・マ
ネージャは、Configがポート0x2000から始
まり、1対1でマップされることを知っており、そのC
onfigアドレス空間の0x2000ポートをI/O
アドレス空間0x2300に変換する。デバイスがSp
arcプラットフォーム上にある場合には、同じ0x3
00アドレスがそのまま、デバイス・ドライバ(これは
プラットフォーム独立性である)によって要求される
が、バス・マネージャはConfigアドレス空間を物
理アドレス0x14000にマップすることを知ってい
るはずであり、実際の変換は物理メモリ・アドレス空間
0x14300に行われる。
【0020】プラットフォーム・バリアントがリリース
されたとき何が起こるか JabaOSがリリースされるとき、いくつかのプラッ
トフォーム用のデバイスをサポートするためのバス・マ
ネージャの有限セットを含むことができる。プラットフ
ォームのバリアントがリリースされるとき、そのバリア
ント・プラットフォームの特定のバス上のデバイスは、
そのデバイスに関連付けられているバス・マネージャか
らはもはや管理できなくなる可能性がある。一例とし
て、Cyrix MediaGx x86プラットフォ
ームのビデオ・デバイスがあった。そのデバイスはまず
PCIバス上に導入され、かつ、IBMx86プラット
フォーム用PCIバス・マネージャを使用するデバイス
・ドライバによってサポートされる。その後、同じビデ
オ・デバイスがマザーボード上に移される。そのデバイ
スはPCIデバイスの多くの特徴を保持しているが、P
CIプロトコルの一部分ではないいくつかの新しい特徴
があり、そのため、そのプラットフォーム用に書かれコ
ア・プラットフォーム・ソフトウエアとしてリリースさ
れた既存のバス・マネージャでは処理できない。
【0021】プラットフォームが変更されたとき、また
は新しいプラットフォームが導入されたとき、デバイス
・ドライバ用の既存のバス・マネージャがそのドライバ
を処理できなくなった場合には、従来技術による唯一の
対応策は、そのプラットフォーム・バリアント上のドラ
イバを処理することのできる適切なバス・マネージャを
追加するようにシステム・ソフトウエア・カーネルを書
き直すことである。バス・マネージャはコア・プラット
フォーム・ソフトウエアの部分であり、サン・マイクロ
システムズ、IBMなどの企業によって、あるいはJa
vaOS OEMによって書かれ、リリースされる(J
avaOS用)。コア・ソフトウエア・カーネルを作成
し、デバッグし、リリースするために必要な時間と資源
を考えると、すべての新しいプラットフォームおよびプ
ラットフォーム・バリアントをサポートするのは現実的
ではない。すべてのプラットフォーム・バリアントを作
成後直ちにサポートするのは時間がかかりすぎるため
に、「商機」という事業上の制約を満たさない。コア・
システム・ソフトウエアを書き直すための代替方法は、
計画されたOSがアップグレードされるまで新しいプラ
ットフォームをサポートしないことである。これらの解
決方法のどちらも、望ましくない。
【0022】
【発明が解決しようとする課題】本発明は、システム・
ソフトウエア・カーネルを変更する必要なく、新しいプ
ラットホームおよび変更されたプラットフォームをサポ
ートする手段を提供することを課題とする。
【0023】
【課題を解決するための手段】本発明は、プラットフォ
ーム・サービス・エージェント(PSAs)と呼ばれる
アプローチを使用する。PSAは、そのプラットフォー
ム・バリアント用のシステム・ソフトウエアのバス・マ
ネージャと一緒に働き、システム・リソースを必要に応
じて変更する。PSAは、プラットフォームの細目を分
離し、したがってバス・マネージャを変更する必要はな
い。PSA自体がカーネルの外にあり、ダウンロード可
能であり、プラットフォーム・バリアント用に容易に作
成できるので、システム・ソフトウエア・カーネルの修
正または再リリースなしに、新しいプラットフォームを
サポートすることができる。
【0024】
【発明の実施の形態】本発明は、バス・マネージャがプ
ラットフォーム・カーネル・ソフトウエアをサポートす
るための方法と装置である。本発明の実施の形態のより
完全な記載を提供するために、以下の記載では多くの具
体的な詳細を説明する。しかしながら、当業者にとっ
て、本発明がそれらの詳細なしでも実行可能であること
は明白であろう。他の例では、本発明をあいまいにしな
いために、公知の特徴は詳細には説明しなかった。
【0025】本発明の実施の形態は、Javaオペレー
ティング・システム(JavaOS)と呼ばれるシステ
ム・ソフトウエア中に実装される。Javaプログラミ
ング言語は、多くの異なるクラスとインターフェイスを
含むプログラムを有するオブジェクト志向プログラミン
グ言語である。プログラムがマシン依存性の実行可能な
プログラム・コードにコンパイルされる多くのプログラ
ミング言語とは異なり、Javaプログラミング言語で
書かれたプログラムはマシン独立性のバイトコードのク
ラスファイルにコンパイルされる。各クラスファイル
は、クラスファイル・フォーマットと呼ばれるプラット
フォーム独立性のフォーマットのコードとデータを含
む。実行手段として機能するコンピュータ・システム
は、バイトコードを実行する責任を問う仮想マシンとよ
ばれるプログラムを含む。仮想マシンは、マシン独立性
のバイトコード・クラスと、基礎をなすコンピュータ・
ハードウエアのマシン依存性の命令セットとの間のアブ
ストラクションのレベルを提供する。仮想マシンは様々
な異なるオペレーティング・システム用のものが存在す
る。
【0026】新しいプラットフォームが導入されるか、
あるいはプラットフォームが変更された場合には、新し
いバス・マネージャが、新しいプラットフォームのデバ
イス・ドライバをサポートするために必要となろう。前
述したように、新しいバス・マネージャの作成は、シス
テム・ソフトウエア・カーネルの望ましくない変更であ
る。本発明は、「プラットフォーム・サービス・エージ
ェント」(PSA)を実装することによって、問題を克
服する。新しいまたは変更したプラットフォームのデバ
イス・ドライバ(ここでは、「問題のあるドライバ」と
呼ぶ)の取扱いを実施するときは、新しいPSAが必要
に応じてリリースされ、使用可能となる。デバイス・ド
ライバと同様に、PSAも分離したバイナリ(残りのJ
avaOSから分離している)であり、システム・ソフ
トウエア・カーネルの外にあり、したがってカーネルの
変更に伴う不利益は当てはまらない。
【0027】図3は、本発明の実施の形態の動作を象徴
的に表す図である。問題のあるドライバから、以前のプ
ラットフォーム上のデバイス・ドライバを取り扱ってい
たはずのバス・マネージャにサービス要求が渡される。
バス・マネージャは、そのドライバが、関連するPSA
を有するかどうかチェックする。このケースのように未
確定デバイスが関連するPSAを有する場合には、バス
・マネージャは、未確定デバイスにサービスを提供する
ために、そのPSAからメソッドを呼び出す。図3に示
すように、PSAはシステム・ソフトウエア・カーネル
の外にある。本発明では、新しいバス・マネージャを書
く代わりに、ドライバ用のPSAを書くことができるの
で、既存のバス・マネージャが、プラットフォーム・バ
リアント用バス・マネージャである場合と同様に実行で
きる。
【0028】本発明は、バス・マネージャが割り振った
リソースを変更する方式を提供する。言い換えると、デ
バイス・ドライバとそのバス・マネージャの間のJDI
中のバス管理インターフェイスは、前のインターフェイ
スによってなされたことを変更するPSA中の対応イン
ターフェイスを持つことが可能である。
【0029】PSAの実施の形態を、メモリ記述子の変
更に関連して、以下に記述する。しかし、これは例示的
なものにすぎない。本発明は、バス・マネージャによっ
て提供されるいかなる資源にも適用される。
【0030】PSAシステムの動作 PSAは、問題のあるドライバのバス・マネージャと一
緒に働いて、特定の未確定デバイスのためのシステム・
リソースを変更する。PSAは未確定プラットフォーム
の細目を分離するので、バス・マネージャは手付かずの
まま、残すことができる。PSAは(例えば、Java
システム・ローダ(JSL)を介して)それ自体ロード
可能である。本発明を使って、新しいx86ベースのP
Cプラットフォームを、javaOSベースの再リリー
スなしにサポートすることができる。
【0031】所与のPSAは、JDIクラスであるPlat
formServiceAgentクラス:.../src/javaos/javaos/java
x/system/jdi/PlatformServiceAgent.java.を拡張す
る。
【0032】プラットフォーム・サービス・エージェン
ト・クラスは、逆に、DeviceDriverクラスを拡張し、J
DIインターフェイスであるPlatformService:.../src
/javaos/javaos/javax/system/jdi/PlatformService.ja
vaを実施する。
【0033】プラットフォーム・サービスのインターフ
ェイスは、特定の未確定デバイス用メモリ・記述子の変
更されたアレイを得るために、バス・マネージャが呼び
出す1つのメソッド、createMemoryDescriptors() を指
定し、ここで、引数deviceはJavaシステム・データ
ベース(JSD)のデバイス・ツリーのエントリであ
り、引数bはデバイス’バス・マネージャ:public Mem
oryDescriptor[]createMemoryDescriptors(Entry devic
e,ExpansionBus b);の特定のインスタンスである。
【0034】上記の実施の形態は1つのメソッドを取り
上げたが、他のバス・マネージャ機能のための他のメソ
ッドも、同様に本発明の範囲から逸脱することなく実施
することができる。
【0035】図4に、本発明の動作を流れ図で示す。ス
テップ401でデバイス・ドライバをロードすると、ス
テップ402でJSLがドライバのバス・マネージャの
getServing Parent() メソッドを呼び出し、JSDデバ
イス・ツリー中のその特定のデバイス用エントリを渡
す。これにより、バス・マネージャは機密保護のため、
バス・マネージャ自体の特定のJavaのインナークラ
ス・インスタンスをインスタンス化する。その結果、ス
テップ403で、バス・マネージャはその指定のデバイ
スについて知ることができ、そのデバイスに具体的に割
り振られたリソースを含むことができる。(これによ
り、デバイス・ドライバ自体が既にその識別性を知って
いるので、そのバス・マネージャに自己を識別する必要
がなく、その結果、他の不特定のドライバが任意のデバ
イスをサポートしたいという要求することができないの
で、機密保護が得られる。)
【0036】バス・マネージャが、そのデバイス用のMe
moryDescriptors を含むリソースを割り振るのはこの時
である。ステップ404で、まず、バス・マネージャ
は、管理対象であるデバイスについて通常行っているや
り方で、そのデバイス用のMemoryDescriptors の初期セ
ットを決定する。次に、図中の判断ブロック405で、
そのデバイス・ドライバがPSAを持つ場合(それが問
題のあるドライバであるという意味)、バス・マネージ
ャは、ステップ406で、PSAのcreateMemoryDescri
ptors()メソッドを呼び出し、そのデバイス用のMemoryD
escriptorsの変更されたアレイを得る。
【0037】PSAのcreateMemoryDescriptors() メソ
ッドは、そのバス・マネージャのインナークラスのデバ
イスの特定のインスタンス化を行い、PSAはバス・マ
ネージャのすべてのメソッドを、その処分において、持
ち、例えば、ステップ407で、MemoryDescriptors(既
にバス・マネージャによって決定済み)のデバイスの初
期割振りを得る。さらに、PSAは、PlatformManager
のデバイスとして、その処分において、それ自体がバス
・マネージャであるPlatformManager のメソッドを持
つ。ステップ408で、両方のバス・マネージャのそれ
らのメソッドをその初期アルゴリズムと共に使用するこ
とによって、ステップ409で、PSAのcreateMemory
Descriptors()メソッドが未確定デバイス用のMemoryDes
criptorsの新しいアレイをデバイスのバス・マネージャ
に返す。ロードされたデバイス用のPSAがないとき
は、システムは、ステップ408で、PlatformManager
のメソッドを使用するバス・マネージャを含む援用の特
許出願に記載したとおりに動作し、ステップ409で、
メモリ記述子の新しいアレイを返す。
【0038】たとえ、未確定デバイスが実際にはそのバ
ス・マネージャの真のデバイスではない場合であって
も、そのMemoryDescriptorsはPSA
によってセットされ、その特定のバス・マネージャ用の
有効な記述子であるように見える。PSAは、単一のバ
ス・マネージャに限定されているのではなく、多重バス
・マネージャをサポートすることができる。PSAは、
例えば、それに渡したバス・マネージャがISAであっ
た場合には、ISAバス・マネージャへMemoryDescript
ors を返し、それに渡したバス・マネージャバス・マネ
ージャがPCIである場合には、PCIバス・マネージ
ャへMemoryDescriptorsを返す。
【0039】PSA仮想デバイス 上記のように、PSAは、PlatformServiceインターフ
ェイスを実施するDeviceDriver である。PSAはデバ
イス・ドライバなので、それは関連のバス・マネージ
ャ、すなわちPlatformManagerを持つ。(PlatformManag
erは実際にはアブストラクト・クラス1386Platformによ
って拡張された1つのアブストラクト・クラスであり、
そのアブストラクト・クラス1386Platformも、もとはPC
Platformによって拡張されたものである。PCPlatform
は、次に、各特定のPSA用にインスタンス化されたイ
ンナークラスICPCPlatformを持ち、そして、このように
して、MemoryDescriptorsなどの特定のPSAのシステ
ム・リソースを含む。PlatformManagerを含むバス・マ
ネージャがExpansionBusManager アブストラクト・クラ
スを拡張するので、PSAはそのメモリ記述子を得るた
めのものを含んだ、その処置での、JDIバス・マネー
ジャ・メソッドのすべてを持つ。
【0040】バス・マネージャによる管理のされ方とい
う見地から見ると、PSAデバイスは、ISAデバイス
に類似している。例えば、ISAバス・マネージャは、
どちらのISAデバイスが現行であるかを決定するため
に、その「busName」プロパティの値として「I
SA」を指定する各デバイスに対応するデバイス・ツリ
ー中のデバイス・エントリを構築しなければならない。
さらに、ISAバス・マネージャは、ハードウエアを探
査することによりレジスターなどのデバイス・パラメー
タを決めることはできないので、そのため、これらのパ
ラメータをデバイスによって指定されたプロパティから
決定する。
【0041】同様に、PSAは、ハードウエア中を探査
することのできない仮想デバイスであり、したがってプ
ロパティによって指定される。プロパティの指定の仕方
の1つは、いわゆる「ビジネス・カード」である。PS
AはISAデバイスに類似しているので、デバイス・パ
ラメータを指定するビジネス・カード中で、同じシンタ
ックスが使用される。PSAビジネス・カードは、bu
sNameの値がPSA用の「Platform」にな
っているISAビジネス・カードからはっきり区別され
ている。
【0042】コードの共用に関しては、デバイス・ツリ
ーを構築するためのビジネス・カードからISAデバイ
スを探査するためのISAバス・マネージャ中の以前の
コードを、ISAビジネス・カードからデバイス・パラ
メータを決定するためのコードと共に、ISAバス・マ
ネージャから、ExpansionBusManagerクラスに移して、
ISAバス・マネージャとプラットフォーム・マネージ
ャの双方がそれを使用することができるようにした。
【0043】機密保護の配慮 未確定デバイス・ドライバとPSAの双方は、同じ組織
によって開発される。しかし、機密保護の配慮から、デ
バイス・ドライバとPSAは別々に展開される必要があ
る。PSAはロード可能なバス・マネージャで、デバイ
ス用システム・リソースを割り振ることができる。した
がって、ローカル・サーバにある公知の信頼性のあるフ
ァイル(Javaアプレット・リソース(JAR)ファ
イルなど)からロードするよう構成されるべきである。
PSAは、デバイス・ドライバが直接呼び出すことがで
きるメソッドを提供することができるので、PSAをサ
ーバで許す前に、PSAのソース・コードをとっておく
(あるいは、信頼性あるソースから写しを取っておく)
ことを推奨する。デバイス・ドライバは、多少信頼性に
欠けるが、インターネット上のロケーションからロード
することもできる。
【0044】PSAのロードと呼出し PSAのロードと呼出しを、図5の流れ図中に示す。図
5の実施形態は、ISAバス・マネージャ上のデバイス
用に書かれたPSAに関するが、本発明は、あらゆる他
のバス・マネージャにも同じ応用ができる。図5を参照
すると、ISAデバイスは、ステップ501で、そのビ
ジネス・カード中の、そのPSAの論理名を、新しいプ
ロパティ「PSA」を介して指定する(名付け変換とし
て、PSAのlogicname は、「<デバイス_名前>PS
A」であり、ここで、<デバイス_名前>は、デバイス
の名前またはデバイスの論理名のいずれかである)。対
応するPSA用のビジネス・カードはステップ502
で、bundleInstanceInfoプロパティの論理名部分中に同
じ論理名を指定し、そして、それが、bundleInstanceIn
foプロパティのインターフェイス名部分として、javao
s.javax.system.jdi.PlatformServiceを指定する。
【0045】ステップ503で、JSLがISAデバイ
スをロードしているとき、ISAバス・マネージャのge
tServingParent()メソッドが、特定のデバイス用のバス
・マネージャのインナークラスをインスタンス化するた
めに、呼び出され、そして、バス・マネージャがデバイ
ス・ドライバのPSAを呼び出す(createMemoryDescri
ptors() を呼ぶ)のはこの時である。ISAバス・マネ
ージャがこれを行うのは、判断ブロック504で、デバ
イスのビジネス・カードが非空白の「PSA」を指定し
たときだけである。デバイスのビジネス・カードが非空
白の「PSA」を指定したときは、ISAバス・マネー
ジャが、ステップ505で、そのjavaos.javax.system.
jdi.PlatformService インターフェイスを実施するサー
ビスのためのService-Loader.findAdvertisements()メ
ソッドを使用して、ServiceAdvertisementsの一覧表を
得る。次に、その一覧表の中の各ServiceAdvertisement
のために、ISAバス・マネージャが、ServiceAdverti
sementノgetLogicalName() メソッドを呼び出し、ステッ
プ506で、その名前をPSAプロパティ中に指定した
名前と比較して一致するものを見つけ出す。一致するも
のが見つかった場合には、ステップ507で、一致した
ServiceAdvertisementをService-Loader,findService()
メソッドに渡すことにより、PSA用のServiceConnect
ionが得られ、SeviceConnectionのconnect()メソッド
( connect(空白、真))が呼び出され、その後、Sevi
ceConnectionのgetService()メソッドを呼び出して、ス
テップ508で、1つのサービスであるPSAを得る。
【0046】ドライバとそれらのPSA間の通信 メモリ・オブジェクトなどのシステム・リソースを割り
振るために、デバイス・ドライバはそれらのバス・マネ
ージャとインターフェイスし、そして、ドライバのバス
・マネージャはドライバのPSAとインターフェイスす
る。ドライバは、システム・リソースを割り振るために
そのPSAと直接インターフェイスしない。
【0047】PSAとそれらのデバイス・ドライバとの
間の通信のための1つの実行可能な設備は、PSAがJ
SD中のデバイスのエントリにプロパティ値を記憶させ
ておくことと、デバイス・ドライバがそのプロパティ値
を取り出せることを必要とする。ドライバはそのデバイ
ス・エントリを持たないので、新しいメソッドがExpans
ionBusManager、getDeviceEntry に加えられ、それに返
される。インナークラス・バス・マネージャのみが実際
にそのデバイス・エントリを認知しているので、このメ
ソッドは、ExpansionBusManager に空白を返すようにデ
フォルトが設定される。このインナークラスは、次に、
それによってサービスされるデバイスに対応するデバイ
ス・エントリを返すメソッドでgetDeviceEntry()を無効
にする。
【0048】このメソッドを使うことによって実現する
設備によれば、PSAは、ドライバとバス・マネージャ
間のAPIを拡張する必要なしに、ドライバが必要とす
るような情報の断片ごとの追加情報を、その対応するド
ライバに提供することができる。ドライバがそのPSA
を見つけ出し、PSAのメソッドを直接呼び出すことも
可能である。(この設備が、デバイス・ドライバとイン
ナークラス・バス・マネージャ間のAPIの機密保護が
壊されるのを許さないことは注目に値する。例えば、た
とえ、ドライバがPSAのcreateMemoryDescriptors()
メソッドを直接に呼び出すことができたとしても、ドラ
イバに、メモリ・オブジェクトを割り振るための、Memo
ryDescriptorをバス・マネージャに渡すバス・マネージ
ャAPIがない。)
【0049】コンピュータ実行環境の実施の形態(ハー
ドウエア) 本発明の実施の形態は、図1に示す通り、コンピュータ
100などの汎用コンピュータで実行されるコンピュー
タ読取りコードの形式で、あるいは同様のコンピュータ
で実行されるバイトコード・クラス・ファイルの形式
で、コンピュータ・ソフトウエアとして実装される。キ
ーボード110とマウス111は、二方向システム・バ
ス118に結合されている。そのキーボードとマウス
は、ユーザ入力をコンピュータ・システムに導入しその
ユーザ入力をプロセッサ113に通信するためのもので
ある。他の適切な入力デバイスが、マウス111とキー
ボード110に加えて、またはそれらに替えて使用され
る。二方向システム・バス118に結合されたI/O
(入力/出力)ユニット119はプリンタ、A/V(オ
ーディオ/ビデオ)I/OなどのI/O要素を示す。
【0050】コンピュータ110はビデオ・メモリ11
4、主メモリ115および大容量記憶装置112を含ん
でおり、それらすべてが、キーボード110、マウス1
11およびプロセッサ113と共に二方向システム・バ
ス118に結合されている。大容量記憶装置112は、
磁気式、光学式または光学磁気式の記憶システム、ある
いはその他の利用可能な大容量記憶技術等の固定と着脱
可能の両方の媒体を含んでいる。バス118は、例え
ば、ビデオ・メモリ114または主メモリ115をアド
レスするための32本のアドレス・ラインを有する。シ
ステム・バス118は、さらに、例えばプロセッサ11
3、主メモリ115、ビデオ・メモリ114および大容
量記憶装置112などの構成要素間でデータを送信する
32ビット・データ・バスを含んでいる。あるいは、多
重データ/アドレス・ラインは、別のデータとアドレス
・ラインの代わりに使用することができる。
【0051】本発明の1実施の形態では、プロセッサ1
13は、680X0プロセッサ等のモトローラ製のマイ
クロプロセッサ、あるいは80X86またはPenti
umプロセッサ等のインテル製マイクロプロセッサ、あ
るいはサン・マイクロシステムズ、Inc.製のSPA
RCマイクロプロセッサである。しかし、この他の適当
なマイクロプロセッサまたはマイクロコンピュータも使
用できる。主メモリ115は、ダイナミック・ランダム
・アクセス・メモリ(DRAM)で構成されている。ビ
デオ・メモリ114は、2重ポート式ビデオ・ランダム
・アクセス・メモリである。そのビデオ・メモリ114
の一方のポートはビデオ増幅器116に結合されてい
る。このビデオ増幅器116は、陰極線管(CRT)ラ
スタ・モニタ117を駆動するために使用される。ビデ
オ増幅器116は公知であり、適当な装置で実施され
る。この回路構成は、ビデオ・メモリ114に記憶され
たピクセル・データを、モニタ117で使えるラスタ・
データに変換する。モニタ117は、グラッフィック・
イメージを表示するのに適したタイプのモニタである。
【0052】コンピュータ100は、さらに、バス11
8に結合した通信インターフェイス120を含んでい
る。通信インターフェイス120は、ネットワーク・リ
ンク121を介して、ローカル・ネットワーク122と
の2−ウエイ・データ通信結合を形成する。例えば、通
信インターフェイス120が、統合サービス・デジタル
・ネットワーク(ISDN)カードまたはモデムである
場合には、通信インターフェイス120は、ネットワー
ク・リンク121の部分を含む対応するタイプの電話線
とのデータ通信接続を形成する。通信インターフェイス
120がローカル・エリア・ネットワーク(LAN)カ
ードである場合には、通信インターフェイス120は、
ネットワーク・リンク121を介して、対応するLAN
とのデータ通信接続を形成する。ワイアレス・リンクも
可能である。このような実施形態においては、通信イン
ターフェイス120が、様々なタイプの情報を表すデジ
タル・データ・ストリームを搬送する電気の、電磁の、
または光学の信号を送信および受信する。
【0053】ネットワーク・リンク121は、通常、1
つまたは複数のネットワークを介して、他のデータ・デ
バイスとのデータ通信を形成する。例えば、ネットワー
ク・リンク121は、ローカル・ネットワーク122を
介して、ローカル・サーバ・コンピュータ123との、
またはインターネット・サービス・プロバイダ(IS
P)124によって操作されるデータ機器との接続を形
成する。これに対し、ISP124は、現在一般に「イ
ンターネット」125と呼ばれているワールド・ワイド
・パケット・データ通信ネットワークを介して、データ
通信サービスを提供する。ローカル・ネットワーク12
2とインターネット125はともに、デジタル・データ
・ストリームを搬送する電気の、電磁の、または光学の
信号を使用する。様々なネットワークを経由する信号と
ネットワーク・リンク121の信号および通信インター
フェイス120を経由する信号はいずれも、デジタル・
データをコンピュータ100へ、またはコンピュータ1
00搬送する。これらはいずれも情報を運搬する搬送波
の典型である。
【0054】コンピュータ100は、ネットワーク、ネ
ットワーク・リンク121および通信インターフェイス
120を介して、メッセージを送信し、プログラム・コ
ードを含むデータを受信すことができる。インターネッ
トの実施形態では、リモート・サービス・コンピュータ
126は、インターネット125、ISP124、ロー
カル・ネットワーク122および通信インターフェイス
120を介して、要求に応えてアプリケーション・プロ
グラム用コードを伝送する。
【0055】受信したコードは受信したままプロセッサ
113によって実行され、および/または、大容量記憶
装置112または後の実行のための非揮発性ストレージ
に記憶される。このようにして、コンピュータ100は
搬送波の形式でアプリケーション・コードを得る。
【0056】アプリケーション・コードは、コンピュー
タ・プログラム・プロダクトのあらゆる形式で実行され
る。コンピュータ・プログラム・プロダクトは、コンピ
ュータ読取り可能なコードを記憶または伝送するよう形
成された媒体、またはコンピュータ読取り可能なコード
が記録された媒体を含む。コンピュータ・プログラム・
プロダクトのいくつかの例として、CD−ROMディス
ク、ROMカード、フロッピー・ディスク、磁気テー
プ、コンピュータ・ハード・ドライブ、ネットワーク上
のサーバ、および搬送波がある。
【0057】上記のコンピュータ・システムは、単なる
例示的なものにすぎない。本発明の実施の形態は、あら
ゆるタイプのコンピュータ・システムまたはプログラミ
ングまたはプロセッシング環境で実行することができ
る。
【0058】このように、バス・マネージャがプラット
フォーム・カーネル・ソフトウエアをサポートする機構
を提供するメソッドと装置は、1つまたは複数の具体的
な実施の形態と共に記載される。本発明は、請求項の記
載およびあらゆるそれと同等の記載によって定義され
る。
【図面の簡単な説明】
【図1】本発明を実施するためのコンピュータ・システ
ムの例を示す図である。
【図2】交互のドライバ/マネージャ方式を示す図であ
る。
【図3】本発明の実施の形態を示す図である。
【図4】本発明の動作を示す流れ図である。
【図5】本発明の動作を示す流れ図である。
【符号の説明】
110 キーボード 111 マウス 112 大容量記憶 113 プロセッサ 114 ビデオ・メモリ 115 主メモリ 116 ビデオ増幅器 118 バス 119 入力/出力 120 通信インターフェイス 121 ネットワーク・リンク 122 ローカル・ネットワーク 123 ホスト 124 インターネット・サービス・プロバイダ 125 インターネット 126 サーバ
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 グレゴリー・スローター アメリカ合衆国・94306・カリフォルニア 州・パロ アルト・エマーソン ストリー ト・3326 (72)発明者 ドナルド・ハドソン,ジュニア アメリカ合衆国・94086・カリフォルニア 州・サニーベイル・(番地なし)・ピーオ ー ボックス・70535 (72)発明者 トーマス・ソウルポウ アメリカ合衆国・95120・カリフォルニア 州・サン ホゼ・ブレット ハート ドラ イブ・6938 (72)発明者 ユー−エン・イー アメリカ合衆国・95130・カリフォルニア 州・サン ホゼ・ハーモニー ウェイ・ 4998 (72)発明者 バーナード・トラバーサット アメリカ合衆国・94109・カリフォルニア 州・サン フランシスコ・カリフォルニア ストリート・2055・アパートメント 2 番

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 デバイス・ドライバへのインターフェイ
    スを実装するコンピュータ実施方法であって、 第1のプラットフォームに関連する前記デバイス・ドラ
    イバから要求を生成するステップと、 前記要求をバス・マネージャ・インターフェイスに供給
    するステップであって、前記バス・マネージャ・インタ
    ーフェイスは第2のプラットフォーム用に書かれてお
    り、前記バス・マネージャ・インターフェイスは前記要
    求を処理することができないステップと、 前記バス・マネージャ・インターフェイスが前記要求を
    処理できるようにプラットフォーム・サービス・エージ
    ェント(PSA)を使用して前記バス・マネージャ・イ
    ンターフェイスを変更するステップとを含む方法。
  2. 【請求項2】 前記第1のプラットフォームが前記第2
    のプラットフォームのバリアントである請求項1に記載
    の方法。
  3. 【請求項3】 前記バス・マネージャがシステム・ソフ
    トウエア・カーネルの一部分である請求項1に記載の方
    法。
  4. 【請求項4】 前記PSAが前記システム・ソフトウエ
    ア・カーネルの一部分ではない請求項3に記載の方法。
  5. 【請求項5】 前記デバイス・ドライバ、前記バス・マ
    ネージャおよび前記PSAがJavaプログラミング言
    語で実施される請求項1に記載の方法。
  6. 【請求項6】 前記要求がメモリ記述子のアレイを求め
    る要求であり、前記PSAがメモリ記述子の前記アレイ
    を変更し、次いで前記デバイス・ドライバがメモリ記述
    子の前記変更されたアレイの1つに関連するメモリを割
    り振るメソッドを呼び出す請求項1に記載の方法。
  7. 【請求項7】 デバイス・ドライバへのインターフェイ
    スを実装する装置であって、 第1のプラットフォームに関連するデバイス・ドライバ
    と、 前記デバイス・ドライバによって呼び出されるバス・マ
    ネージャ・インターフェイスであって、第2のプラット
    フォーム用に書かれており、前記デバイス・ドライバに
    よって生成された要求を処理することができないバス・
    マネージャ・インターフェイスと、 前記バス・マネージャ・インターフェイスが前記要求を
    処理できるように前記バス・マネージャ・インターフェ
    イスを変更するプラットフォーム・サービス・エージェ
    ント(PSA)とを含む装置。
  8. 【請求項8】 前記第1のプラットフォームが前記第2
    のプラットフォームのバリアントである請求項7に記載
    の装置。
  9. 【請求項9】 前記バス・マネージャがシステム・ソフ
    トウエア・カーネルの一部分である請求項7の装置。
  10. 【請求項10】 前記PSAが前記システム・ソフトウ
    エア・カーネルの一部分ではない請求項9の装置。
  11. 【請求項11】 前記デバイス・ドライバ、前記バス・
    マネージャ、および前記PSAがJavaプログラミン
    グ言語で実施される請求項7に記載の装置。
  12. 【請求項12】 前記要求がメモリ記述子のアレイを求
    める要求であり、前記PSAがメモリ記述子の前記アレ
    イを変更し、次いで前記デバイス・ドライバがメモリ記
    述子の前記変更されたアレイの1つに対応するメモリを
    割り振るメソッドを呼び出す請求項7の装置。
JP11326850A 1998-11-17 1999-11-17 予期しないプラットフォ―ム・バリアント上の装置をコア・プラットフォ―ム・カ―ネル・ソフトウエアの再リリ―スなしにサポ―トする機構 Pending JP2000200192A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/193,199 US6618767B1 (en) 1998-11-17 1998-11-17 Mechanism by which devices on unforeseen platform variants may be supported without re-release of core platform kernel software
US09/193199 1998-11-17

Publications (1)

Publication Number Publication Date
JP2000200192A true JP2000200192A (ja) 2000-07-18

Family

ID=22712622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11326850A Pending JP2000200192A (ja) 1998-11-17 1999-11-17 予期しないプラットフォ―ム・バリアント上の装置をコア・プラットフォ―ム・カ―ネル・ソフトウエアの再リリ―スなしにサポ―トする機構

Country Status (3)

Country Link
US (1) US6618767B1 (ja)
EP (1) EP1004962A3 (ja)
JP (1) JP2000200192A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258712A (ja) * 2004-03-10 2005-09-22 Canon Inc オブジェクト管理システム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030145127A1 (en) * 2002-01-03 2003-07-31 Unice W. Kyle Method and computer program product for providing a device driver
US7600222B2 (en) 2002-01-04 2009-10-06 Microsoft Corporation Systems and methods for managing drivers in a computing system
US7234144B2 (en) 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
US7069206B2 (en) * 2003-04-24 2006-06-27 International Business Machines Corporation Method and apparatus for abstraction of physical hardware implementation to logical software drivers
US20060101436A1 (en) * 2004-10-26 2006-05-11 Microsoft Corporation Hosting environment abstraction model for content
US7974738B2 (en) * 2006-07-05 2011-07-05 Battelle Energy Alliance, Llc Robotics virtual rail system and method
US7801644B2 (en) * 2006-07-05 2010-09-21 Battelle Energy Alliance, Llc Generic robot architecture
US8355818B2 (en) * 2009-09-03 2013-01-15 Battelle Energy Alliance, Llc Robots, systems, and methods for hazard evaluation and visualization
US7584020B2 (en) * 2006-07-05 2009-09-01 Battelle Energy Alliance, Llc Occupancy change detection system and method
US8073564B2 (en) 2006-07-05 2011-12-06 Battelle Energy Alliance, Llc Multi-robot control interface
US7587260B2 (en) * 2006-07-05 2009-09-08 Battelle Energy Alliance, Llc Autonomous navigation system and method
US8965578B2 (en) 2006-07-05 2015-02-24 Battelle Energy Alliance, Llc Real time explosive hazard information sensing, processing, and communication for autonomous operation
US7620477B2 (en) * 2006-07-05 2009-11-17 Battelle Energy Alliance, Llc Robotic intelligence kernel
US7211980B1 (en) 2006-07-05 2007-05-01 Battelle Energy Alliance, Llc Robotic follow system and method
US7668621B2 (en) * 2006-07-05 2010-02-23 The United States Of America As Represented By The United States Department Of Energy Robotic guarded motion system and method
US8271132B2 (en) 2008-03-13 2012-09-18 Battelle Energy Alliance, Llc System and method for seamless task-directed autonomy for robots
US8484616B1 (en) * 2009-06-23 2013-07-09 Emc Corporation Universal module model
JP6008617B2 (ja) * 2012-06-29 2016-10-19 キヤノン株式会社 通信装置およびその制御方法、並びにプログラム

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4173783A (en) 1975-06-30 1979-11-06 Honeywell Information Systems, Inc. Method of accessing paged memory by an input-output unit
US4533996A (en) 1982-02-23 1985-08-06 International Business Machines Corporation Peripheral systems accommodation of guest operating systems
US5694603A (en) 1982-09-28 1997-12-02 Reiffin; Martin G. Computer memory product with preemptive multithreading software
JPH0658624B2 (ja) 1990-03-30 1994-08-03 インターナショナル・ビシネス・マシーンズ・コーポレーション グラフィカル・ユーザ・インターフェース管理装置
JPH0756628B2 (ja) 1990-10-22 1995-06-14 富士ゼロックス株式会社 グラフィカル・ユーザインターフェースの編集装置
US5430836A (en) 1991-03-01 1995-07-04 Ast Research, Inc. Application control module for common user access interface
US5265252A (en) * 1991-03-26 1993-11-23 International Business Machines Corporation Device driver system having generic operating system interface
US5291585A (en) 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
US5566330A (en) 1991-08-20 1996-10-15 Powersoft Corporation Method for forming a reusable and modifiable database interface object
US5309563A (en) 1991-09-09 1994-05-03 Compaq Computer Corporation Computer implemented method for transferring command messages between a system manager for a computer system and a network operating system associated therewith
US5319751A (en) 1991-12-27 1994-06-07 Intel Corporation Device driver configuration in a computer system
US5461710A (en) 1992-03-20 1995-10-24 International Business Machines Corporation Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface
JPH0683603A (ja) 1992-04-03 1994-03-25 Internatl Business Mach Corp <Ibm> オブジェクト・クラスのバッチ登録の方法とシステム
US5347627A (en) 1992-04-07 1994-09-13 International Business Machines Corporation Graphical user interface including dynamic sizing and spacing
US5526517A (en) 1992-05-15 1996-06-11 Lsi Logic Corporation Concurrently operating design tools in an electronic computer aided design system
US5423034A (en) 1992-06-10 1995-06-06 Cohen-Levy; Leon Network file management with user determined hierarchical file structures and means for intercepting application program open and save commands for inputting and displaying user inputted descriptions of the location and content of files
GB2270242A (en) 1992-08-29 1994-03-02 Ibm A method of editing for an object oriented computer system
US5412772A (en) 1992-10-13 1995-05-02 Novell, Inc. System for permitting a view of an object or a user interface to be exchanged between operating system environments
US5384911A (en) 1992-12-23 1995-01-24 International Business Machines Corporation Method of transferring programs from action oriented GUI paradigm to object oriented GUI paradigm
US5345550A (en) 1992-12-23 1994-09-06 International Business Machines Corporation User-modifiable popup menus for object oriented behavior
US5448695A (en) 1992-12-31 1995-09-05 International Business Machines Corporation Method and apparatus for dynamic visual feedback messaging in a graphical user interface of a data processing system
US5436637A (en) 1993-03-05 1995-07-25 Borland International, Inc. Graphical user interface system and methods for improved user feedback
JP2620576B2 (ja) 1993-04-15 1997-06-18 インターナショナル・ビジネス・マシーンズ・コーポレイション ユーザが要求したフォントに従ってグラフィカル・ユーザ・インターフェースを調節する方法及びシステム
US5559942A (en) 1993-05-10 1996-09-24 Apple Computer, Inc. Method and apparatus for providing a note for an application program
US5473777A (en) 1993-07-19 1995-12-05 Moeller; Christopher P. Wrapper for enabling an object otented application to maintain virtual memory using procedural function calls
US5422674A (en) 1993-12-22 1995-06-06 Digital Equipment Corporation Remote display of an image by transmitting compressed video frames representing background and overlay portions thereof
US5548702A (en) 1993-12-23 1996-08-20 International Business Machines Corporation Scrolling a target window during a drag and drop operation
US5461399A (en) 1993-12-23 1995-10-24 International Business Machines Method and system for enabling visually impaired computer users to graphically select displayed objects
US5491784A (en) 1993-12-30 1996-02-13 International Business Machines Corporation Method and apparatus for facilitating integration of software objects between workspaces in a data processing system graphical user interface
US5546519A (en) 1994-02-28 1996-08-13 International Business Machines Corporation System and method for visually programming iteration
US5519851A (en) * 1994-03-14 1996-05-21 Sun Microsystems, Inc. Portable PCMCIA interface for a host computer
US5550968A (en) 1994-04-12 1996-08-27 International Business Machines Corporation Method and system for providing access security to controls in a graphical user interface
US5701476A (en) 1994-11-29 1997-12-23 Intel Corporation Method and apparatus for dynamically loading a driver routine in a computer memory
US5473745A (en) 1994-12-14 1995-12-05 International Business Machines Corporation Exposing and hiding a title bar behind its window using a visual cue
US5586268A (en) * 1995-03-03 1996-12-17 Advanced System Products, Inc. Multiple peripheral adapter device driver architecture
US5727212A (en) * 1995-04-12 1998-03-10 International Business Machines Corporation Object oriented device driver system for procedural device drivers
US5570462A (en) 1995-05-05 1996-10-29 Apple Computer, Inc. System and method for object placement and sizing in a dynamic display environment
EP0752646B1 (en) 1995-07-07 2002-03-27 Sun Microsystems, Inc. Data access implementation of device driver interface
US5909576A (en) * 1995-08-16 1999-06-01 International Business Machines Corporation Method and apparatus for using device drivers of a first operating system, under the control of a second operating system
US5572643A (en) 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
US5752032A (en) 1995-11-21 1998-05-12 Diamond Multimedia Systems, Inc. Adaptive device driver using controller hardware sub-element identifier
US5790887A (en) 1996-02-15 1998-08-04 International Business Machines Corporation Method and apparatus for processing programmed input/output (PIO) operations in a computer system
US5860079A (en) 1996-05-10 1999-01-12 Apple Computer, Inc. Arrangement and method for efficient calculation of memory addresses in a block storage memory system
US5829053A (en) 1996-05-10 1998-10-27 Apple Computer, Inc. Block storage memory management system and method utilizing independent partition managers and device drivers
WO1997044739A1 (en) 1996-05-23 1997-11-27 Advanced Micro Devices, Inc. Apparatus for converting data between different endian formats and system and method employing same
US6148346A (en) * 1996-06-20 2000-11-14 Peerless Systems Imaging Products, Inc. Dynamic device driver
US5937170A (en) 1997-02-21 1999-08-10 Vlsi Technology, Inc. Data communications with processor-assertable addresses mapped to peripheral-accessible-addresses-times-command product space
US5991822A (en) * 1997-03-17 1999-11-23 International Business Machines Corporation System for modifying functions of static device driver using a registered driver extension extended dynamically by providing an entry point for the driver extension
US5898896A (en) 1997-04-10 1999-04-27 International Business Machines Corporation Method and apparatus for data ordering of I/O transfers in Bi-modal Endian PowerPC systems
US5968136A (en) * 1997-06-05 1999-10-19 Sun Microsystems, Inc. Apparatus and method for secure device addressing
US6016503A (en) 1997-08-29 2000-01-18 International Business Machines Corporation Methods, systems and computer program products for preemptive avoidance of constraints for shared resources
US6594708B1 (en) 1998-03-26 2003-07-15 Sun Microsystems, Inc. Apparatus and method for object-oriented memory system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258712A (ja) * 2004-03-10 2005-09-22 Canon Inc オブジェクト管理システム

Also Published As

Publication number Publication date
EP1004962A3 (en) 2004-04-07
US6618767B1 (en) 2003-09-09
EP1004962A2 (en) 2000-05-31

Similar Documents

Publication Publication Date Title
JP2000200192A (ja) 予期しないプラットフォ―ム・バリアント上の装置をコア・プラットフォ―ム・カ―ネル・ソフトウエアの再リリ―スなしにサポ―トする機構
US6862735B1 (en) Mechanism by which platform independent software may bind to and access platform dependent software
US6202147B1 (en) Platform-independent device drivers
US6687831B1 (en) Method and apparatus for multiple security service enablement in a data processing system
KR101002489B1 (ko) 커널 모드 프로세싱과 사용자 모드 프로세싱 모두에 공통되는 하나 이상의 동작들의 단일 구현을 가능하게 하는 방법 및 컴퓨터 판독가능 기록 매체
JP3072709B2 (ja) 要求伝達方法
US6148387A (en) System and method for securely utilizing basic input and output system (BIOS) services
US7552433B2 (en) Non-platform-specific unique indentifier generation
US8219987B1 (en) Optimized virtual machine specification for provisioning application specific runtime environment
JP4297790B2 (ja) 物理的ストレージを抽象するプラグ可能なアーキテクチャを有するパーシステントなキーと値とのリポジトリ
US7107592B2 (en) Method, system, and program for making objects available for access to a client over a network
US6434694B1 (en) Security for platform-independent device drivers
US6122732A (en) System management interrupt for a desktop management interface/system management basic input output system interface function
KR19990064189A (ko) 다중 사용자 운영 체제에서 사용자 글로벌 오브젝트 명칭공간을 제공하기 위한 방법
US7558724B2 (en) Operation region describing a virtual device
JPH09223116A (ja) 複数ミドルウェアに渡る分散オブジェクトの位置透過性
US8200938B2 (en) Computer system and method providing a memory buffer for use with native and platform-independent software code
JP2002505473A (ja) 決定性ハッシュでリモートメソッドを識別する方法とシステム
US7076575B2 (en) Method and system for efficient access to remote I/O functions in embedded control environments
US6748592B1 (en) Method and apparatus for protectively operating a data/information processing device
US6418484B1 (en) Method of remotely executing computer processes
US5838911A (en) Method and apparatus for obtaining network information by using a dynamic link library
KR20060063642A (ko) 서브시스템 간의 자원 공유를 가능하게 하는 방법 및시스템
KR20010052182A (ko) 다형 토큰에 기초한 제어
US7130982B2 (en) Logical memory tags for redirected DMA operations