JP2010282645A - Linuxプログラム起動システム - Google Patents

Linuxプログラム起動システム Download PDF

Info

Publication number
JP2010282645A
JP2010282645A JP2010166945A JP2010166945A JP2010282645A JP 2010282645 A JP2010282645 A JP 2010282645A JP 2010166945 A JP2010166945 A JP 2010166945A JP 2010166945 A JP2010166945 A JP 2010166945A JP 2010282645 A JP2010282645 A JP 2010282645A
Authority
JP
Japan
Prior art keywords
kernel
bank
area
memory
linux
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.)
Granted
Application number
JP2010166945A
Other languages
English (en)
Other versions
JP4735765B2 (ja
Inventor
Koji Mizumachi
幸司 水町
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan Ltd
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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2010166945A priority Critical patent/JP4735765B2/ja
Publication of JP2010282645A publication Critical patent/JP2010282645A/ja
Application granted granted Critical
Publication of JP4735765B2 publication Critical patent/JP4735765B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】冗長構成の組み込み機器において、起動カーネルが対応するユーザランドを確実
に判別できるようにする。
【解決手段】バンクAおよびバンクBに格納されたカーネルAおよびBの内の一方のカー
ネルを起動カーネルとして選択した際に、その選択した起動カーネルに対応するバンクを
識別する識別情報をメインメモリ25における未使用領域に書き込む処理(ステップS3
02)、およびメインメモリ25の未使用領域に書き込まれた識別情報を読み出すことに
より、ファイルシステムAおよびBの中から、起動カーネルにリンクするファイルシステ
ムを判別する処理(ステップS305、S306、S308)をそれぞれ実行するLin
uxプログラム起動システムである。
【選択図】図4

Description

本発明は、Linuxプログラム(以下、単にLinuxとも記載する)をオペレーテ
ィングシステムとして搭載した(組み込んだ)組み込み機器において好適に利用されるL
inuxプログラム起動システムに関する。
各種家電機器、腕時計、携帯電話やPDS等の小型端末、インターネット関連機器等の
様々なコンピュータアプリケーションプログラム(以下、単にアプリケーションとも記載
する)により動作する機器には、オペレーティングシステム(以下、OSとも記載する)
と呼ばれる基本ソフトが実装されているものが多い。そしてこの機器実装用(組み込み用
)OSとして、近年では、オープンソースであるLinuxが注目を集めている。
このLinuxの特徴として、カーネル(Linuxカーネル)と呼ばれるOSのコア
となる部分のみ開発を専念し、それ以外の部分については、ロイヤリティフリーで公開さ
れているフリーソフトウェアから容易に入手することができるという点が挙げられる。
このLinuxは、ファイルシステムを利用したブロックデバイスへの論理的なアクセ
スを前提として構築されている。すなわち、Linuxでは、カーネルの起動時において
、ルートファイルシステムと呼ばれる基本部分をデバイスからマウント{ファイルシステ
ムが格納されたデバイス(格納領域)を起動カーネルから認識(アクセス)できるデバイ
スにして、そのデバイスに格納されたファイルシステム内のアプリケーションを含む各種
ファイルに対して起動カーネルがアクセス可能にすることを意味する}することにより、
様々なアプリケーションを利用してブロックデバイスに格納されたデータにアクセスする
ことが可能である。
通常、Linuxが動作する標準的なシステムであるパーソナルコンピュータ(以下、
パソコンという)である例えばIBM・AT互換機においては、起動時(ブート時)にマ
ウントされるデバイスを表す情報は、MBR(Master Boot Record)と呼ばれるハードデ
ィスク(HDD)の起動用領域に予めデフォルトとして書き込まれている。なお、デフォ
ルトとは異なるデバイスを利用してファイルシステムをブートしたい場合には、コマンド
ラインやメニュー形式を用いて、ブートしたいファイルシステムが搭載されたデバイスを
選択することも一般的に行われている。
また、Linuxにおいては、カーネルに渡す引数によりルートファイルシステムをマ
ウントする。しかしながら、組み込み機器においては、デバイスドライバの都合上、in
itrdと呼ばれるRAMディスクに搭載されたファイルシステムを初期ルートファイル
システムとして利用し、そのinitrdから本来マウントしたいルートファイルシステ
ムを搭載デバイスからマウントする場合がある。
ところで、例えばパソコンでは、そのパソコンに組み込まれた(搭載された)プログラ
ム、例えばLinuxプログラムを更新する場合、その実行ファイルのみを交換したり、
またLinuxの知識のあるユーザの場合には、カーネルを再構築した上で新しい機能プ
ログラムを追加すること等により、新しいLinuxプログラムを実行する環境をパソコ
ン内に構築することができる。
この点、Linux組み込み機器においては、メンテナンス性の観点からもカーネルお
よびこのカーネルにリンクするファイルシステム(以下、ユーザランドとも記載する)を
書き換えて、Linuxプログラムの実行環境を一新する方法が効率的であると考えられ
ている。
また、例えばパソコンにおいては、そのブート用のプログラムを記憶しておくことがで
きるデバイスが例えばHDD、CD−ROM等複数あり、あるデバイスからブートローダ
を含むプログラムの更新を行って仮に失敗した場合であっても、他のデバイスに搭載され
たブートローダを含むプログラムを起動して比較的容易にパソコンを復帰させることがで
きる。
しかしながら、組み込み機器では、ユーザにブートするファイルシステムが搭載された
デバイスを選択させることは、ユーザを混乱させる原因ともなるため、自動的にファイル
システムをブートさせる仕組みが必要である。また、組み込み機器は、外部からユーザに
より頻繁にオン/オフされることが多いことから、ブートローダ自体の書き換えはブート
不能に陥るリスクが大きくなるため、他のデバイス特定方法を用いたいという技術的背景
もある。
この点、同一又は異なるバージョンのプログラム{カーネルおよびリンクするファイル
システム(ユーザランド)}を2つのメモリ領域(メモリバンク)に冗長的に記録する2
バンク方式も知られており、そのプログラムが正常に作動したかどうかによって有効パン
クを切り換えることが可能になっており、上述したブート不能リスクを低減することがで
きる。
この2バンク方式では、組み込み機器でプログラムの更新により不具合の修正や機能追
加を行う場合、その更新操作は、必ず一方のプログラムの更新が完了し、更新したプログ
ラムが正常に動作した場合に初めて他方のプログラムを無効にするようになっている。
したがって、一方のバンクに記録されたプログラムの更新に失敗した場合でも、他方の
バンクに記録された現在動作しているプログラムを保持し続けることが可能になる。
上述した2バンク方式のシステムとしては、特許文献1に開示されたものがある。この
特許文献1に開示されたコンピュータシステムのファームウェア記憶装置は、同一又は異
なるバージョンのファームウェアを2つのメモリバンクに冗長的に記憶するファームウェ
ア記憶装置である。
このファームウェア記憶装置によれば、2つのメモリバンクの一方のメモリバンクが選
択されている間は、他方のメモリバンクを書込み禁止にする。そして、2つのメモリバン
クの一方を選択し、選択されなかったメモリバンクに記憶されたファームウェアの有効性
をチェックし、選択されたメモリバンクに記憶されたファームウェアのバージョンを、選
択されなかったメモリバンクに記憶されたファームウェアのバージョンと比較し、その比
較結果を生成する。この比較結果に従って、2つのメモリバンクに記憶されているファー
ムウェアのどちらか一方を選択し、この選択されたメモリバンクに記憶されたファームウ
ェアを使用してコンピュータシステムを起動し、所定の時間内に該コンピュータシステム
が正常に動作可能状態にならない場合に、この選択されなかったメモリバンクを選択し、
その後プロセッサをリセットするといものである。
このような構成により、システム・ファームウェアの保全性を効率的に確保すると共に
、ファームウェアを簡単に変更することが可能になる。また、コンピュータシステムが動
作可能な状態に留まるのに十分なファームウェアを確実に保持しながら、そのようなシス
テムのファームウェアを変更することができる。さらに、コンピュータシステム内の複数
のファームウェアバンクからの自動選択を行うことが可能になる。
詳しくは、特許文献1の段落番号に開示されているように、2つのメモリバンク502
および504が制御装置505によって管理されており、制御装置505は、メモリバン
ク502および504からのファームウェアの読み取り、およびそのメモリバンク502
および504からのファームウェアの書込みをそれぞれ制御している。
特許第3033642号
しなしながら、LinuxをOSとして用いるLinuxプログラム組み込み機器にお
いて、Linuxプログラムを格納する領域(バンク)が複数(2バンク以上)存在して
いる場合、起動されたカーネルは、複数のバンクそれぞれに格納された複数のユーザラン
ドの内の何れのユーザランドを、その起動カーネルにリンクするユーザランドとしてマウ
ントすればよいのか判断することが困難であった。
本発明は上述した事情に鑑みてなされたものであり、Linuxプログラム起動におい
て、複数のバンクに記録された複数のファイルシステムから、起動カーネルにリンクする
有効なファイルシステムを識別することを可能にするLinuxプログラム起動システム
を提供することをその目的とする。
請求項1記載の発明は、上記課題を解決するため、
カーネルとそのカーネルと対で動作するユーザランドとを備えたLinuxプログラムにおいて、カーネルを起動させてユーザランドをマウントさせるLinuxプログラム起動システムであって、
第1のLinuxプログラムのカーネルを記憶する第1の領域と、そのカーネルにリンクする前記第1のLinuxプログラムのユーザランドを記憶する第2の領域と、前記第1のLinuxプログラムの新旧を識別するための第1の識別情報を記憶する第3の領域との前記第1から第3の領域を有する第1のバンクと、第2のLinuxプログラムのカーネルを記憶する第4の領域と、そのカーネルにリンクする前記第2のLinuxプログラムのユーザランドを記憶する第5の領域と、前記第2のLinuxプログラムの新旧を識別するための第2の識別情報を記憶する第6の領域との前記第4から第6の領域を有する第2のバンクと、ブートローダを記憶する第7の領域とを備えた第1のメモリと、
起動された前記ブートローダにより、前記第1及び第2の識別情報に応じて前記第1のバンクと前記第2のバンクとから一つ選択されたバンクを示すバンク識別情報を記憶する所定領域を備えた第2のメモリと、
前記第7の領域からブートローダを読み出して起動させ、その起動させたブートローダにより、読み出した前記第1及び第2の識別情報の比較結果に応じて前記第1及び第2のバンクから有効なバンクを一つ選択させ、その選択されたバンクを示す前記バンク識別情報を前記第2のメモリの前記所定領域に書き込ませ、前記選択されたバンクからカーネルを読み出して起動させ、その起動させたカーネルにより、前記第2のメモリから読み出した前記バンク識別情報によって自カーネルが起動された前記第1のメモリ内のバンクを特定させ、その特定されたバンクに記憶されているユーザランドをマウントさせる制御部と、
を有することを特徴とするLinuxプログラム起動システム、
を提供する。
請求項2記載の発明は、上記課題を解決するため、
カーネルとそのカーネルと対で動作するユーザランドとを備えたLinuxプログラムにおいて、カーネルを起動させてユーザランドをマウントさせるLinuxプログラム起動システムであって、
一つのLinuxプログラムのカーネルを記憶する領域と、そのカーネルにリンクする前記一つのLinuxプログラムのユーザランドを記憶する領域と、前記一つのLinuxプログラムの新旧を識別するための識別情報を記憶する領域との3つの領域をそれぞれ有する複数のバンクと、ブートローダを記憶する領域とを備えた第1のメモリと、
起動された前記ブートローダにより、各前記識別情報に応じて前記複数のバンクから一つ選択されたバンクを示すバンク識別情報を記憶する所定領域を備えた第2のメモリと、
前記第1のメモリからブートローダを読み出して起動させ、その起動させたブートローダにより、読み出した前記各識別情報の比較結果に応じて前記複数のバンクから有効な一つのバンクを選択させ、その選択されたバンクを示す前記バンク識別情報を前記第2のメモリの前記所定領域に書き込ませ、前記選択されたバンクからカーネルを読み出して起動させ、その起動させたカーネルにより、前記第2のメモリから読み出した前記バンク識別情報によって自カーネルが起動された前記第1のメモリ内のバンクを特定させ、その特定されたバンクに記憶されているユーザランドをマウントさせる制御部と、
を有することを特徴とするLinuxプログラム起動システム、
を提供する。
本発明によれば、有効なバンクとして一つ選択したバンクを示すバンク識別情報を起動させたブートローダにより第2のメモリに書き込んでおくことにより、有効と選択したバンクから読み出した起動カーネルによるファイルシステム判別時において、第2のメモリに書き込まれたバンク識別情報に基づいて起動カーネルに対応するファイルシステムを容易に識別することができる。
本発明の実施の形態に係わる組み込み機器に搭載されたLinuxプログラム起動システムを含むマザーボードの概略構成を示す概略ブロック図。 本発明の実施の形態に係るLinuxプログラム起動システムにおけるLinuxプログラムを格納するフラッシュメモリのメモリマップを概略的に示す図である。 (a)は、本発明の実施の形態に係わるメインメモリのメモリマップを概略的に示す図であり、(b)は、図3(a)におけるカーネル非認識メモリ領域の一部を拡大して示す図である。 本発明の実施の形態に係るLinuxプログラム起動システムの起動処理の一例を示す概略フローチャートである。
以下、本発明を実施するための最良の形態を、図面を参照して説明する。
図1を参照して、本発明を実施するための最良の形態(以下、実施形態と記載する)に
係るLinuxプログラム起動システム1を含むマザーボード11の概略構成を説明する
。このマザーボート11は、家電機器、腕時計、携帯電話やPDS等の小型端末、インタ
ーネット関連機器等のアプリケーション動作機器に予め搭載されている。
図1に示すように、マザーボード11には、CPU/PCIブリッジ31を介して接続
されているアドレスバスやデータバス等からなるホストバス13と、32ビット幅の標準
化されたPCIバス15が設けられている。
このホストバス13には、内部キャッシュメモリCmおよび所定ビットのデータバスを
有するCPU17、SRAMからなる外部キャッシュメモリ21、およびこの外部キャッ
シュメモリ21へのデータの読み書きを制御するキャッシュコントローラ19がそれぞれ
接続されている。また、ホストバス13には、DRAMからなるメインメモリ25、およ
びこのメインメモリ25へのデータの読み書きとリフレッシュを制御するDRAMコント
ローラ23がそれぞれ接続されている。
さらに、ホストバス13には、例えばNANDメモリからなる書き換え可能な記録媒体
の一例としてのフラッシュメモリ29、このフラッシュメモリ29へのデータの読み書き
を制御するフラッシュメモリコントローラ27、およびCPUが接続されているホストバ
ス13とPCIバス15とを接続するためのCPU/PCIブリッジ31等がそれぞれ接
続されている。
一方、PCIバス15には、PCI拡張スロット33を介して例えばLANのプロトコ
ルを制御するLANカードが接続されている。
フラッシュメモリコントローラ27は、CPU17から与えられるデータの読み書きに
関するブロック転送コマンドに応じてフラッシュメモリ29との間のデータの読み書きを
制御する。
フラッシュメモリ29は、いわゆるNANDメモリからなり例えば2kバイトのブロッ
ク毎に記憶されているデータを1まとまりにして読み書きするように構成されており、そ
の異なる複数の領域(バンク)には、複数(本実施形態では2つ)のLinuxプログラ
ムL1およびL2がそれぞれ格納されている。
そして、本実施形態においては、複数のLinuxプログラムL1およびL2における
一方のLinuxプログラムが新しいプログラムに更新(バージョンアップ)されている
次に、図2を参照して、フラッシュメモリ29に記憶されているLinuxプログラム
L1およびL2の具体的な内容をそれぞれの格納領域毎に説明する。
図2に示すように、フラッシュメモリ29のブートローダ領域101(アドレス#1〜
#2までの領域)には、Linuxプログラムブート用のブートローダが記憶されている
。このブートローダ領域101は、システム1全体がリセットされたときに例えばMIP
Sアーキテクチャのプログラムカウンタにより指示されている領域であり、システム1(
CPU17)起動時にブートローダが最初にメインメモリ25に転送されるようになって
いる。
LinuxプログラムL1のカーネルAのバージョン情報(その新旧を識別するための
情報)を含むヘッダ情報は、フラッシュメモリ29のアドレス#2〜#3までの領域(第
1のヘッダバンク領域)に記憶されている。
フラッシュメモリ29のカーネルA領域102(アドレス#3〜#4までの領域:第1
のカーネルバンク領域)には、LinuxプログラムL1のカーネルAが記憶されており
、このカーネルAは、メインメモリ25に転送されたブートローダに従ったCPU17の
処理により、メインメモリ25に転送される。このカーネルAには、そのカーネル作成時
にinitrdと呼ばれるファイルシステム認識用(マウント用)プログラムが内蔵され
ている。なお、CPU17の処理は、必要に応じてキャッシュコントローラ19、DRA
Mコントローラ23の処理も含むが、単にCPUの処理として説明する。
LinuxプログラムL2のカーネルBのヘッダ情報は、フラッシュメモリ29のアド
レス#4〜#5までの領域(第2のヘッダバンク領域)に記憶されている。
フラッシュメモリ29のカーネルB領域103(アドレス#5〜#6までの領域:第2
のカーネルバンク領域)には、LinuxプログラムL2のカーネルBが記憶されており
、このカーネルBは、メインメモリ25に転送されたブートローダに従ったCPU17の
処理により、メインメモリ25に転送される。このカーネルBにも、そのカーネル作成時
にinitrdと呼ばれるファイルシステム認識用(マウント用)プログラムが内蔵され
ている。
フラッシュメモリ29のユーザランドA領域104(アドレス#6〜#7までの領域:
第1のユーザバンク領域)には、LinuxプログラムL1のカーネルAにリンクされた
ファイルシステムであるユーザランドAが記憶されている。このユーザランドAは、カー
ネルの処理(カーネルに従ったCPU17の処理)によりメインメモリ25に転送される
ものではなく、カーネルの処理によりマウントまたはアンマウントされる。
フラッシュメモリ29のユーザランドB領域105(アドレス#7〜#8までの領域:
第2のユーザバンク領域)には、LinuxプログラムL2のカーネルBにリンクされた
ファイルシステムであるユーザランドBが記憶されている。このユーザランドBは、カー
ネルの処理(カーネルに従ったCPU17の処理)によりメインメモリ25に転送される
ものではなく、カーネルの処理によりマウントまたはアンマウントされる。
本実施形態において、第1のLinuxプログラムL1(カーネルA、ユーザランドA
)が格納される領域(第1のヘッダバンク領域、第1のカーネルバンク領域、第1のユー
ザバンク領域)を総称してバンクAと記載し、第2のLinuxプログラムL2(カーネ
ルB、ユーザランドB)が格納される領域(第2のヘッダバンク領域、第2のカーネルバ
ンク領域、第2のユーザバンク領域)を総称してバンクBと記載する。
フラッシュメモリ29のデータ領域(アドレス#8〜#9)には、起動したLinux
プログラムL1あるいはL2により利用可能な各種データが格納されている。
一方、図3は、本実施形態に係わるメインメモリ25の記録領域(メモリ領域)を示す
図である。
図3に示すように、メインメモリ25の一定領域25a1は、起動カーネルが認識する
メモリ領域としてカーネルを作成した段階で決定されている。一方、起動カーネルが認識
していない非認識領域25a2は、起動カーネルの支配下ではないため、特殊な用途で使
われることが想定される。
本実施形態では、このカーネル非認識メモリ領域25a2を空けておき、ブートローダ
によるメインメモリ29上でのカーネル展開時における有効バンク識別情報を含むブート
情報を書き込み可能に構成している。また、Linux起動後、アプリケーションが動作
するまでは使用されないメモリ領域等もブート情報を書き込むために使用可能である。
次に、本実施形態に係るLinuxプログラム起動システム1におけるCPU17のL
inuxプログラム起動処理について、図4を参照して説明する。
Linuxプログラム起動時において、フラッシュメモリ29のデータ領域(アドレス
♯1〜アドレス♯2)に記憶されたブートローダがメインメモリ25にロードされ起動さ
れる。起動されたブートローダ(つまり、ブートローダに従ったCPU17)は、フラッ
シュメモリ29のデータ領域(アドレス♯2〜アドレス♯3)に記憶されたカーネルAの
バージョン情報を含むヘッダ情報およびフラッシュメモリ29のデータ領域(アドレス♯
4〜アドレス♯5)に記憶されたカーネルBのバージョン情報を含むヘッダ情報をそれぞ
れ読み出す。
続いて、ブートローダは、図4に示すように、ステップS301として、読み出したカ
ーネルAおよびカーネルBそれぞれのヘッダ情報を比較して、例えば新しいバージョンの
カーネルが格納されたバンクを有効なバンクとして判断する(ステップS301)。すな
わち、LinuxプログラムL1が新しく更新されている場合には、カーネルAのバージ
ョン情報がカーネルBのバージョン情報よりも新しいことを表す情報となっているため、
バンクAが有効なバンクとして判断され、LinuxプログラムL2が新しく更新されて
いる場合には、カーネルBのバージョン情報がカーネルAのバージョン情報よりも新しい
ことを表す情報となっているため、バンクBが有効なバンクとして判断される。
次いで、ステップS302において、ブートローダは、有効と判断したバンクを識別す
るための識別情報(バンクAが有効ならバンクAを表す識別情報、バンクBが有効ならバ
ンクBを表す識別情報)をメインメモリ25における未使用領域である例えばカーネル非
認識メモリ領域25a2に書き込む(記述する)。
次いで、ステップS303において、ブートローダは、有効なカーネル(カーネルAお
よびカーネルBのうちの何れか一方のカーネル)をメインメモリ25内にロードかつ展開
し、このカーネルを起動して、この起動カーネル(カーネルコード)に制御をシフトする
続いて、ステップS304において、起動カーネル(つまり、起動カーネルに従ったC
PU17)は、起動カーネル内における初期ルートファイルシステム(initrd)に
おける各種ドライバのロードを行うスクリプトを起動する。
次いで、ステップS305において、起動カーネルは、initrdの起動スクリプト
内において、メインメモリ25のカーネル非認識メモリ領域25a2を、例えばカーネル
認識領域25a1からのポインタ等を用いて起動カーネルが認識できるメモリ領域である
起動カーネル空間の仮想メモリ空間にマッピング(mmap)し、マッピングされた領域
に書き込まれたバンク情報を読み出し、自カーネルがどちらのバンクから起動されたのか
を判断する。
この判断において、読み出したバンク情報がバンクAの場合には、自カーネルがバンク
Aから起動されたものと判断し(ステップS306の判断→YES)、起動カーネルは、
ステップS307に進む。
このステップS307において、起動カーネルは、バンクAに格納されたユーザランド
Aをルートファイルシステムとしてマウント、すなわち、起動カーネル(カーネルA)の
ルートディレクトリ(/)に対してユーザランドAを接続して階層化することにより、起
動カーネルから認識(アクセス)できるファイルシステムに設定する。
一方、読み出したバンク情報がバンクBの場合には、自カーネルがバンクBから起動さ
れたものと判断し(ステップS306の判断→NO、ステップS308の判断→YES)
、起動カーネルは、ステップS309に進む。
このステップS309において、起動カーネルは、バンクBに格納されたユーザランド
Bをルートファイルシステムとしてマウントする。
なお、ステップS308において、万が一何れのバンクAおよびBも有効として判断で
きない場合には、エラーが発生したものとしてLinuxプログラム起動処理を終了する
このようにして、起動カーネルにリンクされたユーザランドのマウントが完了されると
、起動カーネルは、設定に従い通常の起動処理を続ける。
以上述べたように、本実施形態によれば、複数のLinuxプログラムL1およびL2
がフラッシュメモリ29の複数のバンクにそれぞれ格納されている場合でも、起動カーネ
ルにリンクされたユーザランドを自動的に判別してルートファイルシステムとしてマウン
トすることができる。
この結果、Linuxプログラム組み込み機器において2バンク方式を用いて一方のバ
ンクに記録されたLinuxプログラムを更新した場合においても、更新後の起動カーネ
ルがリンクされたルートファイルシステム(ユーザランド)を認識できない状態に陥るこ
とを確実に防止することができ、Linuxプログラムの起動処理の信頼性を向上させる
ことができる。
なお、本実施形態においては、Linuxプログラムを格納する記録媒体としてフラッ
シュメモリとしたが、書き換え可能な他の記録媒体であってもよい。
また、組み込み機器に搭載されるマザーボードとして、図1に示す構成を示したが、本
発明はこの構成に限定されるものではなく、図2〜図4で説明した内容を実現できるコン
ピュータハードウェア構成であればよい。
さらに、本実施形態では、フラッシュメモリに記録されるLinuxプログラムの冗長
構成として、2つのLinuxプログラムをフラッシュメモリの2つのバンクそれぞれに
格納する2バンク構成としたが、本発明はこの構成に限定されるものではなく、3つ以上
のLinuxプログラムをフラッシュメモリの3つ以上のバンクそれぞれに格納する冗長
構成としてもよい。
そして、本実施形態では、新しいバージョンのLinuxプログラムを有効なプログラ
ムとして起動するように構成したが、本発明はこのように限定されるものではなく、古い
バージョンのLinuxプログラムを有効なプログラムとして起動するように構成しても
よい。
11 マザーボード
13 ホストバス
15 PCIバス
17 CPU
21 外部キャッシュメモリ
25 メインメモリ
27 フラッシュメモリコントローラ
29 フラッシュメモリ
31 CPU/PCIブリッジ
33 PCI拡張スロット
35 LANカード
♯1〜♯2 ブートローダ格納領域
♯2〜♯3 第1のヘッダバンク領域
♯3〜♯4 第1のカーネルバンク領域
♯4〜♯5 第2のヘッダバンク領域
♯5〜♯6 第2のカーネルバンク領域
♯6〜♯7 第1のユーザバンク領域
♯7〜♯8 第2のユーザバンク領域

Claims (2)

  1. カーネルとそのカーネルと対で動作するユーザランドとを備えたLinuxプログラムにおいて、カーネルを起動させてユーザランドをマウントさせるLinuxプログラム起動システムであって、
    第1のLinuxプログラムのカーネルを記憶する第1の領域と、そのカーネルにリンクする前記第1のLinuxプログラムのユーザランドを記憶する第2の領域と、前記第1のLinuxプログラムの新旧を識別するための第1の識別情報を記憶する第3の領域との前記第1から第3の領域を有する第1のバンクと、第2のLinuxプログラムのカーネルを記憶する第4の領域と、そのカーネルにリンクする前記第2のLinuxプログラムのユーザランドを記憶する第5の領域と、前記第2のLinuxプログラムの新旧を識別するための第2の識別情報を記憶する第6の領域との前記第4から第6の領域を有する第2のバンクと、ブートローダを記憶する第7の領域とを備えた第1のメモリと、
    起動された前記ブートローダにより、前記第1及び第2の識別情報に応じて前記第1のバンクと前記第2のバンクとから一つ選択されたバンクを示すバンク識別情報を記憶する所定領域を備えた第2のメモリと、
    前記第7の領域からブートローダを読み出して起動させ、その起動させたブートローダにより、読み出した前記第1及び第2の識別情報の比較結果に応じて前記第1及び第2のバンクから有効なバンクを一つ選択させ、その選択されたバンクを示す前記バンク識別情報を前記第2のメモリの前記所定領域に書き込ませ、前記選択されたバンクからカーネルを読み出して起動させ、その起動させたカーネルにより、前記第2のメモリから読み出した前記バンク識別情報によって自カーネルが起動された前記第1のメモリ内のバンクを特定させ、その特定されたバンクに記憶されているユーザランドをマウントさせる制御部と、
    を有することを特徴とするLinuxプログラム起動システム。
  2. カーネルとそのカーネルと対で動作するユーザランドとを備えたLinuxプログラムにおいて、カーネルを起動させてユーザランドをマウントさせるLinuxプログラム起動システムであって、
    一つのLinuxプログラムのカーネルを記憶する領域と、そのカーネルにリンクする前記一つのLinuxプログラムのユーザランドを記憶する領域と、前記一つのLinuxプログラムの新旧を識別するための識別情報を記憶する領域との3つの領域をそれぞれ有する複数のバンクと、ブートローダを記憶する領域とを備えた第1のメモリと、
    起動された前記ブートローダにより、各前記識別情報に応じて前記複数のバンクから一つ選択されたバンクを示すバンク識別情報を記憶する所定領域を備えた第2のメモリと、
    前記第1のメモリからブートローダを読み出して起動させ、その起動させたブートローダにより、読み出した前記各識別情報の比較結果に応じて前記複数のバンクから有効な一つのバンクを選択させ、その選択されたバンクを示す前記バンク識別情報を前記第2のメモリの前記所定領域に書き込ませ、前記選択されたバンクからカーネルを読み出して起動させ、その起動させたカーネルにより、前記第2のメモリから読み出した前記バンク識別情報によって自カーネルが起動された前記第1のメモリ内のバンクを特定させ、その特定されたバンクに記憶されているユーザランドをマウントさせる制御部と、
    を有することを特徴とするLinuxプログラム起動システム。
JP2010166945A 2010-07-26 2010-07-26 Linuxプログラム起動システム Active JP4735765B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010166945A JP4735765B2 (ja) 2010-07-26 2010-07-26 Linuxプログラム起動システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010166945A JP4735765B2 (ja) 2010-07-26 2010-07-26 Linuxプログラム起動システム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004294953A Division JP2006107249A (ja) 2004-10-07 2004-10-07 Linuxプログラム起動システム

Publications (2)

Publication Number Publication Date
JP2010282645A true JP2010282645A (ja) 2010-12-16
JP4735765B2 JP4735765B2 (ja) 2011-07-27

Family

ID=43539262

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010166945A Active JP4735765B2 (ja) 2010-07-26 2010-07-26 Linuxプログラム起動システム

Country Status (1)

Country Link
JP (1) JP4735765B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013152695A (ja) * 2011-12-27 2013-08-08 Kyocera Document Solutions Inc 画像形成装置
CN112000382A (zh) * 2020-08-26 2020-11-27 绿盟科技集团股份有限公司 一种Linux系统启动方法、装置及可读存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013152695A (ja) * 2011-12-27 2013-08-08 Kyocera Document Solutions Inc 画像形成装置
CN112000382A (zh) * 2020-08-26 2020-11-27 绿盟科技集团股份有限公司 一种Linux系统启动方法、装置及可读存储介质
CN112000382B (zh) * 2020-08-26 2023-10-13 绿盟科技集团股份有限公司 一种Linux系统启动方法、装置及可读存储介质

Also Published As

Publication number Publication date
JP4735765B2 (ja) 2011-07-27

Similar Documents

Publication Publication Date Title
US7702894B2 (en) System and method for loading programs from HDD independent of operating system
EP3764237A1 (en) System startup method and apparatus, electronic device and storage medium
JP3593241B2 (ja) 計算機の再起動方法
US7293166B2 (en) Method of indicating a format of accessing an operating system contained on a USB memory device
US9372754B2 (en) Restoring from a legacy OS environment to a UEFI pre-boot environment
JP4668416B2 (ja) ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護
TWI514408B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
US6205558B1 (en) Recovery of file systems after modification failure
CN107003864B (zh) 恢复片上系统设备
US20140325496A1 (en) Apparatus and method for firmware upgrade using usb
KR20010006749A (ko) 설치된 모든 대용량 저장 장치들의 리부트/파워 온리컨피그레이션을 최종 사용한 컨피그레이션과 동일하게하도록 각각의 대용량 저장 장치의 비휘발성 메모리에시스템 레벨 대용량 저장 컨피그레이션 데이터를 저장하는장치 및 방법
US20080270685A1 (en) Information processing apparatus and firmware updating method
JP5778296B2 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
US8291206B2 (en) Method for booting computer system
CN113849230A (zh) 服务器启动方法、装置、电子设备及可读存储介质
JP4735765B2 (ja) Linuxプログラム起動システム
KR101582919B1 (ko) 전자장치 및 그 부팅방법
CN110825421A (zh) 一种固件升级方法、系统及可读存储介质
CN100498710C (zh) 自储存装置上读取选择只读存储器程序代码的方法
TWI754221B (zh) 軟體存留性關閉技術
CN115129384A (zh) 一种电子设备的启动程序的运行方法和电子设备
KR20030060342A (ko) 개인 휴대 정보 단말기의 부팅 방법
JP2006107249A (ja) Linuxプログラム起動システム
JP2006107248A (ja) Linuxプログラム起動システム
JP2007164392A (ja) 計算機

Legal Events

Date Code Title Description
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: 20110329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110411

R151 Written notification of patent or utility model registration

Ref document number: 4735765

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350