JP6506412B2 - アプリケーションロード方法及び装置 - Google Patents

アプリケーションロード方法及び装置 Download PDF

Info

Publication number
JP6506412B2
JP6506412B2 JP2017552148A JP2017552148A JP6506412B2 JP 6506412 B2 JP6506412 B2 JP 6506412B2 JP 2017552148 A JP2017552148 A JP 2017552148A JP 2017552148 A JP2017552148 A JP 2017552148A JP 6506412 B2 JP6506412 B2 JP 6506412B2
Authority
JP
Japan
Prior art keywords
data segment
memory
address
storage space
global variable
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
JP2017552148A
Other languages
English (en)
Other versions
JP2018511132A (ja
Inventor
パン、ハイジュン
ジョウ、ファ
ドゥアン、リアン
ワン、チンシン
チャン、グオファ
ス、ハオ
Original Assignee
バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド
バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド
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 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド, バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド filed Critical バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド
Publication of JP2018511132A publication Critical patent/JP2018511132A/ja
Application granted granted Critical
Publication of JP6506412B2 publication Critical patent/JP6506412B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • 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/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

[優先権主張]
本願は2015年12月25日に提出した、出願番号が201510994261.4である中国特許出願に基づく優先権を主張し、当該出願の全文を引用により本願に組み込む。
[技術分野]
本願はコンピュータ分野に関し、具体的にアプリケーション分野に関し、特にアプリケーションロード方法及び装置に関する。
組み込みシステムにおいて、アプリケーションをロードする時に、一般的に、フラッシュメモリに実行可能ファイルの二進法コードを記憶し、フラッシュメモリに命令を直接実行する方式を用いる。アプリケーションをロードする過程で、アプリケーションのアセンブラコードにおけるシンボルを再配置(relocate)して、シンボルに絶対アドレスを有させ、アプリケーションをロードする必要がある。
しかしながら、上記方式でアプリケーションをロードする時に、シンボルに対する再配置ごとに当該シンボルの所在するメモリの記憶ブロック全体に対して消去操作を行う必要があり、さらにシステムオーバーヘッド及びフラッシュメモリの損耗を大幅に増加する。
本願はアプリケーションロード方法及び装置を提供し、上記背景技術部分に存在する技術問題を解決する。
第1の態様では、本願はアプリケーションロード方法を提供し、この方法は、プログラマブル読み取り専用メモリにおいて、アプリケーションの実行可能ファイルにおける、アプリケーションがロードされる時に、前記プログラマブル読み取り専用メモリにロードされて実行されるデータセグメントである所定のデータセグメントを記憶するための記憶空間を選択するステップと、前記所定のデータセグメントをメモリにコピーし、且つ前記記憶空間の開始アドレスに基づいて前記所定のデータセグメントを再配置するステップと、再配置された前記所定のデータセグメントを前記記憶空間にコピーして、アプリケーションをロードするステップと、前記プログラマブル読み取り専用メモリに記憶された、再配置後の前記所定のデータセグメントを開始アドレスによって検索し、前記所定のデータセグメントをロードするために、前記プログラマブル読み取り専用メモリに前記記憶空間の開始アドレスを記憶するステップと、を含む
第2の態様では、本願はアプリケーションロード装置を提供し、この装置は、プログラマブル読み取り専用メモリにおいて、アプリケーションの実行可能ファイルにおける、アプリケーションがロードされる時に、前記プログラマブル読み取り専用メモリにロードされて実行されるデータセグメントである所定のデータセグメントを記憶するための記憶空間を選択する選択ユニットと、前記所定のデータセグメントをメモリにコピーし、且つ前記記憶空間の開始アドレスに基づいて前記所定のデータセグメントを再配置する再配置ユニットと、再配置された前記所定のデータセグメントを前記記憶空間にコピーして、アプリケーションをロードするロードユニットと、前記プログラマブル読み取り専用メモリに記憶された、再配置後の前記所定のデータセグメントを開始アドレスによって検索し、前記所定のデータセグメントをロードするために、前記プログラマブル読み取り専用メモリに前記記憶空間の開始アドレスを記憶する記憶ユニットと、を含む
本願の提供するアプリケーションロード方法及び装置は、プログラマブル読み取り専用メモリにおいて、アプリケーションの実行可能ファイルにおける所定のデータセグメントを記憶するための記憶空間を選択するステップと、前記所定のデータセグメントをメモリにコピーし、且つ前記記憶空間の開始アドレスに基づいて前記所定のデータセグメントを再配置するステップと、再配置された前記所定のデータセグメントを前記記憶空間にコピーするステップと、によって、メモリに実行可能ファイルのコード部分を再配置することを実現し、その後に、再配置後のコード部分をプログラマブル読み取り専用メモリに書き戻し、それにより、記憶ブロックに対する1回の消去操作だけでコード部分の再配置を完了することができ、アプリケーションロード過程のシステムオーバーヘッドを減少させとともに、プログラマブル読み取り専用メモリの損耗を低下させる。
以下の図面を参照しながら行った非限定的な実施例についての詳細な説明に基づいて、本願の他の特徴、目的や利点はより明瞭になる。
本願を適用できる例示的なシステムアーキテクチャー図である。 本願に係るアプリケーションロード方法の一実施例のフローチャートを示す。 本実施例におけるアプリケーションをロードする一例示的原理図を示す。 本願のアプリケーションロード方法の一例示的フローチャートを示す。 本願に係るアプリケーションロード装置の一実施例の構造模式図を示す。 本願の実施例を実現するための端末装置又はサーバに適用されるコンピュータシステムの構造模式図である。
以下、図面及び実施例を参照しながら本発明をより詳細に説明する。ここで説明する具体的な実施例は、かかる発明を説明するものに過ぎず、当該発明を限定するものではないと理解すべきである。ただし、説明の便宜上、図面に発明に関連する部分のみが示されている。
なお、衝突しない場合、本願の実施例及び実施例の特徴を相互に組み合せてもよい。以下、図面及び実施例を参照しながら本願を詳細に説明する。
図1は本願の情報抽出方法又は情報抽出装置を適用できる実施例の例示的なシステムアーキテクチャー100を示す。
図1に示されるように、システムアーキテクチャー100は、端末装置101、102、103、ネットワーク104及びサーバ105を備えてもい。ネットワーク104は端末装置101、102、103とサーバ105の間に通信リンクを提供する媒体に用いられている。ネットワーク104は様々な接続タイプ、例えば有線、無線通信リンク又は光ファイバーケーブル等を含んでもよい。
ユーザは端末装置101、102、103を用いてネットワーク104を介してサーバ105とインタラクションして、それによりメッセージなどを送受信することができる。端末装置101、102、103に、様々な通信クライアントアプリケーション、例えばネットワークセキュリティアプリケーション、インスタントメッセージングツール等がインストールされてもよい。
端末装置101、102、103はディスプレーを有し且つネットワーク通信をサポートする各種の電子機器であってもよく、スマートフォン、タブレットPC、e−Bookリーダー、MP3プレーヤー (Moving Picture Experts Group Audio Layer III、ムービング・ピクチャー・エクスパーツ・グループオーディオレイヤーIII)、MP4プレーヤー(Moving Picture Experts Group Audio LayerIV、ムービング・ピクチャー・エクスパーツ・グループオーディオレイヤーIV)、ラップトップ型コンピュータ及びデスクトップコンピュータなどを含むが、それらに限定されるものではない。
サーバ105は各種のサービスを提供するサーバ、例えば端末装置101、102、103におけるアプリケーションにデータサポートを提供するサーバであってもよい。サーバ105は端末装置101、102、103から送信される検索要求を受信して検索要求を処理することができ、処理結果(アプリケーションの実行可能ファイルの再配置情報)を端末装置にフィードバックする。
なお、図1における端末装置、ネットワーク及びサーバの数は例示的なものに過ぎない。必要に応じて、端末装置、ネットワーク及びサーバの数が任意であってもよい。
本願に係るアプリケーションロード方法の一実施例のプロセス200を示す図2を参照する。本実施例で提供されるアプリケーションロード方法は図1の端末装置101、102、103によって実行されることができる。当該方法は以下のステップを含む。
ステップ201:プログラマブル読み取り専用メモリにおいてアプリケーションの実行可能ファイルにおける所定のデータセグメントを記憶するための記憶空間を選択する。
本実施例では、アプリケーションの実行可能ファイルはプログラマブル読み取り専用メモリに記憶されることができる。実行可能ファイルが複数のデータセグメントを含み、アプリケーションをロードする時に、即ち、アプリケーションの実行可能ファイルをロードする時に、所定のデータセグメントは、プログラマブル読み取り専用メモリにロードされて実行されるデータセグメントである。本実施例では、プログラマブル読み取り専用メモリにおいて所定のデータセグメントを記憶するための記憶空間を選択することができ、当該記憶空間は再配置された所定のデータセグメントを記憶することに用いられる。
本実施例のいくつかの選択可能な実施形態では、プログラマブル読み取り専用メモリはフラッシュメモリである。本実施例では、アプリケーションの実行可能ファイルはフラッシュメモリに記憶されることができ、フラッシュメモリにおいて再配置された所定のデータセグメントを記憶するための記憶空間を予め選択することができる。
ステップ202:所定のデータセグメントをメモリにコピーし、且つ記憶空間の開始アドレスに基づいて所定のデータセグメントを再配置する。
本実施例では、アプリケーションをロードする時に、まず、所定のデータセグメントをメモリにコピーすることができ、次に、プログラマブル読み取り専用メモリにおいて予め選択された記憶空間の開始アドレスに基づいて当該所定のデータセグメントを再配置し、即ち、所定のデータセグメントにおけるシンボルのロードアドレスを確定することができる。
以下、まずアセンブラ命令jmp exp及びexp:pushを例として、再配置の原理を説明する。アセンブラ命令exp:pushはシンボルexpに対応するアドレスにプッシュ命令(即ちpush命令)が記憶されていることを示す。アセンブラ命令jmp expの作用はシンボルexpに対応するアドレスにジャンプし、当該アドレスにおけるプッシュ命令を実行することである。仮にシンボルexpのコンパイル時のコンパイルアドレスが1000hであるとすると、アセンブラ命令をコンパイルした後に、jmp expがjmp 1000hに変換される。アプリケーションをロードする時に、アセンブラ命令をコンパイルする時にアドレス0を開始アドレスとして統一的に用いてコンパイルし、ロード時に任意の位置にロードされて実行する可能性があるため、シンボルを再配置し、即ち、アセンブラ命令におけるシンボルに対応するロードアドレス(絶対アドレスとも呼ばれる)を改めて確定し、且つアセンブラ命令におけるシンボル(即ちexpシンボル)に対応するアドレスを確定されたロードアドレスに修正する必要があり、それにより、当該命令を実行する。
本実施例のいくつかの選択可能な実施形態では、実行可能ファイルはELFファイルであり、所定のデータセグメントはマシン命令データセグメントと、読み取り専用データデータセグメントとを含み、記憶空間の開始アドレスに基づいて所定のデータセグメントを再配置するステップには、ELFファイルのマシン命令アドレスオフセットデータセグメントにおいてマシン命令データセグメントにおけるマシン命令のオペランドに対応するアドレスオフセット量を検索するステップと、開始アドレス及びアドレスオフセット量に基づいて、オペランドに対応するロードアドレスを計算して、マシン命令データセグメントを再配置するステップと、ELFファイルの読み取り専用データアドレスオフセットデータセグメントにおいて読み取り専用データデータセグメントにおける読み取り専用データに対応するアドレスオフセット量を検索するステップと、開始アドレス及びアドレスオフセット量に基づいて、読み取り専用データに対応するロードアドレスを計算して、読み取り専用データデータセグメントを再配置するステップと、を含む。
本実施例では、アプリケーションの組み込み機器(例えばモノのインターネット機器)でのロードをサポートするために、実行可能ファイルは再配置可能なファイル形式であるELF形式のファイル(ELFファイルと略称)であってもよい。まず、ELFファイルの構成を説明する。ELFファイルにおいて、データセグメント(section)でファイルの内容を記述する。ELFファイルにおいて、データがコンパイル済みのアプリケーションのマシンコードであるマシン命令データセグメント(.text)と、データが読み取り専用データである読み取り専用データデータセグメント(.rodata)と、データが初期化済みのグローバル変数である初期化済みのグローバル変数データセグメント(.data)と、未初期化のグローバル変数データセグメント(.bss)と、を含む。アプリケーションの実行可能ファイルはELFファイルである場合、アプリケーションをロードする時に、即ち、アプリケーションのELFファイルをロードする時に、ELFファイルにおけるマシン命令データセグメント(.text)及び読み取り専用データデータセグメント(.rodata)がフラッシュメモリにロードされることができ、ELFファイルにおける初期化済みのグローバル変数データセグメント(.data)及び未初期化のグローバル変数データセグメント(.bss)がメモリにロードされることができる。
本実施例では、マシン命令データセグメント(.text)と読み取り専用データデータセグメント(.rodata)を総称してコード部分(code)ということができる。初期化済みのグローバル変数データセグメント(.data)と未初期化のグローバル変数データセグメント(.bss)を総称してデータ部分(data)ということができる。ELFファイルをロードする時に、コード部分(code)とデータ部分(data)を再配置する必要があり、即ち、ELFファイルにおけるコード部分(code)とデータ部分(data)のうちのシンボルのロードアドレスを計算する必要がある。コード部分(code)とデータ部分(data)を再配置する過程において、ELFファイルにおけるマシン命令アドレスオフセットデータセグメント(.rel.text)、読み取り専用データアドレスオフセットデータセグメント(.rel.rodata)、初期化済みのグローバル変数アドレスオフセットデータセグメント(.rel.data)を利用して、コード部分とデータ部分を再配置することができる。
本実施例のいくつかの選択可能な実施形態では、ELFファイルにおける未初期化のグローバル変数データセグメント及び初期化済みのグローバル変数データセグメントをメモリにコピーするステップと、未初期化のグローバル変数データセグメントに対応する記憶空間の記憶値を0として設定するステップと、ELFファイルの初期化済みのグローバル変数アドレスオフセットデータセグメントから初期化済みのグローバル変数データセグメントにおける初期化済みのグローバル変数に対応するアドレスオフセット量を検索するステップと、初期化済みのグローバル変数データセグメントのメモリにおける開始アドレス及びアドレスオフセット量に基づいて、初期化済みのグローバル変数のロードアドレスを計算して、初期化済みのグローバル変数データセグメントを再配置するステップと、をさらに含む。
以下、プログラマブル読み取り専用メモリがフラッシュメモリであることを例として、それぞれELFファイルにおけるコード部分(code)及びデータ部分(data)の再配置過程を説明する。本実施例では、以下の方式でELFファイルにおけるコード部分(code)を再配置することができる。まず、フラッシュメモリにおいてコード部分(code)、即ちマシン命令データセグメント(.text)及び読み取り専用データデータセグメント(.rodata)にコード部分(code)が占用する記憶空間の大きさを有する記憶空間を予め割り当て、且つ当該記憶空間の開始アドレスを記録する。その後に、メモリに上記記憶空間の大きさと等しい記憶空間を割り当て、マシン命令データセグメント(.text)及び読み取り専用データデータセグメント(.rodata)をメモリにコピーする。メモリにおいてマシン命令データセグメント(.text)を再配置する時に、マシン命令アドレスオフセットデータセグメント(.rel.text)からマシン命令データセグメントにおけるマシン命令のオペランド、即ち命令に引用されるシンボルに対応するアドレスオフセット量を検索し、上記開始アドレス及びアドレスオフセット量に基づいて、オペランドに対応するロードアドレスを計算し、それにより、命令におけるオペランドのロードアドレス、即ち命令に引用されるシンボルに対応するロードアドレスを算出する。マシン命令における全てのシンボルに対応するロードアドレスを算出した後に、マシン命令データセグメントの再配置を完了する。メモリにおいて読み取り専用データデータセグメント(.rodata)を再配置する時に、読み取り専用データアドレスオフセットデータセグメント(.rel.rodata)から読み取り専用データデータセグメントの読み取り専用データに対応するアドレスオフセット量を検索し、開始アドレス及びアドレスオフセット量に基づいて、読み取り専用データに対応するロードアドレスを計算して、読み取り専用データデータセグメントを再配置することができる。
本実施例では、以下の方式でELFファイルにおけるデータ部分(data)を再配置することができる。メモリにおいて初期化済みのグローバル変数データセグメント(.data)と未初期化のグローバル変数データセグメント(.bss)の2つのデータセグメントが占用する記憶空間の大きさを有する記憶空間を割り当て、初期化済みのグローバル変数データセグメント(.data)及び未初期化のグローバル変数データセグメント(.bss)を割り当てられたメモリにコピーする。未初期化のグローバル変数データセグメント(.bss)が占用するメモリにおける記憶空間のうちの数値を全部0に初期化する。その後に、初期化済みのグローバル変数アドレスオフセットデータセグメント(.rel.data)から初期化済みのグローバル変数データセグメントにおける初期化済みのグローバル変数に対応するアドレスオフセット量を検索し、初期化済みのグローバル変数データセグメントのメモリにおける開始アドレス及びアドレスオフセット量に基づいて、初期化済みのグローバル変数のロードアドレスを計算し、それにより、初期化済みのグローバル変数データセグメント(.data)を再配置する。
ステップ203:再配置された所定のデータセグメントを記憶空間にコピーして、アプリケーションをロードする。
本実施例では、メモリに所定のデータセグメント(例えばマシン命令データセグメント、読み取り専用データデータセグメント)の再配置を完了した後に、プログラマブル読み取り専用メモリ(例えばフラッシュメモリ)に予め選択された、再配置後の所定のデータセグメントを記憶するための記憶空間に再配置された所定のデータセグメントをコピーすることができ、それにより、再配置された所定のデータセグメントがプログラマブル読み取り専用メモリにロードされ、同時に、メモリにおける初期化済みのグローバル変数データセグメント(.data)及び未初期化のグローバル変数データセグメント(.bss)を再配置してからロードすることにより、アプリケーションのロードを完了することができる。
本実施例のいくつかの選択可能な実施形態では、再配置された所定のデータセグメントを記憶空間にコピーした後に、さらに、プログラマブル読み取り専用メモリに記憶空間の開始アドレスを記憶することにより、プログラマブル読み取り専用メモリに記憶された、再配置後の所定のデータセグメントを開始アドレスによって検索し、所定のデータセグメントをロードするステップをさらに含む。
本実施例では、再配置過程でELFファイルにおける各データセグメントのELFファイルでのオフセット、大きさを同時に記録することもでき、その後に、各データセグメントのELFファイルでのオフセット、大きさと、再配置されたELFのコード部分(code)のフラッシュメモリでの開始アドレス及びELFファイルの名称とともにファイル形式でフラッシュメモリに記憶することができ、当該ファイルを再配置情報ファイルと称することができる。それにより、アプリケーションを再びロードする時に、アプリケーションのELFファイルの名称によって、再配置情報ファイルを検索する。その後に、再配置情報ファイルに記録されたデータ部分(data)、即ち初期化済みのグローバル変数データセグメント(.data)及び未初期化のグローバル変数データセグメント(.bss)のELFファイルでのオフセット及び大きさに基づいて、ELFファイルにおけるデータ部分(data)のうちのデータを直接読み取って、データ部分(data)を再配置してロードすることができる。
図3は、本実施例におけるアプリケーションをロードする一例示的原理図を示す。図3において、フラッシュメモリに記憶されているELFファイルにおけるマシン命令データセグメント(.text)、マシン命令アドレスオフセットデータセグメント(.rel.text)、読み取り専用データデータセグメント(.rodata)、初期化済みのグローバル変数データセグメント(.data)、初期化済みのグローバル変数アドレスオフセットデータセグメント(.rel.data)、未初期化のグローバル変数データセグメント(.bss)を示す。マシン命令データセグメント(.text)、読み取り専用データデータセグメント(.rodata)、初期化済みのグローバル変数データセグメント(.data)、未初期化のグローバル変数データセグメント(.bss)はまずメモリにコピーされ、同時に、フラッシュメモリにおいて再配置されたマシン命令データセグメント(.text)、読み取り専用データデータセグメント(.rodata)を記憶するための記憶空間を選択する。当該記憶空間は現在で所定のデータセグメントを記憶するフラッシュメモリの記憶空間と異なり、当該記憶空間の役割は、再配置された所定のデータセグメントを記憶することである。その後に、メモリにおいて、当該記憶空間の開始アドレスに基づいて、マシン命令アドレスオフセットデータセグメント(.rel.text)及び読み取り専用データアドレスオフセットデータセグメント(.rel.rodata)を参照してマシン命令データセグメント(.text)、読み取り専用データデータセグメント(.rodata)を再配置し、最後に、1回のコピーによってフラッシュメモリに選択された再配置後のマシン命令データセグメント(.text)、読み取り専用データデータセグメント(.rodata)を記憶するための記憶空間に書き戻す。同時に、未初期化のグローバル変数データセグメント.bssを0に初期化し、且つ、初期化済みのグローバル変数アドレスオフセットデータセグメント(.rel.data)を参照して初期化済みのグローバル変数データセグメント(.data)を再配置する。
図4は、本願のアプリケーションロード方法の一例示的フローチャートを示す。以下のステップを含む。
ステップ401:システムはアプリケーションのロードを開始する。
ステップ402:フラッシュメモリにコード部分が占用する記憶空間の大きさを有する記憶空間を予め割り当てる。
ステップ403:メモリにおいてコード部分に同じ大きさのメモリを割り当てる。
ステップ404:メモリにおいて、再配置セグメント及びコードセグメントのフラッシュメモリでの予め割り当てられた記憶空間の開始アドレスを利用してコード部分を再配置する。再配置セグメントは、マシン命令アドレスオフセットデータセグメント、読み取り専用データアドレスオフセットデータセグメントを含む。
ステップ405:再配置されたコード部分をフラッシュメモリにおける予め割り当てられた記憶空間にコピーする。
ステップ406:メモリにおいてデータ部分に必要な大きさのメモリを割り当てる。
ステップ407:再配置情報、アプリケーション名称、再配置コードセグメントのフラッシュメモリでのアドレスをフラッシュメモリに記憶し、再配置情報ファイルと命名する。再配置情報は、フラッシュメモリに予め割り当てられた記憶空間の開始アドレスを含む。
以下、プログラマブル読み取り専用メモリがフラッシュメモリであることを例として、本実施例のアプリケーションのロード方式と従来技術の区別を説明する。従来技術では、アプリケーションのコード部分(code)を再配置する過程で、シンボルに対する再配置ごとにシンボルの所在するフラッシュメモリにおける記憶ブロックに対して消去操作を行う必要があるため、システムオーバーヘッド及びflash損耗の増加を引き起こす。本実例では、アプリケーションのコード部分(code)を最初のロード時に1回ロードするだけでよい。アプリケーションを再びロードする時に、例えば、システムを再起動する場合、フラッシュメモリにおいて最初のロード時にフラッシュメモリに記憶された再配置後のELFファイルのコード部分(code)の開始アドレスが予め記憶されたので、当該開始アドレスに基づいて再配置されたELFファイルのコード部分(code)を直接実行して、ELFのコード部分(code)のロードを完了することができ、ELFファイルのコード部分(code)を再配置する必要がない。また、ELFファイルのデータ部分(data)を再配置してロードするだけで、アプリケーションのロードを完了することができ、それにより、アプリケーションのロード過程でのフラッシュメモリの損耗を減少させるとともに、アプリケーションのロード速度を向上させる。また、再配置情報ファイルに記録されたデータ部分(data)のELFファイルでのオフセット及び大きさに基づいてELFファイルにおけるデータ部分(data)のデータを直接読み取って、補助再配置情報を改めて取得する必要がないため、アプリケーションのロード速度をさらに向上させる。
図5は、本願に係るアプリケーションロード装置の一実施例の構造模式図を示す。装置500は、選択ユニット501、再配置ユニット502、ロードユニット503を含む。選択ユニット501は、プログラマブル読み取り専用メモリにおいて、アプリケーションの実行可能ファイルにおける所定のデータセグメントを記憶するための記憶空間を選択し、ここで、所定のデータセグメントが、アプリケーションがロードされる時に、プログラマブル読み取り専用メモリにロードされて実行されるデータセグメントである。再配置ユニット502は、所定のデータセグメントをメモリにコピーし、且つ記憶空間の開始アドレスに基づいて所定のデータセグメントを再配置する。ロードユニット503は、再配置された所定のデータセグメントを記憶空間にコピーして、アプリケーションをロードする。
本実施例では、選択ユニット501は、プログラマブル読み取り専用メモリにおいて所定のデータセグメントを記憶するための記憶空間を選択することができ、当該記憶空間のアドレスは現在の所定のデータセグメントの所在するプログラマブル読み取り専用メモリにおける記憶空間のアドレスと異なり、当該記憶空間の役割は再配置された所定のデータセグメントを記憶することである。
本実施例では、再配置ユニット502は、プログラマブル読み取り専用メモリに記憶された所定のデータセグメントをメモリにコピーすることができ、その後に、プログラマブル読み取り専用メモリにおいて予め選択された記憶空間の開始アドレスに基づいて当該所定のデータセグメントを再配置し、即ち、所定のデータセグメントにおける命令のうちのシンボルのロードアドレス及び所定のデータセグメントにおけるデータのロードアドレスを確定することができる。
本実施例では、ロードユニット503は、プログラマブル読み取り専用メモリに予め選択された、再配置後の所定のデータセグメントを記憶するための記憶空間に再配置された所定のデータセグメントをコピーすることができ、それにより、再配置された所定のデータセグメントをプログラマブル読み取り専用メモリにロードし、同時に、メモリにおける初期化済みのグローバル変数データセグメント及び未初期化のグローバル変数データセグメントを再配置してからロードすることにより、アプリケーションのロードを完了することができる。
本実施例のいくつかの選択可能な実施形態では、プログラマブル読み取り専用メモリはフラッシュメモリである。
本実施例のいくつかの選択可能な実施形態では、再配置ユニット502は、実行可能ファイルがELFファイルであり、所定のデータセグメントがマシン命令データセグメントと、読み取り専用データデータセグメントとを含む場合、ELFファイルのマシン命令アドレスオフセットデータセグメントにおいてマシン命令データセグメントにおけるマシン命令のオペランドに対応するアドレスオフセット量を検索する第1の検索サブユニット(図示せず)と、開始アドレス及びアドレスオフセット量に基づいて、オペランドに対応するロードアドレスを計算して、マシン命令データセグメントを再配置する第1の計算サブユニット(図示せず)と、ELFファイルの読み取り専用データアドレスオフセットデータセグメントにおいて読み取り専用データデータセグメントにおける読み取り専用データに対応するアドレスオフセット量を検索する第2の検索サブユニット(図示せず)と、開始アドレス及びアドレスオフセット量に基づいて、読み取り専用データに対応するロードアドレスを計算して、読み取り専用データデータセグメントを再配置する第2の計算サブユニット(図示せず)と、を含む。
本実施例のいくつかの選択可能な実施形態では、装置500は、ELFファイルにおける未初期化のグローバル変数データセグメント及び初期化済みのグローバル変数データセグメントをメモリにコピーする(図示せず)と、未初期化のグローバル変数データセグメントに対応する記憶空間の記憶値を0として設定する設定ユニット(図示せず)と、ELFファイルの初期化済みのグローバル変数アドレスオフセットデータセグメントから初期化済みのグローバル変数データセグメントにおける初期化済みのグローバル変数に対応するアドレスオフセット量を検索するオフセット量検索ユニット(図示せず)と、初期化済みのグローバル変数データセグメントのメモリにおける開始アドレス及びアドレスオフセット量に基づいて、初期化済みのグローバル変数のロードアドレスを計算して、初期化済みのグローバル変数データセグメントを再配置するロードアドレス計算ユニット(図示せず)と、をさらに含む。
本実施例のいくつかの選択可能な実施形態では、装置500は、再配置された所定のデータセグメントを記憶空間にコピーした後に、プログラマブル読み取り専用メモリに記憶空間の開始アドレスを記憶することにより、プログラマブル読み取り専用メモリに記憶された、再配置後の所定のデータセグメントを開始アドレスによって検索し、所定のデータセグメントをロードする記憶ユニット(図示せず)をさらに含む。
図6は本願の実施例を実現するための端末装置又はサーバに適用されるコンピュータシステム600の構造模式図を示す。
図6に示すように、コンピュータシステム600は、読み出し専用メモリ(ROM)602に記憶されているプログラム又は記憶部608からランダムアクセスメモリ(RAM)603にロードされたプログラムに基づいて様々な適切な動作及び処理を実行することができる中央処理装置(CPU)601を備える。RAM603には、システム600の操作に必要な様々なプログラム及びデータがさらに記憶されている。CPU601、ROM602及びRAM603は、バス604を介して互いに接続されている。入力/出力(I/O)インターフェース605もバス604に接続されている。
キーボード、マウスなどを含む入力部606、陰極線管(CRT)、液晶ディスプレイ(LCD)など、及びスピーカなどを含む出力部607、ハードディスクなどを含む記憶部608、及びLANカード、モデムなどを含むネットワークインターフェースカードの通信部609は、I/Oインターフェース605に接続されている。通信部609は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライバ610は、必要に応じてI/Oインターフェース605に接続される。リムーバブルメディア611は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライバ610に取り付けられ、したがって、ドライバ610から読み出されたコンピュータプログラムが必要に応じて記憶部608にインストールされる。
特に、本発明の実施例によれば、上記フローチャートを参照しながら記載されたプロセスは、コンピュータのソフトウェアプログラムとして実現されてもよい。例えば、本発明の実施例は、コンピュータプログラム製品を含み、当該コンピュータプログラム製品は、機械可読媒体に有形に具現化されるコンピュータプログラムを含み、前記コンピュータプログラムは、フローチャートで示される方法を実行するためのプログラムコードを含む。このような実施例では、当該コンピュータプログラムは、通信部609を介してネットワークからダウンロードされてインストールされてもよく、及び/又はリムーバブルメディア611からインストールされてもよい。
図面におけるフローチャート及びブロック図は、本発明の各実施例に係るシステム、方法及びコンピュータプログラム製品により実現可能なアーキテクチャ、機能及び操作を示す。ここで、フローチャート又はブロック図における各枠は、1つのモジュール、プログラムセグメント、又はコードの一部を代表してもよく、前記モジュール、プログラムセグメント、又はコードの一部は、規定された論理機能を実現するための1つ以上の実行可能な命令を含む。なお、いくつかの代替実施態様として、枠に示された機能は、図面に示された順番と異なる順番で実行されてもよい。例えば、連続して示された2つの枠は、関連する機能に応じて、実際にほぼ並行に実行されてもよく、逆の順番で実行されてもよい。なお、ブロック図及び/又はフローチャートにおける各枠と、ブロック図及び/又はフローチャートにおける枠の組合せは、規定された機能又は操作を実行する、ハードウェアに基づく専用システムで実現されてもよく、あるいは、専用ハードウェアとコンピュータの命令との組合せで実行されてもよい。
一方、本発明は、不揮発性コンピュータ記憶媒体をさらに提供し、当該不揮発性コンピュータ記憶媒体は、上記実施例の前記装置に含まれる不揮発性コンピュータ記憶媒体であってもよく、独立に存在して端末に組み立てられていない不揮発性コンピュータ記憶媒体であってもよい。前記不揮発性コンピュータ記憶媒体は、1つ以上のプログラムが記憶され、前記1つ以上のプログラムが1つの機器により実行された場合、上記機器に、プログラマブル読み取り専用メモリにおいて、アプリケーションの実行可能ファイルにおける所定のデータセグメントを記憶するための記憶空間を選択し、前記所定のデータセグメントをメモリにコピーし、且つ前記記憶空間の開始アドレスに基づいて前記所定のデータセグメントを再配置し、再配置された前記所定のデータセグメントを前記記憶空間にコピーして、アプリケーションをロードするようにさせ、ここで、所定のデータセグメントが、アプリケーションがロードされる時に、プログラマブル読み取り専用メモリにロードされて実行されるデータセグメントである。
以上の記載は、本発明の好ましい実施例、及び使用された技術的原理の説明に過ぎない。本発明に係る特許請求の範囲が、上記技術的特徴の特定な組合せからなる技術案に限定されることではなく、本発明の趣旨を逸脱しない範囲で、上記技術的特徴又は同等の特徴の任意の組合せからなる他の技術案も含むべきであることを、当業者は理解すべきである。例えば、上記特徴と、本発明に開示された類似の機能を持っている技術的特徴(これらに限定されていない)とを互いに置き換えてなる技術案が挙げられる。

Claims (10)

  1. プログラマブル読み取り専用メモリにおいて、アプリケーションの実行可能ファイルにおける、アプリケーションがロードされる時に前記プログラマブル読み取り専用メモリにロードされて実行されるデータセグメントである所定のデータセグメントを記憶するための記憶空間を選択するステップと、
    前記所定のデータセグメントをメモリにコピーし、且つ前記記憶空間の開始アドレスに基づいて前記所定のデータセグメントを再配置するステップと、
    再配置された前記所定のデータセグメントを前記記憶空間にコピーして、アプリケーションをロードするステップと、
    前記プログラマブル読み取り専用メモリに記憶された、再配置後の前記所定のデータセグメントを開始アドレスによって検索し、前記所定のデータセグメントをロードするために、前記プログラマブル読み取り専用メモリに前記記憶空間の開始アドレスを記憶するステップと、を含む
    ことを特徴とするアプリケーションロード方法。
  2. 前記プログラマブル読み取り専用メモリはフラッシュメモリである
    ことを特徴とする請求項1に記載の方法。
  3. 前記実行可能ファイルはELFファイルであり、前記所定のデータセグメントはマシン命令データセグメントと、読み取り専用データデータセグメントとを含み、
    前記記憶空間の開始アドレスに基づいて前記所定のデータセグメントを再配置するステップには、
    前記ELFファイルのマシン命令アドレスオフセットデータセグメントにおいてマシン命令データセグメントにおけるマシン命令のオペランドに対応するアドレスオフセット量を検索するステップと、
    前記開始アドレス及び前記アドレスオフセット量に基づいて、前記オペランドに対応するロードアドレスを計算して、マシン命令データセグメントを再配置するステップと、
    前記ELFファイルの読み取り専用データアドレスオフセットデータセグメントにおいて読み取り専用データデータセグメントにおける読み取り専用データに対応するアドレスオフセット量を検索するステップと、
    前記開始アドレス及び前記アドレスオフセット量に基づいて、前記読み取り専用データに対応するロードアドレスを計算して、読み取り専用データデータセグメントを再配置するステップと、を含む
    ことを特徴とする請求項1から2のいずれか1項に記載の方法。
  4. 前記ELFファイルにおける未初期化のグローバル変数データセグメント及び初期化済みのグローバル変数データセグメントをメモリにコピーするステップと、
    未初期化のグローバル変数データセグメントに対応する記憶空間の記憶値を0として設定するステップと、
    前記ELFファイルの初期化済みのグローバル変数アドレスオフセットデータセグメントから初期化済みのグローバル変数データセグメントにおける初期化済みのグローバル変数に対応するアドレスオフセット量を検索するステップと、
    初期化済みのグローバル変数データセグメントのメモリにおける開始アドレス及び前記アドレスオフセット量に基づいて、初期化済みのグローバル変数のロードアドレスを計算して、初期化済みのグローバル変数データセグメントを再配置するステップと、をさらに含む
    ことを特徴とする請求項3に記載の方法。
  5. プログラマブル読み取り専用メモリにおいて、アプリケーションの実行可能ファイルにおける、アプリケーションがロードされる時に前記プログラマブル読み取り専用メモリにロードされて実行されるデータセグメントである所定のデータセグメントを記憶するための記憶空間を選択する選択ユニットと、
    前記所定のデータセグメントをメモリにコピーし、且つ前記記憶空間の開始アドレスに基づいて前記所定のデータセグメントを再配置する再配置ユニットと、
    再配置された前記所定のデータセグメントを前記記憶空間にコピーして、アプリケーションをロードするロードユニットと、
    前記プログラマブル読み取り専用メモリに記憶された、再配置後の前記所定のデータセグメントを開始アドレスによって検索し、前記所定のデータセグメントをロードするために、前記プログラマブル読み取り専用メモリに前記記憶空間の開始アドレスを記憶する記憶ユニットと、を含む
    ことを特徴とするアプリケーションロード装置。
  6. 前記プログラマブル読み取り専用メモリはフラッシュメモリである
    ことを特徴とする請求項に記載の装置。
  7. 前記再配置ユニットは、
    前記実行可能ファイルがELFファイルであり、前記所定のデータセグメントがマシン命令データセグメントと、読み取り専用データデータセグメントとを含む場合、前記ELFファイルのマシン命令アドレスオフセットデータセグメントにおいてマシン命令データセグメントにおけるマシン命令のオペランドに対応するアドレスオフセット量を検索する第1の検索サブユニットと、
    前記開始アドレス及び前記アドレスオフセット量に基づいて、前記オペランドに対応するロードアドレスを計算して、マシン命令データセグメントを再配置する第1の計算サブユニットと、
    前記ELFファイルの読み取り専用データアドレスオフセットデータセグメントにおいて読み取り専用データデータセグメントにおける読み取り専用データに対応するアドレスオフセット量を検索する第2の検索サブユニットと、
    前記開始アドレス及び前記アドレスオフセット量に基づいて、前記読み取り専用データに対応するロードアドレスを計算して、読み取り専用データデータセグメントを再配置する第2の計算サブユニットと、を含む
    ことを特徴とする請求項からのいずれか1項に記載の装置。
  8. 前記ELFファイルにおける未初期化のグローバル変数データセグメント及び初期化済みのグローバル変数データセグメントをメモリにコピーするコピーユニットと、
    未初期化のグローバル変数データセグメントに対応する記憶空間の記憶値を0として設定する設定ユニットと、
    前記ELFファイルの初期化済みのグローバル変数アドレスオフセットデータセグメントから初期化済みのグローバル変数データセグメントにおける初期化済みのグローバル変数に対応するアドレスオフセット量を検索するオフセット量検索ユニットと、
    初期化済みのグローバル変数データセグメントのメモリにおける開始アドレス及び前記アドレスオフセット量に基づいて、初期化済みのグローバル変数のロードアドレスを計算して、初期化済みのグローバル変数データセグメントを再配置するロードアドレス計算ユニットと、をさらに含む
    ことを特徴とする請求項に記載の装置。
  9. プロセッサと、
    メモリと、を備えており、
    前記メモリに前記プロセッサにより実行可能なコンピュータ可読命令が記憶され、前記コンピュータ可読命令が実行される場合、前記プロセッサがアプリケーションロード方法を実行し、前記方法は、
    プログラマブル読み取り専用メモリにおいて、アプリケーションの実行可能ファイルにおける、アプリケーションがロードされる時に前記プログラマブル読み取り専用メモリにロードされて実行されるデータセグメントである所定のデータセグメントを記憶するための記憶空間を選択するステップと、
    前記所定のデータセグメントをメモリにコピーし、且つ前記記憶空間の開始アドレスに基づいて前記所定のデータセグメントを再配置するステップと、
    再配置された前記所定のデータセグメントを前記記憶空間にコピーして、アプリケーションをロードするステップと、
    前記プログラマブル読み取り専用メモリに記憶された、再配置後の前記所定のデータセグメントを開始アドレスによって検索し、前記所定のデータセグメントをロードするために、前記プログラマブル読み取り専用メモリに前記記憶空間の開始アドレスを記憶するステップと、を含む
    ことを特徴とする機器。
  10. 不揮発性コンピュータ記憶媒体であって、
    プロセッサにより実行可能なコンピュータ可読命令が記憶され、前記コンピュータ可読命令がプロセッサに実行される場合、前記プロセッサがアプリケーションロード方法を実行し、前記方法は、
    プログラマブル読み取り専用メモリにおいて、アプリケーションの実行可能ファイルにおける、アプリケーションがロードされる時に前記プログラマブル読み取り専用メモリにロードされて実行されるデータセグメントである所定のデータセグメントを記憶するための記憶空間を選択するステップと、
    前記所定のデータセグメントをメモリにコピーし、且つ前記記憶空間の開始アドレスに基づいて前記所定のデータセグメントを再配置するステップと、
    再配置された前記所定のデータセグメントを前記記憶空間にコピーして、アプリケーションをロードするステップと、
    前記プログラマブル読み取り専用メモリに記憶された、再配置後の前記所定のデータセグメントを開始アドレスによって検索し、前記所定のデータセグメントをロードするために、前記プログラマブル読み取り専用メモリに前記記憶空間の開始アドレスを記憶するステップと、を含む
    ことを特徴とする不揮発性コンピュータ記憶媒体。
JP2017552148A 2015-12-25 2016-06-17 アプリケーションロード方法及び装置 Active JP6506412B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510994261.4 2015-12-25
CN201510994261.4A CN105426223B (zh) 2015-12-25 2015-12-25 应用加载方法和装置
PCT/CN2016/086217 WO2017107415A1 (zh) 2015-12-25 2016-06-17 应用加载方法和装置

Publications (2)

Publication Number Publication Date
JP2018511132A JP2018511132A (ja) 2018-04-19
JP6506412B2 true JP6506412B2 (ja) 2019-04-24

Family

ID=55504451

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017552148A Active JP6506412B2 (ja) 2015-12-25 2016-06-17 アプリケーションロード方法及び装置

Country Status (6)

Country Link
US (1) US11086638B2 (ja)
EP (1) EP3267308B1 (ja)
JP (1) JP6506412B2 (ja)
KR (1) KR101955145B1 (ja)
CN (1) CN105426223B (ja)
WO (1) WO2017107415A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426223B (zh) 2015-12-25 2019-01-04 百度在线网络技术(北京)有限公司 应用加载方法和装置
CN106598674A (zh) * 2016-12-16 2017-04-26 中南大学 一种基于可重定位elf文件的软件快速加载方法
CN107450960A (zh) * 2017-09-18 2017-12-08 珠海亿智电子科技有限公司 一种对可执行elf文件重新链接和加载的方法
CN108241516B (zh) * 2018-02-09 2021-06-18 深圳科立讯通信有限公司 嵌入式系统程序加载方法、装置、计算机设备和存储介质
CN108874468B (zh) * 2018-06-20 2021-03-26 深圳市腾讯网络信息技术有限公司 应用程序的加载方法、装置、计算机设备及存储介质
CN109901891B (zh) * 2019-03-19 2022-06-14 北京智游网安科技有限公司 一种elf程序里添加数据的方法、存储介质及智能终端
CN110765027B (zh) * 2019-12-27 2020-04-10 中国人民解放军国防科技大学 一种pe文件地址定位系统
CN113032737B (zh) * 2021-03-15 2021-11-30 清华大学 软件的保护方法、装置、电子设备及存储介质
CN113821458B (zh) * 2021-09-18 2023-09-05 日立楼宇技术(广州)有限公司 一种数据操作方法、装置、计算机设备和存储介质
CN113849245B (zh) * 2021-09-23 2023-09-12 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN117435257B (zh) * 2023-12-18 2024-02-27 美智纵横科技有限责任公司 系统加载方法及装置、存储介质、计算机程序产品和芯片

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379398A (en) 1992-04-20 1995-01-03 International Business Machines Corporation Method and system for concurrent access during backup copying of data
US5581768A (en) * 1995-02-27 1996-12-03 Intel Corporation Method and apparatus for executing applications in place from write once/seldom memories
JPH103385A (ja) * 1996-06-18 1998-01-06 Dainippon Printing Co Ltd Icカード及びアプリケーション・プログラム導入方法
US5923878A (en) * 1996-11-13 1999-07-13 Sun Microsystems, Inc. System, method and apparatus of directly executing an architecture-independent binary program
US6505297B1 (en) * 1998-09-09 2003-01-07 Hitachi, Ltd. IC card terminal device and installation of application program into IC card terminal device
JP3976106B2 (ja) * 1998-09-09 2007-09-12 株式会社日立製作所 アプリケーション登録端末システムおよび登録方法
TWI240864B (en) * 2001-06-13 2005-10-01 Hitachi Ltd Memory device
KR100518584B1 (ko) * 2003-07-12 2005-10-04 삼성전자주식회사 공유 라이브러리 시스템 및 상기 시스템 구축 방법
US7415703B2 (en) * 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
JP2005284963A (ja) * 2004-03-30 2005-10-13 Toshiba Corp プログラムローディング装置およびプログラムローディング方法
JP2006048431A (ja) * 2004-08-05 2006-02-16 Matsushita Electric Ind Co Ltd 動的リンクライブラリ処理装置
US7987158B2 (en) * 2005-02-09 2011-07-26 International Business Machines Corporation Method, system and article of manufacture for metadata replication and restoration
US20060277541A1 (en) * 2005-06-07 2006-12-07 Sony Computer Entertainment America Inc. Relocatable component file format
KR101036675B1 (ko) * 2006-07-18 2011-05-24 인텔 코오퍼레이션 Efi 기반 펌웨어에서의 프리 efi 초기화 모듈의 전역변수 사용법
CN100555222C (zh) * 2007-02-15 2009-10-28 凌阳科技股份有限公司 应用程序可重定位加载的方法及地址重定位装置
CN101470619A (zh) * 2007-12-29 2009-07-01 安凯(广州)软件技术有限公司 一种基于微核操作系统的应用程序动态加载方法
US8082385B2 (en) * 2008-05-02 2011-12-20 Sony Corporation Systematic memory shift for pre-segmented memory
CN101277265B (zh) * 2008-05-07 2011-05-04 浙江大学 一种无线传感网络中加速加载elf文件的方法
CN101661397B (zh) 2008-08-29 2012-09-12 宇龙计算机通信科技(深圳)有限公司 实现程序动态加载的方法和生成映射文件的方法及设备
CN101697131B (zh) * 2009-11-04 2013-07-03 中兴通讯股份有限公司 一种可重定位文件动态加载的方法及装置
CN101706725B (zh) * 2009-11-20 2014-03-19 中兴通讯股份有限公司 一种可重定位程序的加载及调试方法及系统
CN103377131A (zh) * 2012-04-13 2013-10-30 索尼公司 数据处理装置和方法
US20150332043A1 (en) * 2014-05-15 2015-11-19 Auckland Uniservices Limited Application analysis system for electronic devices
US9974492B1 (en) * 2015-06-05 2018-05-22 Life365, Inc. Health monitoring and communications device
TWI588742B (zh) * 2015-07-27 2017-06-21 晨星半導體股份有限公司 應用程式的程式碼載入方法及應用其方法的電腦系統
CN105426223B (zh) * 2015-12-25 2019-01-04 百度在线网络技术(北京)有限公司 应用加载方法和装置

Also Published As

Publication number Publication date
KR101955145B1 (ko) 2019-03-06
JP2018511132A (ja) 2018-04-19
CN105426223A (zh) 2016-03-23
KR20170123337A (ko) 2017-11-07
US11086638B2 (en) 2021-08-10
US20180329725A1 (en) 2018-11-15
EP3267308A1 (en) 2018-01-10
WO2017107415A1 (zh) 2017-06-29
EP3267308B1 (en) 2022-07-27
CN105426223B (zh) 2019-01-04
EP3267308A4 (en) 2018-07-25

Similar Documents

Publication Publication Date Title
JP6506412B2 (ja) アプリケーションロード方法及び装置
US11003625B2 (en) Method and apparatus for operating on file
US8972967B2 (en) Application packages using block maps
KR20130086138A (ko) 크로스―플랫폼 어플리케이션 프레임워크
CN105573734B (zh) 一种用于提供sdk文件的方法与设备
US10338910B2 (en) Multi-tenant upgrading
CN110737402B (zh) 管理存储系统的方法、设备和计算机存储介质
US10795606B2 (en) Buffer-based update of state data
CN104685443A (zh) 锁定引导数据用以更快引导
US11157456B2 (en) Replication of data in a distributed file system using an arbiter
JP6193406B2 (ja) 差分符号化のためのシリアライゼーション
US9747295B1 (en) Updating a large dataset in an enterprise computer system
US10997269B1 (en) Using web application components with different web application frameworks in a web application
US20180088758A1 (en) Preserve input focus in virtualized dataset
CN106991058B (zh) 预取文件处理方法及装置
RU2666334C2 (ru) Способ обработки данных
JP7015960B1 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US20110320473A1 (en) Dynamic determination of migration data
CN110019034A (zh) 表单文件加载方法和装置
CN111596941B (zh) 应用更新方法、装置、电子设备和介质
WO2018217406A1 (en) Providing instant preview of cloud based file
JP6639238B2 (ja) プログラムおよびコンピュータ
CN114371864A (zh) 信息更新方法、装置、电子设备和存储介质
US10067945B2 (en) File and move data to shrink datafiles
CN113778434A (zh) 多语言文案管理方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190213

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: 20190319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190328

R150 Certificate of patent or registration of utility model

Ref document number: 6506412

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