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