JP6018590B2 - ライブラリーオペレーティングシステムによるアプリケーションの互換性 - Google Patents

ライブラリーオペレーティングシステムによるアプリケーションの互換性 Download PDF

Info

Publication number
JP6018590B2
JP6018590B2 JP2013556669A JP2013556669A JP6018590B2 JP 6018590 B2 JP6018590 B2 JP 6018590B2 JP 2013556669 A JP2013556669 A JP 2013556669A JP 2013556669 A JP2013556669 A JP 2013556669A JP 6018590 B2 JP6018590 B2 JP 6018590B2
Authority
JP
Japan
Prior art keywords
operating system
application
library
library operating
compatible
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.)
Active
Application number
JP2013556669A
Other languages
English (en)
Other versions
JP2014510343A5 (ja
JP2014510343A (ja
Inventor
ハント,ガレン・シー
オリンスカイ,ルーベン・アール
フォーティン,マイケル・アール
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2014510343A publication Critical patent/JP2014510343A/ja
Publication of JP2014510343A5 publication Critical patent/JP2014510343A5/ja
Application granted granted Critical
Publication of JP6018590B2 publication Critical patent/JP6018590B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

[0001] オペレーティングシステム(OS)の構築に向けたライブラリーの手法は、1990年代におけるいくつかのオペレーティングシステム設計によって擁護された。ライブラリーOSのアイデアは、アプリケーションが依存するところのOSのパーソナリティー全体が、そのアドレス空間においてライブラリーとして動作することである。OSのパーソナリティーは、OSのアプリケーションプログラミングインターフェース(API)やアプリケーション可視的セマンティックス―アプリケーションがビルドされるOSのサービス―の実装である。ライブラリーOSの手法の初期の支持者達は、もっぱら、ライブラリーOSがアプリケーション毎のカスタマイズを通じてよりよい性能を可能にすることができると主張した。例えば、特異なファイルアクセスパターンによりディスクI/Oに限界があるアプリケーションは、デフォルトのシーケンシャル先読みヒューリスティックスを用いるのではなく、カスタムのファイルシステム記憶スタックを用いることによってよりよい性能を実現することが可能である。
[0002] 同時代の多くのものと同様に、ライブラリーOSの手法は大部分が忘れ去られた。最新の仮想マシンの登場の災難である。ライブラリーOS設計を含む現代の新しいOS設計のほとんどは小さい研究プロトタイプの上で一握りのカスタムアプリケーションしか実行しなかったけれども、仮想マシンシステムは、既存の機能豊富なオペレーティングシステムを再利用することによって大多数のアプリケーションを実行可能であったことから、急増した。ライブラリーOS設計によってもたらされる性能の利点は、レガシー互換性に対する要請を克服することはなかった。
[0003] 開示された主題のいくつかの側面に関する基本的な理解を提供するために、以下の記載が簡略化された概要を提示する。この概要は、広範な全体像ではない。この概要は、主要な/重大な要素を特定すること、あるいは特許請求の範囲に記載された主題の範囲を画定することを意図したものではない。その唯一の目的は、以降において提示されるより詳細な説明への前奏として、簡略化された形のいくつかの概念を提示することである。
[0004] 簡潔に説明すると、主題となる開示は、ライブラリーオペレーティングシステムによるアプリケーションの互換性に関係する。アプリケーションは、互換性を備えたライブラリーオペレーティングシステムに結合され得る。ライブラリーオペレーティングシステムは、アプリケーションの互換性を破る可能性が最も高いオペレーティングシステムの一部分をカプセル化することが可能であり、またホストオペレーティングシステムの上部において動作することが可能である。ライブラリーオペレーティングシステムは、ホストオペレーティングシステムのバージョンよりも小さいバージョン、等しいバージョン、又は大きいバージョンのものであり得る。したがって、アプリケーションを適切なライブラリーオペレーティングシステムに結合することによって、前方互換性と共に後方互換性が可能とされる。
[0005] 上記記載及び関連する目的を達成するために、特許請求の範囲に記載された主題のある例証的な側面が、以下の説明及び添付の図面に関連して本明細書で説明される。これらの側面は本主題が実施され得る様々な方法を示しており、その全ては、特許請求の範囲に記載された主題の範囲内にあることを意図されている。他の利点及び新規な特徴は、図面と併せて検討された時に以下の詳細な説明から明らかなものとなり得る。
[0006] 図1は、アプリケーションの互換性を容易化するシステムのブロック図である。 [0007] 図2は、例示的なライブラリーオペレーティングシステムのアーキテクチャーのブロック図である。 [0008] 図3は、アプリケーションの互換性を容易化するシステムのブロック図である。 [0009] 図4は、互換性を容易化する方法のフローチャート図である。 [0010] 図5は、ホストオペレーティングシステムの交換の方法のフローチャート図である。 [0011] 図6は、主題となる開示の側面のための好適な動作環境を示す模式的なブロック図である。
[0012] オペレーティングシステムは、アプリケーションプログラム、あるいは単にアプリケーションとコンピューターハードウェアとの間のインターフェースを提供して、アプリケーションがハードウェアと対話できるようにする。アプリケーションは、特定のオペレーティングシステムを対象とするように開発される。しかしながら、オペレーティングシステムは様々なリリース(例えば、Windows Vista(登録商標)、Windows 7(登録商標)、様々なサービスパック…)と共に変化し、そして結果として、アプリケーションとの互換性を維持することは、重要な挑戦である。例えば、もしアプリケーションがオペレーティングシステムのバージョン1に対して開発され、コンピューターがバージョン2へアップデートされたとすると、アプリケーションは最早、正しいやり方で動作又は機能しないかもしれない。オペレーティングシステムのベンダーは互換性を維持するのに多大なリソースを費やすが、オペレーティングシステムの各リリースは、必然的に多数の使用できないアプリケーションを生じさせることになる。このことは、新しいオペレーティングシステムのリリースによって膨大且つ重要な基幹業務(LOB)アプリケーションが使用できなくなる企業にとって、特に面倒なことである。
[0013] 互換性の問題に対処する1つの方法は、仮想マシン技術を利用することである。異なるオペレーティングシステムが同時に別々の仮想マシンにおいて動作することが可能であり、互換性を備えた仮想マシンにおいてアプリケーションが実行可能である。ここで、アプリケーションは特定のフル機能オペレーティングシステムと共に1つのユニットにパッケージ化され、したがって当該アプリケーションは、仮想マシンが動作するホストオペレーティングシステムに拘らず、そのパッケージ化されたオペレーティングシステム上で常に動作するだろう。更に、オペレーティングシステムの完全に別個のコピーを動作させるという、性能及びリソースの深刻なオーバーヘッドが存在する。実際問題として、消費者デバイスは一度に1つか2つの仮想マシンを動作させることができるだけかもしれず、このことは、多数の異なるアプリケーションを動作させることを困難なものにする。
[0014] 以下の詳細は、概して、ライブラリーオペレーティングシステムによるアプリケーションの互換性に向けられている。ライブラリーオペレーティングシステムを利用すると、仮想マシン技術と同じ利点が、ほんの少しのオーバーヘッドと性能コストで達成可能である。更に、アプリケーションは、従来なされていたようにオペレーティングシステムと共にパッケージ化される必要がない。それどころか、アプリケーションは、たとえ特定のオペレーティングシステム又はそのバージョンへの強い依存性が存在しているとしても、オペレーティングシステムとは別個にパッケージ化されることが可能である。結果として、様々な異なるアプリケーションを別個のオペレーティングシステムのバージョンのインスタンス上で動作させることが実現可能となる。
[0015] より具体的には、アプリケーションは、アプリケーションの互換性を破る可能性が最も高いオペレーティングシステムの一部分をカプセル化する、互換性を備えたライブラリーオペレーティングシステムに結合されることが可能である。一実施態様では、複数のライブラリーオペレーティングシステムがホストオペレーティングシステムと共にパッケージ化されることが可能である。アプリケーションの実行を開始すると、互換性を備えたライブラリーオペレーティングシステムが、当該アプリケーションに結合され、アプリケーションのアドレス空間にロードされることが可能である。この互換性を備えたライブラリーオペレーティングシステムは、ホストオペレーティングシステムのバージョンよりも小さいバージョン、等しいバージョン、又は大きいバージョンのものであり得る。したがって、数ある中でも、オペレーティングシステムの以後のバージョンとの前方互換性(別名、逆方向互換性)だけでなく、オペレーティングシステムの以前のバージョン、即ちレガシーバージョンとの後方互換性(別名、互換性)が可能とされる。
[0016] これより、主題となる開示の様々な側面が、添付の図面を参照してより詳細に説明される。図面において、同じ符号は、全体を通して、同じ又は対応する要素を参照する。しかしながら、図面及びそれに関連する詳細な説明は、特許請求の範囲に記載された主題を開示された特定の形に限定することを意図したものではない、ということが理解されるべきである。それどころか、その意図は、特許請求の範囲に記載された主題の趣旨及び範囲に該当するあらゆる変形、均等物、及び代替物を網羅することである。
[0017] 初めに図1を参照すると、アプリケーションの互換性を容易化するシステム100が示されている。システム100は、選択コンポーネント110及び結合コンポーネント120を含んでいる。選択コンポーネント110は、数ある中でも、ソフトウェアアプリケーション、あるいは単にアプリケーション、及び/又は当該アプリケーションに関する情報を、受け取り、取得し、又は別のやり方で入手し若しくは獲得する。更に、選択コンポーネント110は、アプリケーションと互換性があるライブラリーオペレーティングシステムを、例えば当該アプリケーション及び/又は当該アプリケーションに関する情報に基づいて、特定し、決定し、又は推定するように構成されている。結合コンポーネント120は、アプリケーションを、選択コンポーネント110によって特定された互換性を備えたライブラリーオペレーティングシステムに結合する、言い換えると関連付けるように構成されている。1つの側面によれば、少なくとも結合コンポーネント120に関わる機能は、ランタイムで実施され得る。例えば、アプリケーションの実行を開始すると、そのアプリケーションは、互換性を備えたライブラリーオペレーティングシステムに動的に結合されることが可能である。
[0018] 選択コンポーネント110は、互換性を備えたライブラリーオペレーティングシステムを、様々なやり方で選択することが可能である。一実施態様では、アプリケーションは、マニフェストファイル、又は互換性を備えたオペレーティングシステム及び/又はライブラリーオペレーティングシステムを特定する類似の構造体を含む、又はそれらに関連付けられることが可能である。この例では、選択コンポーネント110は、互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから特定するように構成されることが可能である。別の実施態様では、アプリケーション及び関連機能が分析されることが可能であり、それに基づいて、互換性を備えたライブラリーオペレーティングシステムが決定又は推定されることが可能である。更に別の実施態様では、選択コンポーネント110は、アプリケーションのユーザー、管理者、又は他の人に、どのライブラリーオペレーティングシステムがアプリケーションと互換性があるかに関して問い合わせをするように構成されることが可能である。一具体例では、複数のライブラリーオペレーティングシステムが試行されることが可能であり、ユーザーは、どのライブラリーオペレーティングシステムが最も良好に動作したかを特定することが可能である。更に、複合型の手法、例えばアプリケーションと互換性のあるライブラリーオペレーティングシステムを推定し、そのアプリケーションのユーザーが当該推定された互換性のあるライブラリーオペレーティングシステムを承認又は否認するようにする、といったような手法が用いられることが可能である。更に、アプリケーションは、2つ以上のオペレーティングシステムと互換性を有すること、又はある程度の互換性を有することが可能である。いずれにしても、選択コンポーネント110は、互換性を備えた1又は複数のライブラリーオペレーティングシステムを特定することが可能である。
[0019] 上で言及したように、結合コンポーネント120は、互換性を備えたライブラリーオペレーティングシステムにアプリケーションを結合するように構成されている。例えば、利用可能なライブラリーオペレーティングシステムから、互換性を備えたライブラリーオペレーティングシステムがアプリケーションと関連付けられる。その後に、当該ライブラリーオペレーティングシステムが、例えば、そのアプリケーションのアドレス空間にロードされることが可能である。そのようなロードは、結合コンポーネント120又は何らかの他のコンポーネントによってランタイムで実施されることもできる。
[0020] 1つの側面によれば、ライブラリーオペレーティングシステムは、アプリケーションの互換性を破る可能性が最も高いオペレーティングシステムの一部分をカプセル化することが可能である。したがって、ライブラリーオペレーティングシステムは、アプリケーションの互換性問題を解決するメカニズムを提供する。具体的には、ライブラリーオペレーティングシステムは、ホストオペレーティングシステムの上部において動作し、必要に応じてアプリケーションによって利用されることが可能である。ある意味では、それぞれのアプリケーションは、その選択によるライブラリーオペレーティングシステムと共に動作し、それによって互換性問題を排除することが可能である。
[0021] そのようなライブラリーオペレーティングシステムは、通常のライブラリーオペレーティングシステムを特定の方法でリファクタリングすることによって生成可能である。より具体的には、アプリケーションサービス(例えば、フレームワーク、描画エンジン、共通ユーザーインターフェースコントロール、言語ランタイム…)は、ライブラリーオペレーティングシステム内にパッケージ化されることが可能であり、ユーザーサービス(例えば、グラフィカルユーザーインターフェース、クリップボード、検索インデックス…)及びハードウェアサービス(例えば、OSカーネル、デバイスドライバー、ファイルシステム…)は、ホストオペレーティングシステムと共にパッケージ化される。一例では、完全版のオペレーティングシステムの1/50のサイズのライブラリーオペレーティングシステムが作成されることが可能である。このライブラリーオペレーティングシステムは、低レベルハードウェア抽象化をアプリケーションに公開することによってアプリケーションのカスタマイズされた性能向上をもたらすことを目的としていた従前のライブラリーオペレーティングシステムの設計とは、全く異なっている。これらの従前の設計は、ページテーブル、ネットワークパケット、及びディスクブロックといったようなハードウェアリソースのきめ細かいカスタマイズされた制御をアプリケーションに提供する。ここで、利用される本ライブラリーオペレーティングシステムは、その目標において異なり、したがって、数ある中でも、アプリケーションの互換性を容易化するより高レベルの抽象化を提供する。
[0022] 図2に注意を向けると、例示的なライブラリーオペレーティングシステムのアーキテクチャー200が示されている。図示されるように、アーキテクチャー200は、コンピューターにインストールされた主要オペレーティングシステムであるホストオペレーティングシステム210を含んでいる。ほとんどの場合、ホストオペレーティングシステム210は、唯一のオペレーティングシステムである。しかしながら、ここで、いくつかのライブラリーオペレーティングシステム220(ライブラリーオペレーティングシステム−ライブラリーオペレーティングシステム、但しMは正の整数)が、ホストオペレーティングシステム210上で、あるいはその中で動作するゲストとなっている。多数のアプリケーション230(アプリケーション−アプリケーション、但しNは正の整数)が、互換性を備えたライブラリーオペレーティングシステム220上で実行される。複数のライブラリーオペレーティングシステム220のそれぞれは、アプリケーションが依存するところのオペレーティングシステムのパーソナリティー(例えば、アプリケーションプログラミングインターフェースやアプリケーションセマンティックスであって、その上にアプリケーションがビルドされる)をキャプチャーして、当該アプリケーションのアドレス空間においてライブラリーとして動作することが可能である。したがって、ライブラリーオペレーティングシステムは、アプリケーションの互換性(例えばアプリケーションサービス)を破る可能性が最も高いオペレーティングシステムの一部分をカプセル化することが可能である。
[0023] アーキテクチャー200は、通常の仮想マシンアーキテクチャーに似ている。しかし、オペレーティングシステムの全体を利用するのではなく、ライブラリーオペレーティングシステムが利用される。リソースのオーバーヘッドは、こうして劇的に低減される。例えば、オペレーティングシステムの完全に別個のコピーを動作させるのに512MBのランダムアクセスメモリー(RAM)と5GBのディスクスペースを消費するのではなく、ライブラリーオペレーティングシステムによって、16MBよりも少ないRAMと64MBよりも少ないディスクスペースが消費されることが可能である。実際問題として、典型的な消費者デバイスは通常のオペレーティングシステム全体の1つか2つのコピーを動作させることができるだけかもしれず、このことは、多数の異なるアプリケーションを動作させることを困難なものにする。しかしながら、通常のオペレーティングシステムの代わりにライブラリーオペレーティングシステムを使用することによって、オペレーティングシステムの様々なバージョンを必要とする多数の異なるアプリケーションが、極めて簡単にサポートされる。
[0024] ライブラリーオペレーティングシステム220は、ホストオペレーティングシステム210のバージョンよりも小さいバージョン、等しいバージョン、又は大きいバージョンのものであり得る。したがって、ライブラリーオペレーティングシステムを利用するアプリケーションに対して、後方互換性及び前方互換性が可能とされる。
[0025] 一実施態様によれば、ホストオペレーティングシステム210は、1又は複数のライブラリーオペレーティングシステム220と共にパッケージ化されることが可能である。換言すれば、ホストオペレーティングシステム210は、1又は複数のライブラリーオペレーティングシステムからなる集合体を、例えばライブラリーオペレーティングシステムストア212の中に含むことが可能である。例えば、ライブラリーオペレーティングシステムは、数ある中でも、ディスク上のホストオペレーティングシステムに関して並列なディレクトリーに格納されることが可能である。アプリケーションは、ホストオペレーティングシステム210に関して含まれているライブラリーオペレーティングシステムのうちの1つに結合されることが可能である。そのようなオペレーティングシステムは、その後で、アプリケーションのアドレス空間にロード即ち複製されることが可能である。このことは、後方互換性(別名、互換性)に対処する。何故なら、ホストオペレーティングシステム210は、少なくとも従前の即ちレガシーのライブラリーオペレーティングシステムの部分集合を含み得るからである。例えば、オペレーティングシステムの従前のバージョン向けに設計されたアプリケーションは、当該オペレーティングシステムの最新のバージョンと共にパッケージ化されたライブラリーオペレーティングシステムを利用することによって、当該オペレーティングシステムの最新のバージョンの上で動作することが可能である。前方互換性(別名、逆方向互換性)もまた、対処される。
[0026] オペレーティングシステムの従前のバージョン向けに書かれたアプリケーションをオペレーティングシステムのより新しいバージョンの上で実行することと対照的に、オペレーティングシステムの従前のバージョンの上でより新しいオペレーティングシステムのバージョン向けに書かれたアプリケーションが動作することも可能である。一般に、アプリケーションは、アプリケーションプログラミングインターフェース(API)を介してホストオペレーティングシステムの特定のバージョンに結び付けられている。したがって、開発者は、利用者の大半が新しいオペレーティングシステムにまだアップグレードしていない場合に、新しいホストオペレーティングシステムをターゲットにするか否かに関してジレンマに直面する。結果として、新しいオペレーティングシステムをターゲットにすることの正当性を示すのに十分な(通常インストールベースと呼ばれる)ユーザーをオペレーティングシステムが獲得するまで、その新しいオペレーティングシステムをターゲットとしたAPIをいつ開発者が採用するかについてのタイムラグが一般に存在する。ライブラリーオペレーティングシステムを利用することによって、開発者は、最新のオペレーティングシステムをターゲットとすることが可能であり、また、アプリケーションをダウンレベルで、即ち言い換えると、オペレーティングシステムのより古いバージョンで動いているコンピューター上で、動作させることが可能である。互換性の問題はライブラリーオペレーティングシステムにあるため、当該オペレーティングシステムの新しいバージョンに関してライブラリーオペレーティングシステムを利用することが可能であり、これにより、アプリケーションは最新のAPIをターゲットとすることが可能である。一例では、ライセンス料が課せられて、より新しいライブラリーOSにおける最新のオペレーティングシステムの機能をターゲットとすることを可能にすることができる。
[0027] 更に、ホストとアプリケーションが別々に進化するようにすることによって、ホストオペレーティングシステムにおける変化は、必ずしもアプリケーションを中断する必要がなくなる。例えば、ホストオペレーティングシステムが新しいバージョンにアップグレードされたと想定されたい。アップグレードの時点で、コンピューターにインストールされているアプリケーションは、当該オペレーティングシステムの従前のバージョンに適合するライブラリーオペレーティングシステム上で実行するように、再構成されることが可能である。
[0028] 一実施態様によれば、アプリケーション230とライブラリーオペレーティングシステム220の組み合わせのそれぞれは、ピコプロセス240内で動作することが可能であり、このピコプロセス240は、オペレーティングシステムプロセスのアドレス空間からビルドされたコンテナーであって、但しホストオペレーティングシステム210のフルサービスに対するアクセス権は有しない、軽量でセキュアな隔離コンテナーである。換言すれば、動作不良のアプリケーションが他のアプリケーションやホストを危険にさらすことができないように、アプリケーションはサンドボックス化されることが可能である。ピコプロセスで動いているコードは、ハードウェア仮想マシンのデザインパターンに従う、図2中の矢印で表されたホストオペレーティングシステム210とのインターフェースを利用することが可能である。インターフェースの呼び出しは、ホストオペレーティングシステム210のセキュリティー監視コンポーネント(不図示)によって処理されることが可能であり、それは、従来のハードウェア仮想マシンに関するハイパーバイザー又は仮想マシンモニターに機能的に類似したものであり得る。
[0029] ライブラリーオペレーティングシステムがホストオペレーティングシステムと共にパッケージ化されている場所、例えばライブラリーオペレーティングシステムストア212において、メンテナンスが促進される。ホストオペレーティングシステム210を更新するのに利用される機構が、当該ホストオペレーティングシステムと共にパッケージ化されているライブラリーオペレーティングシステムを更新するのに活用されることが可能である。例えば、ライブラリーオペレーティングシステムは、ホストオペレーティングシステム210の更新機能によって、セキュリティー更新や正確性の修正をパッチされることが可能である。更に、ライブラリーオペレーティングシステムをアプリケーションの何らかの他のバージョンに結合するのではなく、ランタイムでアプリケーションに結合することによって、最新のライブラリーオペレーティングシステムが利用されることが可能である。
[0030] 加えて、ホストオペレーティングシステム210を更新するのに利用される機構が、当該ホストオペレーティングシステムが出荷された後、即ち言い換えると、顧客に届けられた後に新しいライブラリーオペレーティングシステムをインストールするのに活用されることが可能である。例えば、ホストオペレーティングシステムのサービスを受けてライブラリーオペレーティングシステムの新しいバージョンが利用可能であると判断されたら、当該新しいライブラリーオペレーティングシステムが取得され保存されることが可能である。
[0031] 図3は、アプリケーションの互換性を容易化するシステム300を示している。図1のシステム100と同様、システム300は、既に説明されたような選択コンポーネント110及び結合コンポーネント120を含んでいる。簡潔に述べると、選択コンポーネント110は、アプリケーションと互換性があるライブラリーオペレーティングシステムを選択又は特定するように構成され、結合コンポーネント120は、当該アプリケーションを当該ライブラリーオペレーティングシステムと結合するように構成されている。前の説明では、システム100は、アプリケーションのための必須ライブラリーオペレーティングシステムのローカルな利用可能性を前提としていた。しかしながら、ある場合においては、それは実情に合っていないかもしれない。取得コンポーネント320がこの問題に対処する。より具体的には、取得コンポーネント320は、ライブラリーオペレーティングシステムを、例えば広く公衆にアクセス可能又は別のやり方でアクセス可能なウェブサイトから取得するように構成されることが可能である。具体的な一例では、取得コンポーネント320は、ホストオペレーティングシステムの更新機構を介してライブラリーオペレーティングシステムのダウンロードを引き起こすように構成されることが可能である。つまり、選択コンポーネント110がアプリケーションに対してシステム上に存在しないライブラリーオペレーティングシステムを特定した場合に、結合コンポーネント120は、取得コンポーネント320を介してそのライブラリーオペレーティングシステムを取得するように構成されている。
[0032] 様々なライブラリーオペレーティングシステムと1つのホストオペレーティングシステムが、コンピューター上に共存することが可能である。一例として、ホストオペレーティングシステムと一緒になったライブラリーオペレーティングシステムのあり得る1つのレイアウトを想定されたい:
C:\Windows\System32
C:\Windows\SysWOW64
C:\Windows\Windows.6.2.8102.Win8BUILD
C:\Windows\Windows.6.1.7601.Win7SP1
C:\Windows\Windows.6.1.7600.Win7RTM
C:\Windows\Windows.6.0.6002.VistaSP2
C:\Windows\Windows.6.0.6001.VistaSP1
C:\Windows\Windows.6.0.6000.VistaRTM
C:\Windows\Windows.5.1.2600.WinXPSP3
この例において、ディレクトリーツリー“System32”は、64ビットのホストオペレーティングシステムを収容している。ディレクトリーツリー“SysWOW64”は、この64ビットのホストオペレーティングシステム上で動作する、当該ホストオペレーティングシステムの32ビットのファイルを収容している。その他のディレクトリーツリーは、初期のオペレーティングシステム(Win7SP1、Win7RTM、VistaSP2、VistaSP1、VistaRTM、WinXPSP3)又はより最近のオペレーティングシステム(Win8BUILD)のいずれからのライブラリーオペレーティングシステムも含んでいる。
[0033] 前述のシステム、アーキテクチャー、環境等は、いくつかのコンポーネント間の相互作用に関して説明されてきた。そのようなシステム及びコンポーネントは、そこで明記されたコンポーネント又はサブコンポーネント、当該明記されたコンポーネント又はサブコンポーネントのうちのいくつか、及び/又は付加的なコンポーネントを含むことが可能である、ということは認識されるべきである。サブコンポーネントは、親のコンポーネントの中に含まれるのではなく、他のコンポーネントに通信可能に接続されたコンポーネントとして実装されることもあり得る。その上更に、1又は複数のコンポーネント及び/又はサブコンポーネントが、集合的機能を提供するように1つのコンポーネントに統合されることができる。システム、コンポーネント、及び/又はサブコンポーネント間の通信は、プッシュ及び/又はプルモデルのいずれに従って実現されることも可能である。コンポーネントはまた、簡略化のため本明細書において具体的に説明されないが当業者に知られている1又は複数の他のコンポーネントと相互作用することもできる。
[0034] 更にまた、開示された上記のシステム及び以下の方法の様々な部分は、人工知能、機械学習、又は知識若しくはルールベースの、コンポーネント、サブコンポーネント、プロセス、手段、方法論、又は機構(例えば、サポートベクトルマシン、ニューラルネットワーク、エキスパートシステム、ベイジアン信念ネットワーク、ファジィ論理、データ融合エンジン、クラシファイア…)を、含むこと又は利用することが可能である。そのようなコンポーネントは、特に、それによって実施されるある機構又はプロセスを自動化して、システム及び方法の一部分をより効率的且つインテリジェントにするだけでなく、より適応的なものとすることが可能である。限定ではなく例として、選択コンポーネント110は、互換性を備えたライブラリーオペレーティングシステムを決定するのに、そのような機構を利用することが可能である。
[0035] 上記説明された例示的なシステムを考慮して、開示された主題に従って実施されることができる方法論は、図4のフローチャートを参照して理解する方が適切であろう。説明の簡単化のために、本方法論は一連のブロックとして示され記載されるけれども、特許請求の範囲に記載された主題は、当該ブロックの順序によって限定されることはない、ということは理解され認識されなければならない。何故なら、本明細書に記述及び説明されたものから、いくつかのブロックは、異なる順序で、及び/又は他のブロックと同時に、発生することができるからである。その上、必ずしも説明されたブロックの全てが、以降に記載される方法を実施するのに必要とされなくてもよい。
[0036] 図4を参照すると、互換性を容易化する方法400が示されている。符号410において、アプリケーションに対する互換性を備えたライブラリーオペレーティングシステムが決定される。ここで、ライブラリーオペレーティングシステムは、アプリケーションの互換性を破る可能性が最も高い従来のオペレーティングシステムの一部分をカプセル化する。一例では、ライブラリーオペレーティングシステムは、当該アプリケーションに関連付けられているマニフェストファイルから特定されること、個人(例えば、エンドユーザー、プログラマー、管理者…)から取得されること、又は、別のやり方として当該アプリケーションの分析から決定若しくは推定されることが可能である。符号420において、当該決定されたライブラリーオペレーティングシステムが利用可能であるか否かに関する判断が行われる。ライブラリーシステムがコンピューター上でローカルに利用可能でなければ(「NO」)、430において、そのライブラリーオペレーティングシステムが遠隔地から取得される。そうではなく、ライブラリーオペレーティングシステムが利用可能であれば(「YES」)、方法400は符号440へ続き、アプリケーションが当該ライブラリーオペレーティングシステムに結合される。ここには示されていないが、アプリケーションが、ライブラリーオペレーティングシステムをリモートで取得するのではなく、複数のオペレーティングシステムと互換性を有している場合、その他のローカルなライブラリーオペレーティングシステムのうちの1つが利用されることが可能である。アプリケーションの実行を開始すると、結合されたライブラリーシステムがアプリケーションのアドレス空間へロードされることが可能である。
[0037] 図5は、ホストオペレーティングシステムの交換の方法500のフローチャート図である。符号510において、アプリケーションが、ホストオペレーティングシステムから同一バージョンのライブラリーオペレーティングシステムへ再結合される。符号520において、ホストオペレーティングシステムが交換される。このようにして、ホストオペレーティングシステムは、アプリケーションを互換性のあるライブラリーオペレーティングシステムへ移動することによって、アプリケーションを中断することなくアップグレード/更新されることが可能である。
[0038] 本明細書で用いられる場合、用語「コンポーネント(component)」、「システム(system)」、「アーキテクチャー」とその様々な変化形(例えば、コンポーネント(components)、システム(systems)、サブシステム…)は、コンピューター関連エンティティー、即ち、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、又は実行されているソフトウェアのいずれをも意味することを意図されている。例えば、コンポーネントは、限定ではないが、プロセッサー上で動作するプロセス、プロセッサー、オブジェクト、インスタンス、実行可能ファイル、実行スレッド、プログラム、及び/又はコンピューターであり得る。実例として、コンピューター上で動作しているアプリケーションと当該コンピューターの両方が、コンポーネントであり得る。プロセス及び/又は実行スレッド中に1又は複数のコンポーネントが存在することができ、コンポーネントは、1つのコンピューター上にローカルに存在すること、及び/又は2つ以上のコンピューターに分散して存在することができる。
[0039] 単語「例示的」又はその様々な変化形は、本明細書において、例、事例、又は例証として役に立つということを意味すべく用いられている。「例示」として本明細書で説明された任意の側面又は設計は、他の側面又は設計に対して好適である又は有利であるものとして必ずしも解釈されてはならない。更に、例は、明瞭性及び理解の目的のためだけに提供されており、特許請求の範囲に記載された主題又はこの開示の関連部分を、如何なる方法でも限定又は制限することを意味されていない。様々な範囲に及ぶ無数の付加的又は代替的な例が提示可能であったのだが、簡潔性のために省略されたということが認識されなければならない。
[0040] この説明及び添付された特許請求の範囲において用いられる接続詞「又は」は、そうでないことが指定されるか又は文脈から明らかでない限り、排他的な「又は」ではなく包括的な「又は」を意味することを意図されている。言い換えると、「「X」又は「Y」」は、「X」と「Y」の任意の包括的な組み合わせを意味することを意図されている。例えば、「「A」は「X」を利用する」、「「A」は「Y」を利用する」、又は「「A」は「X」と「Y」の両方を利用する」とすると、「「A」は「X」又は「Y」を利用する」ということが前記事例のいずれの下でも満足される。
[0041] 本明細書で用いられる場合、用語「推定」又は「推定する」は、通常、事象及び/又はデータを介して獲得される一群の観測結果からシステム、環境、及び/又はユーザーの状態について推論又は推定するプロセスを表す。推定は、例えば、特定の文脈又は作用を特定するのに利用されることが可能であり、又は、状態に対する確率分布を生成することが可能である。推定は、確率的なもの、即ち、データ及び事象の考慮に基づく関心のある状態に対する確率分布の計算であり得る。推定はまた、一群の事象及び/又はデータからより高レベルの事象を組み立てるために利用される手法を表すことも可能である。そのような推定は、一群の観測された事象及び/又は格納されている事象データから、それらの事象が時間的にすぐ近くに相関していてもしていなくても、またそれらの事象及びデータが1又は複数の事象及びデータソースから生じたかにかかわらず、新たな事象又は作用の構築をもたらす。様々な分類体系及び/又はシステム(例えば、サポートベクトルマシン、ニューラルネットワーク、エキスパートシステム、ベイジアン信念ネットワーク、ファジィ論理、データ融合エンジン…)が、特許請求の範囲に記載された主題に関連して自動的な及び/又は推定された動作を実施することに関して利用されることが可能である。
[0042] 更に、用語「含む(includes)」、「含む(contains)」、「有する(has)」、「有する(having)」又はそれらの形式上の変化形が詳細な説明又は特許請求の範囲のいずれかにでも用いられている限りにおいて、そうした用語は、用語「含む(comprising)」が特許請求の範囲において遷移性の語として用いられる場合に解釈されるように、「含む(comprising)」と同様にして包括的であることを意図されている。
[0043] 特許請求の範囲に記載された主題に文脈を提供するために、図6と以下の議論は、当該主題の様々な側面が実施されることが可能な好適な環境の簡潔で概略的な説明を提供することを意図されている。しかしながら、この好適な環境は、単なる一例にすぎず、効用又は機能性の範囲に関して如何なる限定を示唆することも意図されていない。
[0044] 上記開示されたシステム及び方法は1又は複数のコンピューター上で動作するプログラムのコンピューター実行可能命令の一般的な文脈で説明されることが可能であるけれども、当業者は、他のプログラムモジュール等と共同して側面が実施されることも可能であるということを認識するだろう。概して、プログラムモジュールは、特定のタスクを実施及び/又は特定の抽象データ型を実装する数あるものの中でも、ルーチン、プログラム、コンポーネント、データ構造を含む。その上、上記のシステム及び方法は、シングルプロセッサー、マルチプロセッサー、若しくはマルチコアプロセッサーのコンピューターシステム、ミニコンピューティングデバイス、メインフレームコンピューター、並びにパーソナルコンピューター、携帯型コンピューティングデバイス(例えば、携帯情報端末(PDA)、電話機、時計…)、マイクロプロセッサーベース若しくはプログラム可能な消費者又は産業用電子機器等を含む、様々なコンピューターシステム構成によって実現されることが可能である、ということを当業者は認識するだろう。通信ネットワークを通じてリンクされている遠隔の処理デバイスによってタスクが実施される分散コンピューティング環境において、側面が実現されることも可能である。しかしながら、特許請求の範囲に記載された主題の、全てではないとしてもいくつかの側面は、スタンドアローンのコンピューター上で実現されることが可能である。分散コンピューティング環境では、プログラムモジュールは、ローカル及びリモートのメモリーストレージデバイスの一方又は両方に配置されることができる。
[0045] 図6を参照して、例示的な汎用コンピューター610あるいはコンピューティングデバイス(例えば、デスクトップ、ラップトップ、サーバー、ハンドヘルド、プログラム可能な消費者又は産業用電子機器、セットトップボックス、ゲームシステム…)が示されている。コンピューター610は、1又は複数のプロセッサー620、メモリー630、システムバス640、マスストレージ650、及び1又は複数のインターフェースコンポーネント670を含んでいる。システムバス640は、少なくとも上記のシステムコンポーネントを通信可能に接続している。しかしながら、その最もシンプルな形態において、コンピューター610は、メモリー630に格納された様々なコンピューター実行可能動作、命令、及び/又はコンポーネントを実行する、メモリー630に接続された1又は複数のプロセッサー620を含むことが可能である、ということが認識されなければならない。
[0046] プロセッサー620は、汎用プロセッサー、デジタルシグナルプロセッサー(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)若しくは他のプログラム可能なロジックデバイス、個別ゲート若しくはトランジスターロジック、個別ハードウェアコンポーネント、又は、本明細書において説明された機能を実施するように設計されたそれらの任意の組み合わせによって、実装されることが可能である。汎用プロセッサーは、マイクロプロセッサーであり得るが、代替として、プロセッサーは、任意のプロセッサー、コントローラー、マイクロコントローラー、又はステートマシンであり得る。プロセッサー620はまた、コンピューティングデバイスの組み合わせ、例えば、DSPとマイクロプロセッサーの組み合わせ、複数のマイクロプロセッサーの組み合わせ、マルチコアプロセッサーの組み合わせ、DSPコアと一体になった1又は複数のマイクロプロセッサー、又は任意の他のそのような構成として、実装されることもできる。
[0047] コンピューター610は、特許請求の範囲に記載された主題の1又は複数の側面を実現するようにコンピューター610の制御を容易化するための様々なコンピューター読み取り可能媒体を含む、又はさもなければ、コンピューター読み取り可能媒体と相互作用することが可能である。コンピューター読み取り可能媒体は、コンピューター610によってアクセスされることが可能である任意の利用可能な媒体とすることができ、揮発性及び不揮発性媒体、並びにリムーバブル及び非リムーバブル媒体を含む。限定ではなく例として、コンピューター読み取り可能媒体は、コンピューター記憶媒体及び通信媒体を含むことができる。
[0048] コンピューター記憶媒体は、コンピューター読み取り可能命令、データ構造、プログラムモジュール、又は他のデータといったような情報の記憶のための任意の方法又は技術で実装された、揮発性及び不揮発性、リムーバブル及び非リムーバブルの媒体を含む。コンピューター記憶媒体は、メモリーデバイス(例えば、ランダムアクセスメモリー(RAM)、リードオンリーメモリー(ROM)、電気的に消去可能なプログラマブルリードオンリーメモリー(EEPROM)…)、磁気記憶デバイス(例えば、ハードディスク、フロッピーディスク(登録商標)、カセット、テープ…)、光ディスク(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)…)、及び固体デバイス(例えば、ソリッドステートドライブ(SSD)、フラッシュメモリードライブ(例えば、カード、スティック、キードライブ…)…)、又は、所望の情報を格納するのに使用可能でありコンピューター610によってアクセス可能である任意の他の媒体を含むが、それらには限定されない。
[0049] 通信媒体は、一般に、コンピューター読み取り可能命令、データ構造、プログラムモジュール、又は他のデータを、搬送波又は他の伝送メカニズム等の変調データ信号に具現化し、任意の情報配送媒体を含む。用語「変調データ信号」は、その特性のうちの1又は複数を、信号の中に情報をエンコードするような方法で設定又は変化させる信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体、並びに、音波、RF、赤外線、及び他の無線媒体等の無線媒体を含む。上記のうち任意のものの組み合わせも、コンピューター読み取り可能媒体の範囲内に含まれるべきである。
[0050] メモリー630とマスストレージ650は、コンピューター読み取り可能記憶媒体の例である。コンピューティングデバイスの厳密な構成及びタイプに応じて、メモリー630は、揮発性(例えばRAM)、不揮発性(例えばROM、フラッシュメモリー)、又はそれら2つの何らかの組み合わせであり得る。例として、コンピューター610内の要素の間で例えばスタートアップ時に情報を転送するための基本ルーチンを含んだ基本入出力システム(BIOS)は、不揮発性メモリーに格納されることが可能であり、一方、揮発性メモリーは、数ある中でも、プロセッサー620による処理を促進するための外部キャッシュメモリーとして機能することが可能である。
[0051] マスストレージ650は、メモリー630に比較して大量のデータの記憶のための、リムーバブル/非リムーバブル、揮発性/不揮発性のコンピューター記憶媒体を含む。例えば、マスストレージ650は、磁気若しくは光ディスクドライブ、フロッピーディスク(登録商標)ドライブ、フラッシュメモリー、ソリッドステートドライブ、又はメモリースティック等の1又は複数のデバイスを含むが、これらには限定されない。
[0052] メモリー630及びマスストレージ650は、オペレーティングシステム660、1又は複数のアプリケーション662、1又は複数のプログラムモジュール664、及びデータ666を含む、又はその中に格納することが可能である。オペレーティングシステム660は、コンピューター610のリソースを制御し割り当てるように動作する。ここで、オペレーティングシステム660は、数多くのライブラリーオペレーティングシステム220をサポートすることのできるホストオペレーティングシステム210に対応することが可能である。アプリケーション662は、システムソフトウェアとアプリケーションソフトウェアの一方又は両方を含み、メモリー630及び/又はマスストレージ650に格納されたプログラムモジュール664とデータ666を通じてオペレーティングシステム660によるリソースの管理を活用して、1又は複数の動作を実施することが可能である。したがって、アプリケーション662は、それによって提供されるロジックに従って汎用コンピューター610を専門的なマシンに変化させることが可能である。
[0053] 特許請求の範囲に記載された主題の全て又は一部分は、開示された機能を実現すべくコンピューターを制御するためのソフトウェア、ファームウェア、ハードウェア、若しくはそれらの任意の組み合わせを作製する標準的なプログラミング及び/又はエンジニアリング手法を用いて、実施されることが可能である。限定ではなく例として、システム100又はその一部分は、アプリケーション662である、又はアプリケーション662の一部をなすことが可能であり、また、1又は複数のプロセッサー620によって実行された時にその機能が実現可能な、メモリー及び/又はマスストレージ650に格納された1又は複数のモジュール664及びデータ666を含むことが可能である。
[0054] 具体的な一実施態様によれば、プロセッサー620は、システムオンチップ(SOC)、又は、単一の集積回路基板上にハードウェアとソフトウェアの両方を含んだ、即ち言い換えるとその両方を統合した同様のアーキテクチャーに相当することが可能である。ここで、プロセッサー620は、数ある中でも、プロセッサー620及びメモリー630に少なくとも類似した、1又は複数のプロセッサーとメモリーを含むことが可能である。従来のプロセッサーは、最小限のハードウェアとソフトウェアを含み、外部ハードウェア及びソフトウェアに広く依拠している。対照的に、プロセッサーのSOC実装は、最小限のハードウェア及びソフトウェアで、即ち外部ハードウェア及びソフトウェアに依拠せず特定の機能を実現するハードウェアとソフトウェアをその中に埋め込んでいるので、よりパワフルである。例えば、システム100及び/又は関連機能が、SOCアーキテクチャーによるハードウェアの中に埋め込まれることが可能である。
[0055] コンピューター610はまた、システムバス640に通信可能に接続されコンピューター610との対話を容易化する1又は複数のインターフェースコンポーネント670も含んでいる。例として、インターフェースコンポーネント670は、ポート(例えば、シリアル、パラレル、PCMCIA、USB、FireWire…)、又はインターフェースカード(例えば、サウンド、ビデオ…)等であり得る。例示的な一実装では、インターフェースコンポーネント670は、ユーザーが1又は複数の入力デバイス(例えば、マウス、トラックボール、スタイラス、タッチパッド、キーボード、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナー、カメラ、他のコンピューター…といったようなポインティングデバイス)を通じてコンピューター610にコマンドと情報を入力することを可能にするユーザー入出力インターフェースとして実現されることが可能である。別の例示的な実装では、インターフェースコンポーネント670は、出力を数ある中でもディスプレイ(例えば、CRT、LCD、プラズマ…)、スピーカー、プリンター、及び/又は他のコンピューターへ供給する出力周辺機器インターフェースとして実現されることが可能である。更にまた、インターフェースコンポーネント670は、他のコンピューティングデバイス(不図示)との有線又は無線通信リンク等を介した通信を可能にするネットワークインターフェースとして実現されることが可能である。
[0056] 上述されてきたことは、特許請求の範囲に記載された主題の側面の例を含んでいる。特許請求の範囲に記載された主題を説明する目的で考えられるあらゆるコンポーネント又は方法論の組み合わせを記述することは、もちろん不可能であるが、当業者は、開示された主題の数多くの更なる組み合わせ及び変更が可能であることを認識するだろう。したがって、開示された主題は、添付された特許請求の範囲の趣旨及び範囲に入る全てのそのような改変、変更、及び変形を包含することを意図されている。

Claims (19)

  1. 互換性を容易化する方法であって、
    アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムを選択する選択ステップと、
    前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムに、ランタイムで前記アプリケーションを結合する結合ステップを含む、方法であって、
    前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムは、アプリケーションサービスを前記アプリケーションが使用するアドレス空間で実行し、それ以外のハードウェアサービスとユーザーサービスを実行するホストオペレーティングシステムの上で実行されるように構成されていることを特徴とする、方法
  2. 前記選択ステップが、前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから決定するステップを含む、請求項1に記載の方法。
  3. 前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから決定するステップが、前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから複数決定することを特徴とする、請求項2に記載の方法。
  4. 前記選択ステップが、前記ホストオペレーティングシステムよりも新しいバージョンのライブラリーオペレーティングシステムを選択することを特徴とする、請求項1〜3のいずれか一項に記載の方法。
  5. 前記選択ステップが、前記ホストオペレーティングシステムよりも古いバージョンのライブラリーオペレーティングシステムを選択することを特徴とする、請求項1〜3のいずれか一項に記載の方法。
  6. 前記ホストオペレーティングシステムと1又は複数の前記ライブラリーオペレーティングシステムがパッケージ化されていることを特徴とする、請求項1〜5のいずれか一項に記載の方法。
  7. 前記ライブラリーオペレーティングシステムを前記ホストオペレーティングシステムの更新プロセスの一部分として取得するステップを更に含む、請求項1〜6のいずれか一項に記載の方法。
  8. 前記ライブラリーオペレーティングシステムを前記ホストオペレーティングシステムの更新プロセスの一部分として更新するステップを更に含む、請求項1〜6のいずれか一項に記載の方法。
  9. 前記ホストオペレーティングシステムの第1のバージョンを第2のバージョンと交換するステップと、前記ホストオペレーティングシステムの前記第1のバージョンに結合されていた前記アプリケーションを、前記ホストオペレーティングシステムの前記第1のバージョンに対応するライブラリーオペレーティングシステムに結合するステップと、を更に含む、請求項1〜8のいずれか一項に記載の方法。
  10. 請求項1〜9のいずれか一項に記載の方法を実行するためのプログラム。
  11. 請求項1〜9のいずれか一項に記載の方法を実行するためのプログラムを記録した記録媒体。
  12. 互換性を容易化するシステムであって、
    メモリーに接続され、前記メモリーに格納されたコンピューター実行可能コンポーネントを実行するように構成されたプロセッサーを備え、
    前記コンピューター実行可能コンポーネントは、
    アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムを選択する選択コンポーネントと、
    前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムに、ランタイムで前記アプリケーションを結合する結合コンポーネントを含み、
    前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムは、アプリケーションサービスを前記アプリケーションが使用するアドレス空間で実行し、それ以外のハードウェアサービスとユーザーサービスを実行するホストオペレーティングシステムの上で実行されるように構成されていることを特徴とする、システム。
  13. 前記選択コンポーネントが、前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから決定することを特徴とする、請求項12に記載のシステム。
  14. 前記選択コンポーネントが、前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから決定することとは、前記アプリケーションに対して互換性を備えたライブラリーオペレーティングシステムをマニフェストファイルから複数決定することを特徴とする、請求項13に記載のシステム。
  15. 前記選択コンポーネントが、前記ホストオペレーティングシステムよりも新しいバージョンのライブラリーオペレーティングシステムを選択することを特徴とする、請求項12〜14のいずれか一項に記載のシステム。
  16. 前記選択コンポーネントが、前記ホストオペレーティングシステムよりも古いバージョンのライブラリーオペレーティングシステムを選択することを特徴とする、請求項12〜14のいずれか一項に記載のシステム。
  17. 前記ホストオペレーティングシステムと1又は複数の前記ライブラリーオペレーティングシステムがパッケージ化されていることを特徴とする、請求項12〜16のいずれか一項に記載のシステム。
  18. 前記ライブラリーオペレーティングシステムを前記ホストオペレーティングシステムの更新プロセスの一部分として取得する取得コンポーネントを更に含む、請求項12〜17のいずれか一項に記載のシステム。
  19. 前記ライブラリーオペレーティングシステムを前記ホストオペレーティングシステムの更新プロセスの一部分として更新する取得コンポーネントを更に含む、請求項12〜17のいずれか一項に記載のシステム。
JP2013556669A 2011-03-03 2012-03-03 ライブラリーオペレーティングシステムによるアプリケーションの互換性 Active JP6018590B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161449072P 2011-03-03 2011-03-03
US61/449,072 2011-03-03
US13/314,512 US9891939B2 (en) 2011-03-03 2011-12-08 Application compatibility with library operating systems
US13/314,512 2011-12-08
PCT/US2012/027635 WO2012119139A2 (en) 2011-03-03 2012-03-03 Application compatibility with library operating systems

Publications (3)

Publication Number Publication Date
JP2014510343A JP2014510343A (ja) 2014-04-24
JP2014510343A5 JP2014510343A5 (ja) 2015-03-19
JP6018590B2 true JP6018590B2 (ja) 2016-11-02

Family

ID=46754122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013556669A Active JP6018590B2 (ja) 2011-03-03 2012-03-03 ライブラリーオペレーティングシステムによるアプリケーションの互換性

Country Status (6)

Country Link
US (3) US9891939B2 (ja)
EP (1) EP2681654A4 (ja)
JP (1) JP6018590B2 (ja)
KR (1) KR101963912B1 (ja)
CN (1) CN103493011B (ja)
WO (1) WO2012119139A2 (ja)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8261342B2 (en) * 2008-08-20 2012-09-04 Reliant Security Payment card industry (PCI) compliant architecture and associated methodology of managing a service infrastructure
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US20120198436A1 (en) * 2011-01-27 2012-08-02 Preimesberger Lee A Compatible Operating System
US8938643B1 (en) * 2011-04-22 2015-01-20 Symantec Corporation Cloning using streaming restore
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
US20120278747A1 (en) * 2011-04-28 2012-11-01 Motorola Mobility, Inc. Method and apparatus for user interface in a system having two operating system environments
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US9009212B2 (en) * 2011-06-29 2015-04-14 Cisco Technology, Inc. Optimized transfer of applications between computing environments
US8909912B2 (en) * 2011-07-29 2014-12-09 Cisco Technology, Inc. Apparatus and method for configuring a target machine with captured operational state comprising a static machine profile and a dynamic machine state to continue operations of a source machine
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9389933B2 (en) 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US9513841B2 (en) * 2011-12-13 2016-12-06 Sony Corporation Information processing device, information processing method, program, and information storage medium for managing and reproducing program execution condition data
US9489184B2 (en) * 2011-12-30 2016-11-08 Oracle International Corporation Adaptive selection of programming language versions for compilation of software programs
US9015702B2 (en) * 2012-01-13 2015-04-21 Vasanth Bhat Determining compatibility of an application with different versions of an operating system
US9069607B1 (en) * 2012-01-31 2015-06-30 Vmware, Inc. Selective migration of virtualized applications and configuration settings thereof
US20130293573A1 (en) 2012-05-02 2013-11-07 Motorola Mobility, Inc. Method and Apparatus for Displaying Active Operating System Environment Data with a Plurality of Concurrent Operating System Environments
CN102707990B (zh) * 2012-05-14 2015-04-08 华为技术有限公司 基于容器的处理方法和装置
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
US9507612B1 (en) 2012-08-31 2016-11-29 United Services Automobile Association (Usaa) Managing dedicated and floating pool of virtual machines based on demand
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9166865B2 (en) * 2012-11-07 2015-10-20 International Business Machines Corporation Mobility operation resource allocation
GB2507779A (en) 2012-11-09 2014-05-14 Ibm Terminating a virtual machine in response to user inactivity in a cloud computing environment
US9195294B2 (en) 2012-11-13 2015-11-24 International Business Machines Corporation Cooperatively managing enforcement of energy related policies between virtual machine and application runtime
US9189619B2 (en) * 2012-11-13 2015-11-17 International Business Machines Corporation Runtime based application security and regulatory compliance in cloud environment
US10162873B2 (en) * 2012-12-21 2018-12-25 Red Hat, Inc. Synchronization of physical disks
US20140188977A1 (en) * 2012-12-28 2014-07-03 Futurewei Technologies, Inc. Appratus, method for deploying applications in a virtual desktop interface system
US10860303B2 (en) * 2013-04-24 2020-12-08 Nintendo Co., Ltd. Selective operating system patching/updating
WO2014204453A1 (en) * 2013-06-19 2014-12-24 Empire Technology Development, Llc Processor-optimized library loading for virtual machines
US9294282B1 (en) * 2013-07-01 2016-03-22 Amazon Technologies, Inc. Cryptographically verified repeatable virtualized computing
US9641592B2 (en) 2013-11-11 2017-05-02 Amazon Technologies, Inc. Location of actor resources
US9413830B2 (en) 2013-11-11 2016-08-09 Amazon Technologies, Inc. Application streaming service
US9582904B2 (en) 2013-11-11 2017-02-28 Amazon Technologies, Inc. Image composition based on remote object data
US9604139B2 (en) 2013-11-11 2017-03-28 Amazon Technologies, Inc. Service for generating graphics object data
US9805479B2 (en) * 2013-11-11 2017-10-31 Amazon Technologies, Inc. Session idle optimization for streaming server
US9634942B2 (en) 2013-11-11 2017-04-25 Amazon Technologies, Inc. Adaptive scene complexity based on service quality
US9946889B2 (en) * 2013-11-27 2018-04-17 Nakivo, Inc. Systems and methods for multi-tenant data protection application
US9448827B1 (en) * 2013-12-13 2016-09-20 Amazon Technologies, Inc. Stub domain for request servicing
WO2015126430A1 (en) * 2014-02-24 2015-08-27 Hewlett-Packard Development Company, L.P. Virtual network function management with deactivated virtual machines
US9202046B2 (en) 2014-03-03 2015-12-01 Bitdefender IPR Management Ltd. Systems and methods for executing arbitrary applications in secure environments
US20150264157A1 (en) * 2014-03-13 2015-09-17 Rockwell Automation Technologies, Inc. Industrial automation system web application performance enhancement system and method
US10120663B2 (en) * 2014-03-28 2018-11-06 Intel Corporation Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture
US20150278512A1 (en) * 2014-03-28 2015-10-01 Intel Corporation Virtualization based intra-block workload isolation
US9430268B2 (en) * 2014-05-02 2016-08-30 Cavium, Inc. Systems and methods for supporting migration of virtual machines accessing remote storage devices over network via NVMe controllers
US9348625B2 (en) 2014-05-23 2016-05-24 Google Inc. Application access to native and bundled libraries
US20160036923A1 (en) * 2014-08-03 2016-02-04 Microsoft Corporation Efficient Migration of Application State Information
US9594591B2 (en) 2014-09-26 2017-03-14 International Business Machines Corporation Dynamic relocation of applications in a cloud application service model
US10574552B2 (en) * 2014-10-03 2020-02-25 British Telecommunications Public Limited Company Operation of data network
US9329907B1 (en) * 2014-12-18 2016-05-03 International Business Machines Corporation Automated exploitation of virtual machine resource modifications
FR3030827B1 (fr) * 2014-12-19 2017-01-27 Stmicroelectronics (Grenoble 2) Sas Procede et dispositif de traitement securise de donnees cryptees
US9760113B2 (en) 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
US20160285958A1 (en) * 2015-03-27 2016-09-29 Intel Corporation Application container for live migration of mobile applications
US9563446B2 (en) 2015-04-30 2017-02-07 Microsoft Technology Licensing, Llc Binary file generation
US9971622B2 (en) * 2015-06-25 2018-05-15 Intel Corporation Technologies for application migration using lightweight virtualization
US9996377B2 (en) 2015-06-30 2018-06-12 International Business Machines Corporation Virtual machine migration via a mobile device
US9912400B1 (en) * 2015-08-31 2018-03-06 Rockwell Collins, Inc. Concurrent mobile user objective system streaming
GB201516227D0 (en) * 2015-09-14 2015-10-28 Horne Stephen And Hemmer Fabian And Von Oven Peter Running applications on a computer device
US10530892B2 (en) 2015-09-28 2020-01-07 Microsoft Technology Licensing, Llc Processing request for multi-versioned service
US10310893B2 (en) 2016-04-05 2019-06-04 Microsoft Technology Licensing, Llc Managing container pause and resume
US10512053B2 (en) 2016-05-10 2019-12-17 Servicenow, Inc. System and method for selectively hibernating and restarting a node of an application instance
US10387435B2 (en) 2016-07-27 2019-08-20 Microsoft Technology Licensing, Llc Computer application query suggestions
US10339148B2 (en) 2016-07-27 2019-07-02 Microsoft Technology Licensing, Llc Cross-platform computer application query categories
US10346457B2 (en) 2016-07-27 2019-07-09 Microsoft Technology Licensing, Llc Platform support clusters from computer application metadata
CN107797807B (zh) * 2016-08-29 2021-04-06 阿里巴巴集团控股有限公司 生成容器的方法、装置、终端、服务器与系统
CN107885748B (zh) * 2016-09-30 2021-10-26 华为技术有限公司 虚拟化实例的文件分层访问方法和装置
US10333985B2 (en) 2017-01-09 2019-06-25 Microsoft Technology Licensing, Llc Distribution and management of services in virtual environments
JP2018116462A (ja) * 2017-01-18 2018-07-26 株式会社東芝 仮想環境実行装置及びプログラム
CN108345496B (zh) * 2017-01-23 2020-12-15 华为技术有限公司 一种运行应用程序的方法及装置
US11281625B1 (en) * 2017-06-05 2022-03-22 Amazon Technologies, Inc. Resource management service
US11347295B2 (en) * 2017-07-19 2022-05-31 Citrix Systems, Inc. Virtual machine power management
US10401816B2 (en) * 2017-07-20 2019-09-03 Honeywell International Inc. Legacy control functions in newgen controllers alongside newgen control functions
CN108008953B (zh) * 2017-12-01 2021-05-07 麒麟软件有限公司 一种动态适配操作系统主题风格的Qt图形程序设计方法
US11474849B2 (en) * 2018-01-29 2022-10-18 Walmart Apollo, Llc Distribution of applications among machines in a cloud
US10540175B2 (en) * 2018-03-05 2020-01-21 Appzero Software Corp. Up-level applications to a new OS
EP3776194A4 (en) * 2018-04-11 2022-06-01 Cornell University METHOD AND SYSTEM FOR IMPROVING THE PERFORMANCE AND ISOLATION OF A SOFTWARE CONTAINER
US10606632B2 (en) * 2018-05-15 2020-03-31 Vmware, Inc. Preventing interruption during virtual machine reboot
US11218364B2 (en) * 2018-06-25 2022-01-04 Amazon Technologies, Inc. Network-accessible computing service for micro virtual machines
US10929162B2 (en) * 2018-07-27 2021-02-23 Futurewei Technologies, Inc. Virtual machine container for applications
US10963282B2 (en) 2018-12-11 2021-03-30 Amazon Technologies, Inc. Computing service with configurable virtualization control levels and accelerated launches
US10949239B2 (en) 2018-12-14 2021-03-16 Hewlett Packard Enterprise Development Lp Application deployment in a container management system
KR102099118B1 (ko) * 2019-04-29 2020-04-09 래블업(주) 사용자가 요청한 다수개의 라이브러리를 탑재한 세션 컨테이너 제공방법
US11010212B2 (en) * 2019-06-13 2021-05-18 Microsoft Technology Licensing, Llc System and method for supporting and negotiating multiple API versions across multiple products
KR102100323B1 (ko) * 2019-11-01 2020-04-13 주식회사 엔쓰리엔클라우드 머신러닝 플랫폼 서비스 방법 및 서버
US11103780B2 (en) * 2019-11-06 2021-08-31 Microsoft Technology Licensing, Llc Saving and restoring virtual machine states and hardware states for application content
KR102211655B1 (ko) 2019-12-26 2021-02-04 한양대학교 에리카산학협력단 프록시 서버 및 이를 이용한 웹 오브젝트 예측 방법
US10983782B1 (en) * 2020-01-31 2021-04-20 Sap Se User interface upgrade analyzer
CN113297566B (zh) * 2020-05-15 2024-04-02 阿里巴巴集团控股有限公司 沙箱实现方法、装置、设备和存储介质
US11809910B2 (en) 2020-10-14 2023-11-07 Bank Of America Corporation System and method for dynamically resizing computational infrastructure to accommodate unexpected demands
US11550553B2 (en) * 2020-11-23 2023-01-10 Red Hat, Inc. Usage-based software library decomposition
US11853783B1 (en) * 2021-03-29 2023-12-26 Amazon Technologies, Inc. Identifying hosts for dynamically enabling specified features when resuming operation of a virtual compute instance
US11561787B2 (en) * 2021-05-13 2023-01-24 International Business Machines Corporation Application invocation on specified operating system version
US20230076488A1 (en) * 2021-09-03 2023-03-09 Microsoft Technology Licensing, Llc Machine-learning-based replenishment of interruptible workloads in cloud environment

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287259B2 (en) 2000-04-24 2007-10-23 Microsoft Corporation Isolating assembly versions for binding to application programs
US6981268B2 (en) 2001-12-05 2005-12-27 Microsoft Corporation System and method for persisting and resolving application assembly binds
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US6954852B2 (en) 2002-04-18 2005-10-11 Ardence, Inc. System for and method of network booting of an operating system to a client computer using hibernation
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7774762B2 (en) * 2003-09-15 2010-08-10 Trigence Corp. System including run-time software to enable a software application to execute on an incompatible computer platform
US20080222160A1 (en) * 2003-09-15 2008-09-11 Macdonald Craig Method and system for providing a program for execution without requiring installation
US8060856B2 (en) * 2004-11-18 2011-11-15 Aol Inc. Native objects accessible by platform neutral API
US9450966B2 (en) * 2004-11-29 2016-09-20 Kip Sign P1 Lp Method and apparatus for lifecycle integrity verification of virtual machines
US7451435B2 (en) 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
US7721138B1 (en) 2004-12-28 2010-05-18 Acronis Inc. System and method for on-the-fly migration of server from backup
US7685593B2 (en) 2005-05-12 2010-03-23 Microsoft Corporation Systems and methods for supporting multiple gaming console emulation environments
US20070283324A1 (en) 2005-08-30 2007-12-06 Geisinger Nile J System and method for creating programs that comprise several execution layers
US7523323B2 (en) 2005-09-15 2009-04-21 Intel Corporation Method and apparatus for quick resumption
US7627728B1 (en) 2005-12-29 2009-12-01 Symantec Operating Corporation System and method for efficient generation of application snapshots
US8104041B2 (en) 2006-04-24 2012-01-24 Hewlett-Packard Development Company, L.P. Computer workload redistribution based on prediction from analysis of local resource utilization chronology data
US20080127348A1 (en) * 2006-08-31 2008-05-29 Kenneth Largman Network computer system and method using thin user client and virtual machine to provide immunity to hacking, viruses and spy ware
US20080127182A1 (en) * 2006-11-29 2008-05-29 Newport William T Managing Memory Pages During Virtual Machine Migration
US8037039B2 (en) 2007-04-20 2011-10-11 Microsoft Corporation Runtime class database operation
US20090210871A1 (en) 2008-02-20 2009-08-20 Zak Dechovich System and method for software application migration
US8359593B2 (en) 2008-04-21 2013-01-22 Vmware, Inc. Computer machine migration of file system images using a redo-log file
US8195774B2 (en) * 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
WO2009147468A2 (en) 2008-05-27 2009-12-10 Telefonaktiebolaget L M Ericsson (Publ) System and method for backwards compatible multi-access with proxy mobile internet protocol
US7886183B2 (en) * 2008-08-07 2011-02-08 Symantec Operating Corporation Providing fault tolerant storage system to a cluster
CN101655798B (zh) 2008-08-18 2013-03-27 联想(北京)有限公司 一种虚拟机环境中应用程序部署和运行的装置及方法
JP4966942B2 (ja) * 2008-10-01 2012-07-04 株式会社日立製作所 仮想pc管理方法、仮想pc管理システム、および仮想pc管理プログラム
US8291261B2 (en) 2008-11-05 2012-10-16 Vulcan Technologies Llc Lightweight application-level runtime state save-and-restore utility
US8214829B2 (en) 2009-01-15 2012-07-03 International Business Machines Corporation Techniques for placing applications in heterogeneous virtualized systems while minimizing power and migration cost
US8019861B2 (en) * 2009-01-29 2011-09-13 Vmware, Inc. Speculative virtual machine resource scheduling
US10203993B2 (en) 2009-02-18 2019-02-12 International Business Machines Corporation Method and system for continuous optimization of data centers by combining server and storage virtualization
JP5289153B2 (ja) 2009-04-14 2013-09-11 キヤノン株式会社 情報処理装置及びその制御方法、並びにコンピュータプログラム
US8533151B2 (en) * 2009-05-26 2013-09-10 Microsoft Corporation Generating a local copy of a virtualized application package from a local installation
US9483284B2 (en) * 2011-02-25 2016-11-01 Red Hat, Inc. Version compatibility determination

Also Published As

Publication number Publication date
WO2012119139A3 (en) 2013-01-03
WO2012119139A2 (en) 2012-09-07
US9891939B2 (en) 2018-02-13
US9606822B2 (en) 2017-03-28
US20120227038A1 (en) 2012-09-06
KR20140046402A (ko) 2014-04-18
KR101963912B1 (ko) 2019-03-29
EP2681654A4 (en) 2014-11-26
US20120227061A1 (en) 2012-09-06
US8875160B2 (en) 2014-10-28
EP2681654A2 (en) 2014-01-08
CN103493011B (zh) 2016-12-07
CN103493011A (zh) 2014-01-01
JP2014510343A (ja) 2014-04-24
US20120227058A1 (en) 2012-09-06

Similar Documents

Publication Publication Date Title
JP6018590B2 (ja) ライブラリーオペレーティングシステムによるアプリケーションの互換性
CN106227579B (zh) 一种Docker容器构建方法及Docker管理控制台
US8839228B2 (en) System and method for updating an offline virtual machine
KR102084816B1 (ko) Bpram을 사용한 소프트웨어 애플리케이션들의 레이아웃 및 실행
JP5007046B2 (ja) コンポーネントベースのソフトウェア・プロダクトの保守
JP6259459B2 (ja) Bpramを使用したオペレーティング・システムのレイアウトおよび実行
CN102207896A (zh) 虚拟机崩溃文件生成技术
JPWO2011142095A1 (ja) 情報処理装置および情報処理方法
KR20110106716A (ko) 프로그램 컴파일러, 설치 장치, 및 설치 방법
RU2635891C2 (ru) Механизм инсталляции и формат пакета для распараллеливаемых надежных инсталляций
KR101212273B1 (ko) 가상화 기술 기반의 고속 부팅 장치 및 방법
US11030047B2 (en) Information handling system and method to restore system firmware to a selected restore point
CN111782335A (zh) 通过进程内操作系统的扩展应用机制
US7725882B1 (en) System and method for profiling processes in a computing system
US20120222023A1 (en) Automatic runtime dependency lookup
Okafor et al. Eliminating the operating system via the bare machine computing paradigm
TWI549056B (zh) 以函式庫作業系統達成之應用程式相容性
JP6099106B2 (ja) 少なくとも一つのデータキャリアを提供するための方法、コンピュータシステム、および、メモリデバイス
US20230350755A1 (en) Coordinated operating system rollback
JP2011243072A (ja) ソフトウェア有効期限変更方法及び装置
Kumar et al. Porting and BSP Customization of Linux on ARM Platform
KR20110052135A (ko) 응용 파일 시스템을 이용한 단일 실행 파일 기반의 이동형 소프트웨어 및 이의 실행 방법
TW201115468A (en) An automatic install method of the Linux

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150130

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160309

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160804

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160902

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160930

R150 Certificate of patent or registration of utility model

Ref document number: 6018590

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250