JP2003330770A - 圧縮rom化ファイルシステム - Google Patents

圧縮rom化ファイルシステム

Info

Publication number
JP2003330770A
JP2003330770A JP2002135782A JP2002135782A JP2003330770A JP 2003330770 A JP2003330770 A JP 2003330770A JP 2002135782 A JP2002135782 A JP 2002135782A JP 2002135782 A JP2002135782 A JP 2002135782A JP 2003330770 A JP2003330770 A JP 2003330770A
Authority
JP
Japan
Prior art keywords
compressed
file system
page
file
rom
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002135782A
Other languages
English (en)
Other versions
JP2003330770A5 (ja
Inventor
Shigeya Senda
滋也 千田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2002135782A priority Critical patent/JP2003330770A/ja
Publication of JP2003330770A publication Critical patent/JP2003330770A/ja
Publication of JP2003330770A5 publication Critical patent/JP2003330770A5/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 デマンドページングを採用したOSで利用可
能な圧縮ROM化ファイルシステムを提供する。 【解決手段】 主記憶装置と補助記憶装置の間のデータ
のやりとりを、仮想アドレス空間を固定したページ単位
でリアルタイム処理するデマンドページングを採用する
オペレーションシステム内に圧縮ROM化ファイルシス
テムを有し、該圧縮ROM化ファイルシステムは、ファ
イルシステム上のファイル内容をオペレーティングシス
テムのページ記憶の大きさごとに分割し、圧縮する手段
を有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、圧縮ROM化ファ
イルシステムに関し、特に、組み込みシステムの圧縮R
OM化ファイルシステムに関する。
【0002】
【従来の技術】LinuxやNetBSD、FreeB
SD、OpenBSDなどフリーのUnix処理系(以
下unixクローン)を組み込み分野に利用しようとい
う気運が高まっている。組み込み分野でのシステムの複
雑さの増大と、unixクローンの優秀さと、ソースが
公開されていてホスト環境に一般的に使われているun
ixホストとの互換性があることなどから、開発がしや
すいためである。通常、unixシステムでは、ファイ
ルシステムを持つことが前提となる。HDDなどの装置
を通常持たない組み込み環境では、ROMまたはRAM
がファイルシステムを利用可能なデバイスとしてシステ
ムに組み込み、システムのルートとなるファイルシステ
ムとなる。
【0003】また、システムの価格を抑えるためにシス
テムのプログラムを圧縮してROM容量を圧縮すること
が一般的に行われている。通常の方法ではシステム全体
を圧縮してROMにおき、ブート時にシステム全体をR
AMに展開することでROM容量を押さえることが行わ
れている。
【0004】
【発明が解決しようとする課題】しかし、unixのコ
マンドは、kernelが起動した後、ファイルシステ
ム上のファイルとして存在しており、それをローダがメ
モリ上に展開することで実行される。従って、従来行わ
れているシステムの圧縮では、kernel部分をRO
M上に圧縮してRAM上に展開することはできるが、コ
マンドそのものを圧縮することはできない。
【0005】そこで、通常の汎用OSでも、ファイルシ
ステム上のファイルを圧縮する方法が考えられてはい
る。例えば、コマンド自体にコード展開ルーチンを組み
込むことや、ファイルシステムに圧縮機能を持たせる方
法である。これらの方法はファイル全体を圧縮する方法
であり、メモリが潤沢にあり、スワップ領域がある(H
DD上)ことを前提としている。たとえば圧縮ファイル
をいったんファイルシステム上/RAM上にすべて展開
してそれを利用するなどの方法である。これらの方法、
例えばWindows(登録商標)/NTなどで採用さ
れている圧縮ファイルシステムや特開平6−4376号
公報の「データ圧縮書き込み形ファイルシステム」など
はディスク容量を押さえるための方法であり、展開時に
システムのHDD/RAMを使用するため、組み込みシ
ステムとしてROM/RAMなどの制約がある場合に好
ましい方法ではない。
【0006】本発明は、デマンドページング容量単位で
ファイルシステムを圧縮し、圧縮単位のエントリを管理
し、ページングで必要な単位で命令コードを展開可能と
することで、スワップのない環境でページアウトがおこ
ったとしても、圧縮されたページをファイルシステムか
ら展開可能とし、ROM容量を押さえ、展開用一時メモ
リ領域やswapなど二次的な展開領域を必要としない
unixクローンシステムなど、デマンドページングを
採用したOSで利用可能な圧縮ROM化ファイルシステ
ムを提供することを目的とする
【0007】
【課題を解決するための手段】かかる目的を達成するた
めに、請求項1記載の発明は、主記憶装置と補助記憶装
置の間のデータのやりとりを、仮想アドレス空間を固定
したページ単位にリアルタイムで処理するデマンドペー
ジングを採用するオペレーションシステム内に圧縮RO
M化ファイルシステムを有し、該圧縮ROM化ファイル
システムは、ファイルシステム上のファイル内容をオペ
レーティングシステムのページ記憶の大きさごとに分割
し、圧縮する手段を有することを特徴としている。
【0008】請求項2記載の発明は、請求項1記載の発
明において、前記圧縮ROM化ファイルシステムは、ペ
ージ単位のアクセスが発生した時点で、ページをメモリ
上に展開する手段を有することを特徴としている。
【0009】請求項3記載の発明は、請求項1記載の発
明において、前記圧縮ROM化ファイルシステムは、ペ
ージ単位の圧縮データの記憶媒体上の位置を保持するペ
ージオフセット配列と、オフセットで示された位置にペ
ージを対応する圧縮データを持つコマンド形式と、圧縮
コマンド形式に対応したコマンドローダとを有すること
を特徴としている。
【0010】請求項4記載の発明は、請求項1記載の発
明において、ページ単位の圧縮データのオフセット位置
を記録するデータオフセットテーブルを有することを特
徴としている。
【0011】請求項5記載の発明は、請求項4記載の発
明において、前記オフセットテーブルのオフセット位置
は、ファイル位置情報として利用することを特徴として
いる。
【0012】
【発明の実施の形態】次に添付図面を参照して本発明の
実施形態を詳細に説明する。
【0013】図1は、unixクローンOSを搭載した
組み込みシステムの構成例である。本システムは、RO
M1と、RAM2と、CPU3と、周辺デバイス4と、
BUS5とを有し構成されている。周辺デバイス4はこ
の組み込みシステムの制御対象であるが本発明では特に
対象を示さないでも説明可能であるので特定のものを示
さない。
【0014】図2は、ROM1の内部構成を示す図であ
る。ROM1の内部は、システムのブートモニタ21
と、システム(kernel)22と、ROM化ファイ
ルシステム23(以下ROMFS)とを有して構成され
ている。この例では、複数のROMFSがある場合を想
定している。
【0015】図3は、ROMFS内部のファイルシステ
ム情報を示すプログラムであり、図4、図5はROMF
Sの内部構成を示す図である。ROMFSはファイルシ
ステムとして必要なファイルシステム情報6と、ディレ
クトリ情報7と、ファイル情報8と、パス情報9と、フ
ァイルデータ領域10とを有し構成されている。
【0016】システムは、コールドベクタアドレスから
ブートモニタ21を起動して動作する。ブートモニタ2
1はROM上のシステム(kernel)22をROM
上あるいはRAM上に展開して実行する。RAM上に展
開して実行する場合はROM上では圧縮した形式で書き
込み、ブートモニタ21がそれを伸長してRAM上に展
開して実行することができる。この方法は、通常の組み
込みシステムでは一般的に行われているROM圧縮の方
法である。kernelはOS本体であり、実行時に各
デバイスを初期化する。その際にファイルシステムとし
て最初のROMFSを、ルートのファイルシステムとし
てマウントして処理する。
【0017】ファイルシステム情報6は、ファイルシス
テム全体の情報を保持するもので、ROMFSの先頭に
置かれる。この後ろにファイル情報8と、ディレクトリ
情報7と、パス情報9と、データ領域10とがおかれ
る。ファイル情報8の先頭は、前記ファイルシステムの
ルートのファイル情報を示す。ファイル情報は、ファイ
ルシステムのディレクトリを含むすべてのファイルに対
して1つずつ用意される。ファイルは、ディレクトリ情
報7によりディレクトリ位置と関連付けられる。エント
リがファイルである場合は、データ領域10に実際のデ
ータが格納される。
【0018】ファイルシステム管理ルーチンは、システ
ム(kernel)22に組み込まれたルーチンであ
り、このルーチンを通してROM1上のROMFSイメ
ージをファイルシステムとして利用することが可能にな
る。ここではBSD系OSを仮定する。BSDでは、フ
ァイルシステムの違いをVFSという形で吸収する。V
FSは仮想的なファイルシステムであり、kernel
の内部でVFSを通してアクセスされたファイル操作は
実際の各ファイルシステムの違いを反映した個別ファイ
ルシステムごとの操作ルーチンの関数テーブルによって
操作する。ROMFSのOS上のサポートは、この関数
テーブルでROMFSを操作するように用意することで
実現する。
【0019】図6は、圧縮されたコマンドデータ形式を
示す図である。このデータはROMFS23上のデータ
領域上におかれ、コマンドローダがこの形式を認識して
処理する。データは、テキスト領域に関しては、OSが
デマンドページングする大きさ(ここでは4Kbyte
とする)単位で圧縮された形式で格納される。圧縮され
た後の大きさはバラバラになってしまうため各圧縮単位
へのオフセットと圧縮前後の大きさもつテーブルをペー
ジオフセット配列62として持つ。また、データ圧縮形
式であることを示すためのヘッダが先頭にあり、ローダ
がこの形式であることを認識可能としている。
【0020】ページオフセット配列62は、ヘッダ先頭
から各圧縮ページ先頭間のオフセットおよびページの圧
縮/非圧縮時サイズを配列にしたものである。コマンド
ローダは、オフセット配列を参照することで要求された
ページ毎にRAM2上に伸長することが可能である。テ
キスト領域(機械語領域)伸長後のサイズは、必ずペー
ジサイズ(4Kbyte)となるように配置される。テ
キスト領域ではないシンボルテーブル等のエリアは、4
Kbyte単位とは限らない。
【0021】次に、コマンドローダの処理を説明する。
これはOSの機能の1つであり、ファイルシステム上の
実行可能形式のプログラムを、システム上の仮想空間に
ロードして、プログラムとして実行可能とする。コマン
ドローダは、ファイルのヘッダから実行形式を判別す
る。たとえば、elf形式、aout形式などである。
複数のコマンド形式を判別し実行するため、コマンドロ
ーダに対して各形式毎の処理関数が用意されており、こ
れらの関数を呼び出すことで形式間の差異を吸収する。
BSD系OSではヘッダ判別関数とファイルロード関数
が各形式毎に用意される。 check_header − ヘッダ情報からこの関数
テーブルで処理可能なヘッダか判別する。 makecmds − 実行形式をロードする。
【0022】圧縮コマンド形式のヘッダ61だと認識さ
れるとmakecmdsが呼び出され、コマンドとして
仮想空間上にロード処理がなされる。圧縮コマンド形式
はelfに準じたセクション単位の管理がなされている
ものとする。makecmdsはsectionを仮想
記憶(以下VM)領域にページ単位で割り当てる。この
際、テキストセクション以外のセクション(BSS、d
ataなど)は通常のページ管理システム(以下ページ
ャ vn_pager)で管理され、makecmds
処理時点で仮想記憶ページメモリ上に展開されるが、テ
キストセクションは特殊な圧縮ROMFSページャ(r
omfs_pager)によって管理されるように仮想
記憶マップに関連づけられる(ただし、すべてのセクシ
ョンをromfs_pagerで管理する方法もあ
る)。また、圧縮されていないセクション等は非圧縮エ
リア66に格納される。
【0023】romfs_pagerは、ページャと関
連づけられたページに対する操作が行われた際に起動さ
れる関数テーブルとして、OSの仮想記憶管理システム
に登録されている。図7は、romfs_pagerの
関数テーブルを示すプログラムである。
【0024】romfs_pagerでは、getpa
geが呼ばれた時点で対象ページに対するRAM領域の
確保、伸長処理が行われる。この処理を図8に示す。
【0025】getpage関数は、まず引数のvno
deからROMFS上のエントリを得る(ステップS8
1)。そして、引数のオフセットから必要とされる圧縮
ページエントリを得て(ステップS82)、ページメモ
リをアロケートし(ステップS83)、ページメモリ上
に圧縮ページを伸長し(ステップS84)、ページ情報
を更新し(ステップS85)、処理を終了させる。
【0026】ページ利用要求があると、このルーチンを
通してメモリ上に伸長処理が行われてページが割り当て
られる。たとえば、ページ管理システムは、利用できる
メモリが少なくなると、使用されていない再マップ可能
なページを破棄することで、利用可能なページを確保す
る。本発明のように、ページ単位で命令領域をページイ
ン可能にすることで、コマンド全体のテキスト領域を展
開する余計なメモリ領域を確保することなく、on−d
emandでpaging可能な圧縮ROM化ファイル
システムが実現できる。
【0027】別の実施例として、圧縮コマンド形式を使
うのではなく、データ領域を4Kbyte単位で圧縮
し、ファイル毎の4Kbyteごとのファイルデータ領
域のオフセット位置を記録したオフセットテーブルを使
用する際の実施例を示す。
【0028】前の実施例では、プログラムファイル構造
に依存した実装であったが、この実施例では、大域的な
圧縮されたデータ片の位置を管理する。
【0029】図9は、各ファイルを4Kbyte毎に圧
縮したデータ(以下、圧縮フラグメント91)に分解
し、その圧縮フラグメント位置オフセットを配列にした
オフセットテーブルをもつファイルシステムイメージを
示した図である。
【0030】1つのファイルは、圧縮フラグメント93
の連続で表現される。圧縮フラグメント93は実際には
非圧縮である場合もあり得る。1つのファイルはファイ
ルデータ領域では連続した圧縮フラグメント93で構成
されているものとする。つまりファイルはオフセットテ
ーブル91上の、先頭圧縮フラグメント位置を使って示
すことが出来る。
【0031】圧縮フラグメント93のファイルデータ領
域92上のサイズはオフセットテーブル91の次のエン
トリとのオフセットの差で求めることが出来る。
【0032】この構成から、ファイル情報中のファイル
位置情報はオフセットテーブル上のファイル先頭フラグ
メント位置へのオフセットを使用することとする。この
関係を図10に示す。
【0033】この実装でのgetpageの圧縮ファイ
ルエントリの取得は、単にファイル位置情報にページオ
フセットを足した位置のフラグメントオフセット100
の値をファイルデータ領域の圧縮フラグメント101の
位置に割り出すだけである。
【0034】
【発明の効果】以上の説明から明らかなように、本発明
によれば、ROM等の物理記憶媒体にファイルシステム
を構成し、そのファイルシステムを利用して動作するオ
ペレーティングシステムにおいて、ファイルシステム上
のファイル内容をオペレーティングシステムのページ記
憶の大きさ毎に分割して圧縮を行うことを特徴とするの
で、ROMの容量を押さえることができ、容量の小さな
ROMを使用することができ、安価なシステムを作るこ
とができる。
【0035】また、前記ファイルシステム構成方式にお
いて、ページ単位のアクセスが発生した時点でページを
メモリ上に展開することを特徴とするので、圧縮内容展
開用のメモリをファイル単位で持つ必要がなく、少ない
RAM容量でシステムを実現でき安価なシステムを作る
ことができる。
【0036】また、前記ファイルシステムにおいて、ペ
ージ単位の圧縮データのオフセット位置を記録する、デ
ータオフセットテーブルをもつので、圧縮データをペー
ジ毎に管理でき、オペレーティングシステムとの親和性
を損なうことなく、ROMの容量を減らすことが出来
る。
【0037】また、前記ファイルシステムにおいて、オ
フセットテーブルのオフセット位置をファイル位置情報
として利用するので、ファイルの情報から圧縮データを
参照することが簡便に出来る。
【図面の簡単な説明】
【図1】unixクローンOSを搭載した組み込みシス
テムの構成例である。
【図2】ROM1の構成を示す図である。
【図3】ROMFS内部のファイルシステム情報の関数
テーブルを示すプログラムである。
【図4】ROMFSの内部構成を示す第1の図である。
【図5】ROMFSの内部構成を示す第2の図である。
【図6】圧縮されたコマンドデータ形式を示す図であ
る。
【図7】romfs_pagerの関数テーブルを示す
プログラムである。
【図8】getpageが呼ばれた際の、対象ページに
対するRAM領域の確保、伸長処理手順を示すフローチ
ャートである。
【図9】各ファイルを4Kbyte毎に圧縮したデータ
に分解し、その圧縮フラグメント位置オフセットを配列
にしたオフセットテーブルを持つファイルシステムイメ
ージを示す図である。
【図10】ファイル情報中のファイル位置情報と、オフ
セットテーブル上のファイル先頭フラグメント位置との
関係を示す図である。
【符号の説明】
1 ROM 2 RAM 3 CPU 4 周辺デバイス 5 BUS 6 ファイルシステム情報 7 ディレクトリ情報 8 ファイル情報 9 パス情報 10 データ領域 21 ブートモニタ 22 システム(kernel) 61 header 62 ページオフセット配列 91 オフセットテーブル 92 ファイルデータ領域 93 圧縮フラグメント

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 主記憶装置と補助記憶装置の間のデータ
    のやりとりを、仮想アドレス空間を固定したページ単位
    でリアルタイム処理するデマンドページングを採用する
    オペレーションシステム内に圧縮ROM化ファイルシス
    テムを有し、 該圧縮ROM化ファイルシステムは、ファイルシステム
    上のファイル内容をオペレーティングシステムのページ
    記憶の大きさごとに分割し、圧縮する手段を有すること
    を特徴とする圧縮ROM化ファイルシステム。
  2. 【請求項2】 前記圧縮ROM化ファイルシステムは、
    ページ単位のアクセスが発生した時点で、ページをメモ
    リ上に展開する手段を有することを特徴とする請求項1
    記載の圧縮ROM化ファイルシステム。
  3. 【請求項3】 前記圧縮ROM化ファイルシステムは、
    ページ単位の圧縮データの記憶媒体上の位置を保持する
    ページオフセット配列と、 オフセットで示された位置にページを対応する圧縮デー
    タを持つコマンド形式と、 圧縮コマンド形式に対応したコマンドローダとを有する
    ことを特徴とする請求項1記載の圧縮ROM化ファイル
    システム。
  4. 【請求項4】 ページ単位の圧縮データのオフセット位
    置を記録するデータオフセットテーブルを有することを
    特徴とする請求項1記載の圧縮ROM化ファイルシステ
    ム。
  5. 【請求項5】 前記オフセットテーブルのオフセット位
    置は、ファイル位置情報として利用することを特徴とす
    る請求項4記載の圧縮ROM化ファイルシステム。
JP2002135782A 2002-05-10 2002-05-10 圧縮rom化ファイルシステム Pending JP2003330770A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002135782A JP2003330770A (ja) 2002-05-10 2002-05-10 圧縮rom化ファイルシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002135782A JP2003330770A (ja) 2002-05-10 2002-05-10 圧縮rom化ファイルシステム

Publications (2)

Publication Number Publication Date
JP2003330770A true JP2003330770A (ja) 2003-11-21
JP2003330770A5 JP2003330770A5 (ja) 2006-03-02

Family

ID=29698014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002135782A Pending JP2003330770A (ja) 2002-05-10 2002-05-10 圧縮rom化ファイルシステム

Country Status (1)

Country Link
JP (1) JP2003330770A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017537384A (ja) * 2014-10-29 2017-12-14 クアルコム,インコーポレイテッド デマンドページングのための効率的な解凍ローカリティシステム
CN110032542A (zh) * 2019-04-19 2019-07-19 宁波三星医疗电气股份有限公司 一种cramfs文件系统管理方法、装置及电子设备
US10860257B2 (en) 2017-09-25 2020-12-08 Ricoh Company, Ltd. Information processing apparatus and information processing method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017537384A (ja) * 2014-10-29 2017-12-14 クアルコム,インコーポレイテッド デマンドページングのための効率的な解凍ローカリティシステム
US10860257B2 (en) 2017-09-25 2020-12-08 Ricoh Company, Ltd. Information processing apparatus and information processing method
CN110032542A (zh) * 2019-04-19 2019-07-19 宁波三星医疗电气股份有限公司 一种cramfs文件系统管理方法、装置及电子设备
CN110032542B (zh) * 2019-04-19 2021-04-27 宁波三星医疗电气股份有限公司 一种cramfs文件系统管理方法、装置及电子设备

Similar Documents

Publication Publication Date Title
US6496882B2 (en) Method and system for virtual memory compression in an embedded system
US6374353B1 (en) Information processing apparatus method of booting information processing apparatus at a high speed
US7996720B2 (en) Apparatus and method of mirroring firmware and data of embedded system
US6195107B1 (en) Method and system for utilizing virtual memory in an embedded system
US6421776B1 (en) Data processor having BIOS packing compression/decompression architecture
US4466056A (en) Address translation and generation system for an information processing system
JP2007501450A (ja) コンピュータ装置のデータにアクセスする方法
JPH06324849A (ja) オペレーティング・システム環境の起動方法およびシステム
JP2006196018A (ja) Biosをホスト・コンピュータに提供する方法と配置
EP1873647A1 (en) Computer system, memory management method, and program thereof
US20030229768A1 (en) Process, apparatus, and system for passing data between partitions in a storage device
JPH1124943A (ja) 計算機再起動方法および計算機停止方法
EP1378830A1 (en) Operating system selector and data storage drive
US8738890B2 (en) Coupled symbiotic operating system
GB2319865A (en) Managing partially compressed ROM image code
JP2007535241A (ja) 条件付で実行可能モジュールを縮小するシステムおよび方法
JP2005301639A (ja) Osの障害対応方法およびそのプログラム
US20040221147A1 (en) Method for updating BIOS
US6823450B2 (en) Mechanism for eliminating need for flash memory in software RAID
JP2003330770A (ja) 圧縮rom化ファイルシステム
CN112015159A (zh) 一种基于双核mcu的故障记录存储方法及计算机系统
JP6080492B2 (ja) 情報処理装置、起動方法およびプログラム
JP2001229053A (ja) ダンプ取得機構を備えた計算機
JP3726701B2 (ja) カーネル空間のデマンドページング・スワップアウト方式および方法
WO2023030173A1 (zh) 一种管理动态库的方法及相应装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041216

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080428

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080902