JPH05342075A - ファイル管理システム - Google Patents
ファイル管理システムInfo
- Publication number
- JPH05342075A JPH05342075A JP4145739A JP14573992A JPH05342075A JP H05342075 A JPH05342075 A JP H05342075A JP 4145739 A JP4145739 A JP 4145739A JP 14573992 A JP14573992 A JP 14573992A JP H05342075 A JPH05342075 A JP H05342075A
- Authority
- JP
- Japan
- Prior art keywords
- file
- directory
- directory file
- imaginary
- files
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】 ディレクトリファイル間のリンク処理可能と
するとともに、全体のファイル構造の把握を容易とす
る。 【構成】 [/usr3/jun]を実ディレクトリファイル
(RD)として[/usr1/sum]という虚ディレクトリフ
ァイル(ID)を作る場合、まずIDのiノードとし
て、RDと同じ実体情報をもつiノードを作成する。I
Dの親ディレクトリファイル[/usr1]の実体に[su
m]というファイルが追加される。さらに、RDの虚デ
ィレクトリファイルリスト29に、IDおよびその親ディ
レクトリファイルのiノード番号が追加される。したが
って、RDが管理しているファイルから、IDの存在を
知ることができる。
するとともに、全体のファイル構造の把握を容易とす
る。 【構成】 [/usr3/jun]を実ディレクトリファイル
(RD)として[/usr1/sum]という虚ディレクトリフ
ァイル(ID)を作る場合、まずIDのiノードとし
て、RDと同じ実体情報をもつiノードを作成する。I
Dの親ディレクトリファイル[/usr1]の実体に[su
m]というファイルが追加される。さらに、RDの虚デ
ィレクトリファイルリスト29に、IDおよびその親ディ
レクトリファイルのiノード番号が追加される。したが
って、RDが管理しているファイルから、IDの存在を
知ることができる。
Description
【0001】
【産業上の利用分野】この発明は、ファイル管理システ
ムに関するものであり、特に、そのディレクトリファイ
ル間のリンク処理に関するものである。
ムに関するものであり、特に、そのディレクトリファイ
ル間のリンク処理に関するものである。
【0002】
【従来の技術】一般的にUNIX等のファイル管理シス
テムにおいては、複数のファイルを階層構造で管理す
る。図6に、UNIX(商標)(4.3BSD版)のフ
ァイル管理システムを示す。物理ディスク51は、パーテ
ィションと呼ばれる複数の論理的な区分に分割されてい
る。この例ではパーティション51a,51b,51c,51dに分割
されている。なお、一のパーティションが一のファイル
システムを構成する。
テムにおいては、複数のファイルを階層構造で管理す
る。図6に、UNIX(商標)(4.3BSD版)のフ
ァイル管理システムを示す。物理ディスク51は、パーテ
ィションと呼ばれる複数の論理的な区分に分割されてい
る。この例ではパーティション51a,51b,51c,51dに分割
されている。なお、一のパーティションが一のファイル
システムを構成する。
【0003】各パーティションは、複数のシリンダグル
ープに分割されており、そのうちの一のシリンダグルー
プ55は、スーパーブロック57、シリンダグループブロッ
ク59、iノードリスト61およびデータブロック63から構
成されている。他のシリンダグループも同様である。
ープに分割されており、そのうちの一のシリンダグルー
プ55は、スーパーブロック57、シリンダグループブロッ
ク59、iノードリスト61およびデータブロック63から構
成されている。他のシリンダグループも同様である。
【0004】スーパーブロック57には、当該ファイルシ
ステムの大きさ等、そのファイルシステムを管理するた
めに必要な情報が格納されている。なお、スーパーブロ
ックは、ファイルシステムごとに1つ設ければよいので
あるが、信頼性を高めるため、各シリンダーグループブ
ロックに同じ情報が記憶されている。シリンダーグルー
プブロック59には、シリンダグループ内の有効ブロック
のビットマップ情報や統計情報が格納されている。
ステムの大きさ等、そのファイルシステムを管理するた
めに必要な情報が格納されている。なお、スーパーブロ
ックは、ファイルシステムごとに1つ設ければよいので
あるが、信頼性を高めるため、各シリンダーグループブ
ロックに同じ情報が記憶されている。シリンダーグルー
プブロック59には、シリンダグループ内の有効ブロック
のビットマップ情報や統計情報が格納されている。
【0005】iノードリスト61には、iノードの配列が
格納されており、ここに格納されているiノードの数の
分だけのファイルを、そのシリンダーグループブロック
に作成することができる。各iノードには、ファイルの
種類(通常ファイルかディレクトリファイルか等)、そ
のファイルの大きさ、およびデータブロックへのアドレ
ス情報等の各ファイルの属性が格納されている。図7
に、iノードリスト61に格納されているiノードの一例
を示す。同図Aにおいて、ファイルの種類は[D]であ
るので、ディレクトリファイルであることがわかる。ま
た同図Bにおいて、ファイルの種類は[−]であるの
で、通常ファイルであることがわかる。なお、ファイル
の実体を管理している領域およびファイルの大きさ等か
ら、そのファイルの実体を知ることができる。
格納されており、ここに格納されているiノードの数の
分だけのファイルを、そのシリンダーグループブロック
に作成することができる。各iノードには、ファイルの
種類(通常ファイルかディレクトリファイルか等)、そ
のファイルの大きさ、およびデータブロックへのアドレ
ス情報等の各ファイルの属性が格納されている。図7
に、iノードリスト61に格納されているiノードの一例
を示す。同図Aにおいて、ファイルの種類は[D]であ
るので、ディレクトリファイルであることがわかる。ま
た同図Bにおいて、ファイルの種類は[−]であるの
で、通常ファイルであることがわかる。なお、ファイル
の実体を管理している領域およびファイルの大きさ等か
ら、そのファイルの実体を知ることができる。
【0006】図6に戻って、データブロック63には、通
常ファイルおよびディレクトリファイルの実体が格納さ
れている。通常ファイルの実体には、図8に示すように
当該ファイルの実際のデータが格納されている。
常ファイルおよびディレクトリファイルの実体が格納さ
れている。通常ファイルの実体には、図8に示すように
当該ファイルの実際のデータが格納されている。
【0007】ディレクトリファイルの実体の一例を図9
A,図9C,図9Eに示す。ディレクトリファイルの実
体部分には、当該ディレクトリファイルのiノード番
号、当該ディレクトリファイルの親ディレクトリファイ
ルのiノード番号、および当該ディレクトリファイルが
管理しているファイルのiノード番号およびファイル名
が格納されている。なお、ここでいうファイルには、デ
ィレクトリファイルも含む。
A,図9C,図9Eに示す。ディレクトリファイルの実
体部分には、当該ディレクトリファイルのiノード番
号、当該ディレクトリファイルの親ディレクトリファイ
ルのiノード番号、および当該ディレクトリファイルが
管理しているファイルのiノード番号およびファイル名
が格納されている。なお、ここでいうファイルには、デ
ィレクトリファイルも含む。
【0008】例えば、図9Aは、ルートディレクトリを
示す。同図においてファイル名[・]に対応するiノー
ド番号が、そのディレクトリファイルのiノード番号で
ある。すなわちルートディレクトリのiノード番号は2
である。その下欄のファイル名[・・]に対応するiノ
ード番号は、ルートディレクトリの親ディレクトリファ
イルのiノード番号である。ルートディレクトリには、
親ディレクトリファイルが存在しないため、親ディレク
トリファイルとして同じiノード番号2が与えられてい
る。その下欄には、ルートディレクトリが管理している
ファイルが格納されており、ファイル[usr1]のiノー
ド番号は3、ファイル[usr2]のiノード番号は4、フ
ァイル[usr3]のiノード番号は5、ファイル[usr4]
のiノード番号は6であることがわかる。
示す。同図においてファイル名[・]に対応するiノー
ド番号が、そのディレクトリファイルのiノード番号で
ある。すなわちルートディレクトリのiノード番号は2
である。その下欄のファイル名[・・]に対応するiノ
ード番号は、ルートディレクトリの親ディレクトリファ
イルのiノード番号である。ルートディレクトリには、
親ディレクトリファイルが存在しないため、親ディレク
トリファイルとして同じiノード番号2が与えられてい
る。その下欄には、ルートディレクトリが管理している
ファイルが格納されており、ファイル[usr1]のiノー
ド番号は3、ファイル[usr2]のiノード番号は4、フ
ァイル[usr3]のiノード番号は5、ファイル[usr4]
のiノード番号は6であることがわかる。
【0009】つぎに、図11に示すようなツリー構造の
ファイルシステムにおいて、ファイル[/usr3/jun/car.
c]にアクセスする手順について説明する。ルートディ
レクトリの実体は、すでに説明したように、図9Aに示
すような構造をしており、ファイル[/usr3]のiノー
ド番号は5であるとわかる。iノード番号5のiノード
を図9Bに示す。同図において、ファイルの種類は
[D]であるので[/usr3]がディレクトリファイルで
あることがわかる。さらに、その実体を管理している領
域等を見ると、図9Cに示すようにディレクトリファイ
ル[/usr3]の実体がわかる。
ファイルシステムにおいて、ファイル[/usr3/jun/car.
c]にアクセスする手順について説明する。ルートディ
レクトリの実体は、すでに説明したように、図9Aに示
すような構造をしており、ファイル[/usr3]のiノー
ド番号は5であるとわかる。iノード番号5のiノード
を図9Bに示す。同図において、ファイルの種類は
[D]であるので[/usr3]がディレクトリファイルで
あることがわかる。さらに、その実体を管理している領
域等を見ると、図9Cに示すようにディレクトリファイ
ル[/usr3]の実体がわかる。
【0010】ディレクトリファイル[/usr3]の実体を
見ることにより、ファイル[jun]のiノード番号は7
であるとわかる。iノード番号7のiノードを図9Dに
示す。同図において、ファイルの種類は[D]であるの
で[/jun]がディレクトリファイルであることがわか
る。さらに、その実体を管理している領域等を見ると、
図9Eに示すようにディレクトリファイル[/jun]の実
体がわかる。
見ることにより、ファイル[jun]のiノード番号は7
であるとわかる。iノード番号7のiノードを図9Dに
示す。同図において、ファイルの種類は[D]であるの
で[/jun]がディレクトリファイルであることがわか
る。さらに、その実体を管理している領域等を見ると、
図9Eに示すようにディレクトリファイル[/jun]の実
体がわかる。
【0011】ディレクトリファイル[/jun]の実体を見
ることにより、ファイル[car.c]のiノード番号は1
1であるとわかる。iノード番号11のiノードを図9
Fに示す。その実体を管理している領域等を見ることに
より、ファイル[/usr3/jun/car.c]の内容がわかる。
このようにしてファイル[/usr3/jun/car.c]にアクセ
スすることができる。
ることにより、ファイル[car.c]のiノード番号は1
1であるとわかる。iノード番号11のiノードを図9
Fに示す。その実体を管理している領域等を見ることに
より、ファイル[/usr3/jun/car.c]の内容がわかる。
このようにしてファイル[/usr3/jun/car.c]にアクセ
スすることができる。
【0012】ところで、すでに存在する実体に対して、
別のファイル名でアクセスすることができれば、同じ内
容のファイルを複数持つ必要がなくなり、ファイルシス
テムのデータ領域を節約することができる。また、デー
タの一元化も図ることができる。たとえば、ある参照フ
ァイルを別のディレクトリファイルに移した場合、別の
ファイル名でアクセスすることができれば、いままでそ
のファイル名でその実体にアクセスしていた実行プログ
ラムを書き換える必要がない。また、他人が管理してい
るファイルを参照する際、他人が設定しているファイル
名以外で、そのファイルへアクセスするためには、目的
ファイルを、アクセスするファイル名で自己のディレク
トリファイルにコピーする必要があるが、これでは、コ
ピーする時間が無駄となるとともに、データ領域を必要
とする。
別のファイル名でアクセスすることができれば、同じ内
容のファイルを複数持つ必要がなくなり、ファイルシス
テムのデータ領域を節約することができる。また、デー
タの一元化も図ることができる。たとえば、ある参照フ
ァイルを別のディレクトリファイルに移した場合、別の
ファイル名でアクセスすることができれば、いままでそ
のファイル名でその実体にアクセスしていた実行プログ
ラムを書き換える必要がない。また、他人が管理してい
るファイルを参照する際、他人が設定しているファイル
名以外で、そのファイルへアクセスするためには、目的
ファイルを、アクセスするファイル名で自己のディレク
トリファイルにコピーする必要があるが、これでは、コ
ピーする時間が無駄となるとともに、データ領域を必要
とする。
【0013】そこで、リンク処理がなされる。リンク処
理には、ハードリンクとシンボリックリンクがある。ま
ずハードリンクする方法について説明する。ハードリン
クは、ファイル間のリンク処理を行なうもので、本ファ
イルシステムにおいては、つぎの[In]コマンドによ
って設定される。
理には、ハードリンクとシンボリックリンクがある。ま
ずハードリンクする方法について説明する。ハードリン
クは、ファイル間のリンク処理を行なうもので、本ファ
イルシステムにおいては、つぎの[In]コマンドによ
って設定される。
【0014】 % ln /usr3/jun/car.c /usr1/tmp/a.c ・・・(1) このようなコマンドが実行されると、図10Aに示すよ
うに、ファイル[/usr3/jun/car.c]と同じiノード番
号をもつファイル[/usr1/tmp/a.c]が、ディレクトリ
ファイル[/usr1/tmp]の実体に追加される。
うに、ファイル[/usr3/jun/car.c]と同じiノード番
号をもつファイル[/usr1/tmp/a.c]が、ディレクトリ
ファイル[/usr1/tmp]の実体に追加される。
【0015】同図において、iノード番号11のファイ
ル名[a.c]が、追加されている。ここで、図9Eに示
すように、ファイル[/usr3/jun/car.c]のiノード番
号は11である。同じiノード番号をもつファイルの実
体は同じであるので、図11に示すように、ファイル
[/usr3/jun/car.c]の実体に対してファイル[/usr1/t
mp/a.c]でアクセス可能となる。なお、図8に示すファ
イル[/usr3/jun/car.c]の実体に記憶されているハー
ドリンクの数は1増えて2となる。
ル名[a.c]が、追加されている。ここで、図9Eに示
すように、ファイル[/usr3/jun/car.c]のiノード番
号は11である。同じiノード番号をもつファイルの実
体は同じであるので、図11に示すように、ファイル
[/usr3/jun/car.c]の実体に対してファイル[/usr1/t
mp/a.c]でアクセス可能となる。なお、図8に示すファ
イル[/usr3/jun/car.c]の実体に記憶されているハー
ドリンクの数は1増えて2となる。
【0016】このように、ハードリンクをおこなうこと
により、記憶データの一元化も図ることができるととも
に、ファイルシステムのデータ領域を節約することがで
きる。
により、記憶データの一元化も図ることができるととも
に、ファイルシステムのデータ領域を節約することがで
きる。
【0017】一方、ファイル間のみリンク処理可能なハ
ードリンクに対して、ディレクトリファイル間をもリン
ク処理可能なシンボリックリンクがある。シンボリック
リンクは、リンク先のディレクトリファイルのパス名
を、リンク元のディレクトリファイルに付与することに
より、ディレクトリファイル間をリンクさせる。シンボ
リックリンクは、つぎの[In -s]コマンドによって
設定される。
ードリンクに対して、ディレクトリファイル間をもリン
ク処理可能なシンボリックリンクがある。シンボリック
リンクは、リンク先のディレクトリファイルのパス名
を、リンク元のディレクトリファイルに付与することに
より、ディレクトリファイル間をリンクさせる。シンボ
リックリンクは、つぎの[In -s]コマンドによって
設定される。
【0018】% ln -s /usr3/jun /usr1 ・・・(2) このようなコマンドが実行されると、図10Bに示すよ
うに、シンボリックリンクの情報が記憶されたファイル
が作成される。さらに、図7Aに示すようにシンボリッ
クリンクのiノード番号がディレクトリファイル[/usr
1]のiノードに記憶される。これにより、リンク先の
ディレクトリファイルのパス名が、リンク元のディレク
トリファイルに与えられる。すなわち、図12に示すよ
うにディレクトリファイル[/usr1]にパス先であるデ
ィレクトリファイル[/usr3/jun]が与えられる。
うに、シンボリックリンクの情報が記憶されたファイル
が作成される。さらに、図7Aに示すようにシンボリッ
クリンクのiノード番号がディレクトリファイル[/usr
1]のiノードに記憶される。これにより、リンク先の
ディレクトリファイルのパス名が、リンク元のディレク
トリファイルに与えられる。すなわち、図12に示すよ
うにディレクトリファイル[/usr1]にパス先であるデ
ィレクトリファイル[/usr3/jun]が与えられる。
【0019】したがって、ファイル[/usr1/jun/car.
c]にアクセスした場合、ディレクトリファイル[/usr
1]には、そのような名前のファイルがなくとも、自動
的にディレクトリファイル[/usr3/jun]が検索され、
ディレクトリファイル[/usr1]にファイル[/usr1/jun
/car.c]が、存在するとして処理される。
c]にアクセスした場合、ディレクトリファイル[/usr
1]には、そのような名前のファイルがなくとも、自動
的にディレクトリファイル[/usr3/jun]が検索され、
ディレクトリファイル[/usr1]にファイル[/usr1/jun
/car.c]が、存在するとして処理される。
【0020】このように、シンボリックリンクはディレ
クトリファイル間で処理することができるので、当該デ
ィレクトリファイルに複数のサブディレクトリファイル
およびファイルが存在する場合は、1の処理で容易にリ
ンク処理が可能となる。
クトリファイル間で処理することができるので、当該デ
ィレクトリファイルに複数のサブディレクトリファイル
およびファイルが存在する場合は、1の処理で容易にリ
ンク処理が可能となる。
【0021】
【発明が解決しようとする課題】しかしながら、上記の
ようなファイル管理システムのリンク処理においては、
次のような問題点があった。ハードリンクは、ファイル
名を指定してリンク処理を行なうので、全体のファイル
構造を把握することはできるが、ディレクトリファイル
間でリンク処理をすることができない。
ようなファイル管理システムのリンク処理においては、
次のような問題点があった。ハードリンクは、ファイル
名を指定してリンク処理を行なうので、全体のファイル
構造を把握することはできるが、ディレクトリファイル
間でリンク処理をすることができない。
【0022】また、シンボリックリンクはディレクトリ
ファイル間においてリンク処理可能ではあるが、リンク
先のディレクトリファイルのパス名を付与することによ
りリンク処理を行なっているので、リンク先のディレク
トリファイルにとっては、リンク元のディレクトリファ
イルがわからない。したがって、全体のファイル構造の
把握が容易ではない。
ファイル間においてリンク処理可能ではあるが、リンク
先のディレクトリファイルのパス名を付与することによ
りリンク処理を行なっているので、リンク先のディレク
トリファイルにとっては、リンク元のディレクトリファ
イルがわからない。したがって、全体のファイル構造の
把握が容易ではない。
【0023】この発明は、上記のような問題点を解決
し、ディレクトリファイル間のリンク処理可能となると
ともに、全体のファイル構造を把握が容易となるファイ
ル管理システムを提供することを目的とする。
し、ディレクトリファイル間のリンク処理可能となると
ともに、全体のファイル構造を把握が容易となるファイ
ル管理システムを提供することを目的とする。
【0024】
【課題を解決するための手段】請求項1にかかるファイ
ル管理システムは、一または二以上の通常ファイル、当
該一または二以上の通常ファイル情報を管理する複数の
ディレクトリファイル、を備えており、ディレクトリフ
ァイル間のリンク処理が可能なファイル管理システムに
おいて、リンク元のディレクトリファイルを実ディレク
トリファイルとし、リンク先のディレクトリファイルを
虚ディレクトリファイルとするとともに、虚ディレクト
リファイルの検索情報を、実ディレクトリファイルに記
憶させること、を特徴とする。
ル管理システムは、一または二以上の通常ファイル、当
該一または二以上の通常ファイル情報を管理する複数の
ディレクトリファイル、を備えており、ディレクトリフ
ァイル間のリンク処理が可能なファイル管理システムに
おいて、リンク元のディレクトリファイルを実ディレク
トリファイルとし、リンク先のディレクトリファイルを
虚ディレクトリファイルとするとともに、虚ディレクト
リファイルの検索情報を、実ディレクトリファイルに記
憶させること、を特徴とする。
【0025】
【作用】請求項1にかかるファイル管理システムにおい
ては、虚ディレクトリファイルの検索情報が、実ディレ
クトリファイルに記憶されている。したがって、実ディ
レクトリファイルが管理しているファイルまたはディレ
クトリファイルから、虚ディレクトリファイルの存在を
知ることができる。
ては、虚ディレクトリファイルの検索情報が、実ディレ
クトリファイルに記憶されている。したがって、実ディ
レクトリファイルが管理しているファイルまたはディレ
クトリファイルから、虚ディレクトリファイルの存在を
知ることができる。
【0026】
【実施例】本発明の一実施例を図面に基づいて説明す
る。図3に示すようなツリー構造のファイルシステムに
おけるファイル管理状態を図2C,図2D,図2Eに示
す。まず、本ファイルシステムにおいて、ファイル[/u
sr3/jun/car.c]にアクセスする手順について説明す
る。ルートディレクトリの実体をみてルートディレクト
リが管理するファイル[usr3]のiノード番号を検索す
る。つぎに、その実体を見ることにより、図2Cに示す
ようにディレクトリファイル[usr3]が管理しているフ
ァイルおよびそのiノード番号がわかる。ファイル[ju
n]のiノード番号は7であるとわかり、同図Dに示す
ように、iノード番号7のiノードをみることにより、
ファイル[jun]がディレクトリファイルであること
や、アドレス情報等がわかる。
る。図3に示すようなツリー構造のファイルシステムに
おけるファイル管理状態を図2C,図2D,図2Eに示
す。まず、本ファイルシステムにおいて、ファイル[/u
sr3/jun/car.c]にアクセスする手順について説明す
る。ルートディレクトリの実体をみてルートディレクト
リが管理するファイル[usr3]のiノード番号を検索す
る。つぎに、その実体を見ることにより、図2Cに示す
ようにディレクトリファイル[usr3]が管理しているフ
ァイルおよびそのiノード番号がわかる。ファイル[ju
n]のiノード番号は7であるとわかり、同図Dに示す
ように、iノード番号7のiノードをみることにより、
ファイル[jun]がディレクトリファイルであること
や、アドレス情報等がわかる。
【0027】さらに、その実体を見ることにより、同図
Eに示すようにディレクトリファイル[jun]が管理し
ているファイルおよびそのiノード番号がわかる。ファ
イル[car.c]のiノード番号は11であるとわかり、
iノード番号11のiノードをみるとファイル[car.
c]が通常ファイルであることや、アドレス情報等がわ
かる。このようにして、ファイル[/usr3/jun/car.c]
にアクセスすることができる。
Eに示すようにディレクトリファイル[jun]が管理し
ているファイルおよびそのiノード番号がわかる。ファ
イル[car.c]のiノード番号は11であるとわかり、
iノード番号11のiノードをみるとファイル[car.
c]が通常ファイルであることや、アドレス情報等がわ
かる。このようにして、ファイル[/usr3/jun/car.c]
にアクセスすることができる。
【0028】つぎに、図3に示すようなツリー構造のフ
ァイルシステムにおいて、[/usr3/jun]を実ディレク
トリファイルとして、[/usr1/sum]という虚ディレク
トリファイルを作成する方法を図4を参照しつつ説明す
る。このようなディレクトリファイル間のリンク処理
を、ディレクトリリンクとよぶ。ディレクトリリンク
は、本実施例ではつぎの[dirln ]コマンドによって設
定される。
ァイルシステムにおいて、[/usr3/jun]を実ディレク
トリファイルとして、[/usr1/sum]という虚ディレク
トリファイルを作成する方法を図4を参照しつつ説明す
る。このようなディレクトリファイル間のリンク処理
を、ディレクトリリンクとよぶ。ディレクトリリンク
は、本実施例ではつぎの[dirln ]コマンドによって設
定される。
【0029】 % dirln /usr3/jun /usr1/sum ・・・(3) このようなコマンドが実行されると、リンク元となる実
ディレクトリファイルが存在するかどうか判定される
(図4ステップS101)。この場合、図3に示すように
ディレクトリファイル[/usr3/jun]が存在するので、
図4ステップS102に進む。なお、実ディレクトリファ
イルが存在しない場合は「実ディレクトリファイルが存
在しません」というメッセージを表示し(ステップS10
6)、終了する。
ディレクトリファイルが存在するかどうか判定される
(図4ステップS101)。この場合、図3に示すように
ディレクトリファイル[/usr3/jun]が存在するので、
図4ステップS102に進む。なお、実ディレクトリファ
イルが存在しない場合は「実ディレクトリファイルが存
在しません」というメッセージを表示し(ステップS10
6)、終了する。
【0030】ステップS102では、リンク先である虚デ
ィレクトリファイルの名前と同じ名前のファイル(ディ
レクトリファイルを含む)がすでに存在するかどうか判
定される。この場合、図3に示すようにファイル[/usr
1/sum]は存在していないので、ステップS103に進
む。なお、同じ名前のファイルがすでに存在する場合は
「同じ名前のファイルがすでに存在します」というメッ
セージを表示し(ステップS106)、終了する。
ィレクトリファイルの名前と同じ名前のファイル(ディ
レクトリファイルを含む)がすでに存在するかどうか判
定される。この場合、図3に示すようにファイル[/usr
1/sum]は存在していないので、ステップS103に進
む。なお、同じ名前のファイルがすでに存在する場合は
「同じ名前のファイルがすでに存在します」というメッ
セージを表示し(ステップS106)、終了する。
【0031】ステップS103では、リンク先である虚デ
ィレクトリファイルがリンク元となる実ディレクトリフ
ァイルの子孫にあたるかどうか判定される。この場合、
図3に示すように、子孫関係にはないので、ステップS
104に進む。なお、子孫関係である場合は「ディレクト
リリンクすることができません」というメッセージを表
示し(ステップS106)、終了する。
ィレクトリファイルがリンク元となる実ディレクトリフ
ァイルの子孫にあたるかどうか判定される。この場合、
図3に示すように、子孫関係にはないので、ステップS
104に進む。なお、子孫関係である場合は「ディレクト
リリンクすることができません」というメッセージを表
示し(ステップS106)、終了する。
【0032】このように本実施例においては、リンク先
である虚ディレクトリファイルがリンク元となる実ディ
レクトリファイルの子孫にあたる場合には、ディレクト
リリンクを禁止するようにしている。これにより、実デ
ィレクトリファイルの下にもう1度実ディレクトリファ
イルのが存在するという状態(ループ状態)の発生を防
止することができる。
である虚ディレクトリファイルがリンク元となる実ディ
レクトリファイルの子孫にあたる場合には、ディレクト
リリンクを禁止するようにしている。これにより、実デ
ィレクトリファイルの下にもう1度実ディレクトリファ
イルのが存在するという状態(ループ状態)の発生を防
止することができる。
【0033】ステップS104において、図2Bに示すよ
うに、リンク先である虚ディレクトリファイルのiノー
ドとして、リンク元となる実ディレクトリファイルと同
じ実体情報をもつiノードが新たに作成される。この場
合、ディレクトリファイル[/usr3/jun]を示すiノー
ド番号7のiノードと同じ実体情報をもつiノード番号
17のiノードが作成される。さらに、図2Aに示すよ
うに、リンク先である虚ディレクトリファイルの親ディ
レクトリファイルの実体に、iノード番号17でファイ
ル名[sum]というファイルが追加される。
うに、リンク先である虚ディレクトリファイルのiノー
ドとして、リンク元となる実ディレクトリファイルと同
じ実体情報をもつiノードが新たに作成される。この場
合、ディレクトリファイル[/usr3/jun]を示すiノー
ド番号7のiノードと同じ実体情報をもつiノード番号
17のiノードが作成される。さらに、図2Aに示すよ
うに、リンク先である虚ディレクトリファイルの親ディ
レクトリファイルの実体に、iノード番号17でファイ
ル名[sum]というファイルが追加される。
【0034】図4に戻って、ステップS105において、
虚ディレクトリファイルリストに、リンク先である虚デ
ィレクトリファイルのiノード番号およびその親ディレ
クトリファイルのiノード番号が追加される。この場合
は、虚ディレクトリファイルである[/usr1/sum]のi
ノード番号17および、その親ディレクトリファイルで
ある[/usr1]のiノード番号3が、虚ディレクトリフ
ァイルリスト29に追加される。
虚ディレクトリファイルリストに、リンク先である虚デ
ィレクトリファイルのiノード番号およびその親ディレ
クトリファイルのiノード番号が追加される。この場合
は、虚ディレクトリファイルである[/usr1/sum]のi
ノード番号17および、その親ディレクトリファイルで
ある[/usr1]のiノード番号3が、虚ディレクトリフ
ァイルリスト29に追加される。
【0035】このようにして、図1に示すように[/usr
3/jun]を実ディレクトリファイルとして、[/usr1/su
m]という虚ディレクトリファイルが作成される。な
お、同様にして、一の実ディレクトリファイルを、複数
の虚ディレクトリファイルとディレクトリリンクさせる
こともできる。
3/jun]を実ディレクトリファイルとして、[/usr1/su
m]という虚ディレクトリファイルが作成される。な
お、同様にして、一の実ディレクトリファイルを、複数
の虚ディレクトリファイルとディレクトリリンクさせる
こともできる。
【0036】以上説明したように、本実施例において
は、ディレクトリリンクを行なった場合、リンク先であ
る虚ディレクトリファイルに、リンク元となる実ディレ
クトリファイルと同じ実体情報をもつiノードを与えて
いる。また、リンク先である虚ディレクトリファイルの
親ディレクトリファイルの実体に、虚ディレクトリファ
イルのiノード番号およびそのファイル名を追加するよ
うにしている。これにより、ディレクトリファイル間の
リンク処理が可能となる。
は、ディレクトリリンクを行なった場合、リンク先であ
る虚ディレクトリファイルに、リンク元となる実ディレ
クトリファイルと同じ実体情報をもつiノードを与えて
いる。また、リンク先である虚ディレクトリファイルの
親ディレクトリファイルの実体に、虚ディレクトリファ
イルのiノード番号およびそのファイル名を追加するよ
うにしている。これにより、ディレクトリファイル間の
リンク処理が可能となる。
【0037】また、虚ディレクトリファイルリスト29
に、リンク先である虚ディレクトリファイルのiノード
番号および、その親ディレクトリファイルのiノード番
号を追加するようにしている。したがって、実ディレク
トリファイルが管理しているファイルまたはディレクト
リファイルから、虚ディレクトリファイルの存在を知る
ことができる。
に、リンク先である虚ディレクトリファイルのiノード
番号および、その親ディレクトリファイルのiノード番
号を追加するようにしている。したがって、実ディレク
トリファイルが管理しているファイルまたはディレクト
リファイルから、虚ディレクトリファイルの存在を知る
ことができる。
【0038】つぎに、図1、図5を参照しつつ、ディレ
クトリリンクさせた実ディレクトリファイルまたは虚デ
ィレクトリファイルを削除する方法を説明する。まず、
虚ディレクトリファイル[/usr1/sum]を削除する場合
について説明する。虚ディレクトリファイル削除は、つ
ぎの[rmdir]コマンドによって設定される。
クトリリンクさせた実ディレクトリファイルまたは虚デ
ィレクトリファイルを削除する方法を説明する。まず、
虚ディレクトリファイル[/usr1/sum]を削除する場合
について説明する。虚ディレクトリファイル削除は、つ
ぎの[rmdir]コマンドによって設定される。
【0039】% rmdir /usr1/sum ・・・(4) このようなコマンドが実行されると、削除対象であるデ
ィレクトリファイルが存在するかどうか判定される(ス
テップS201)。この場合、図1に示すように、ディレ
クトリファイル[/usr1/sum]が存在するので、ステッ
プS202に進む。なお、削除対象であるディレクトリフ
ァイルが存在しない場合は「ディレクトリファイルが存
在しません」というメッセージを表示し(ステップS20
9)、終了する。
ィレクトリファイルが存在するかどうか判定される(ス
テップS201)。この場合、図1に示すように、ディレ
クトリファイル[/usr1/sum]が存在するので、ステッ
プS202に進む。なお、削除対象であるディレクトリフ
ァイルが存在しない場合は「ディレクトリファイルが存
在しません」というメッセージを表示し(ステップS20
9)、終了する。
【0040】ステップS202では、削除対象のディレク
トリファイルが虚ディレクトリファイルか否かが判定さ
れる。この場合、ディレクトリファイル[/usr1/sum]
をルートディレクトリからたどっていき、その実体を参
照することにより、ディレクトリファイル[/usr1/su
m]は図2Eに示すように、虚ディレクトリファイルで
あることが判明するので、図5ステップS207に進む。
トリファイルが虚ディレクトリファイルか否かが判定さ
れる。この場合、ディレクトリファイル[/usr1/sum]
をルートディレクトリからたどっていき、その実体を参
照することにより、ディレクトリファイル[/usr1/su
m]は図2Eに示すように、虚ディレクトリファイルで
あることが判明するので、図5ステップS207に進む。
【0041】ステップS207においては、虚ディレクト
リファイルリストから、虚ディレクトリファイルのiノ
ード番号およびその親ディレクトリファイルのiノード
番号が削除される。この場合は、[/usr1/sum]のiノ
ード番号17および[/usr1]のiノード番号3が虚デ
ィレクトリファイルリスト29から削除される。
リファイルリストから、虚ディレクトリファイルのiノ
ード番号およびその親ディレクトリファイルのiノード
番号が削除される。この場合は、[/usr1/sum]のiノ
ード番号17および[/usr1]のiノード番号3が虚デ
ィレクトリファイルリスト29から削除される。
【0042】つぎに、この削除ディレクトリの使用して
いるiノードテーブルを解放し(ステップS206)、終
了する。この場合、ディレクトリファイル[/usr1/su
m]を示すiノード番号17のiノードが使用していた
領域が解放され、終了する。このように、虚ディレクト
リファイルを削除する場合には、なんら特殊な処理をす
ることなく削除すればよい。
いるiノードテーブルを解放し(ステップS206)、終
了する。この場合、ディレクトリファイル[/usr1/su
m]を示すiノード番号17のiノードが使用していた
領域が解放され、終了する。このように、虚ディレクト
リファイルを削除する場合には、なんら特殊な処理をす
ることなく削除すればよい。
【0043】つぎに、実ディレクトリファイル[/usr3/
jun]を削除する場合について説明する。この場合も、
上述したよう[rmdir]コマンドによって設定される。
jun]を削除する場合について説明する。この場合も、
上述したよう[rmdir]コマンドによって設定される。
【0044】% rmdir /usr3/jun ・・・(5) このようなコマンドが実行されると、削除対象であるデ
ィレクトリファイルが存在するかどうか判定される(ス
テップS201)。この場合、図1に示すように、ディレ
クトリファイル[/usr3/jun]が存在するので、ステッ
プS202に進む。なお、削除対象であるディレクトリフ
ァイルが存在しない場合は、上述したように「ディレク
トリファイルが存在しません」というメッセージを表示
し(ステップS209)、終了する。
ィレクトリファイルが存在するかどうか判定される(ス
テップS201)。この場合、図1に示すように、ディレ
クトリファイル[/usr3/jun]が存在するので、ステッ
プS202に進む。なお、削除対象であるディレクトリフ
ァイルが存在しない場合は、上述したように「ディレク
トリファイルが存在しません」というメッセージを表示
し(ステップS209)、終了する。
【0045】ステップS202で、削除対象のディレクト
リファイルが虚ディレクトリファイルか否かが判定され
る。この場合、ディレクトリファイル[/usr3/jun]を
ルートディレクトリからたどっていき、その実体を参照
することにより、ディレクトリファイル[/usr3/jun]
は、図2Eに示すように、実ディレクトリファイルであ
ることが判明するので、ステップS203に進む。
リファイルが虚ディレクトリファイルか否かが判定され
る。この場合、ディレクトリファイル[/usr3/jun]を
ルートディレクトリからたどっていき、その実体を参照
することにより、ディレクトリファイル[/usr3/jun]
は、図2Eに示すように、実ディレクトリファイルであ
ることが判明するので、ステップS203に進む。
【0046】ステップS203では、削除対象のディレク
トリファイルに虚ディレクトリファイルが存在するかが
判定される。この場合は、虚ディレクトリファイル[/u
sr1/sum]が存在するのでステップS208に進む。
トリファイルに虚ディレクトリファイルが存在するかが
判定される。この場合は、虚ディレクトリファイル[/u
sr1/sum]が存在するのでステップS208に進む。
【0047】ステップS208においては、虚ディレクト
リファイルが存在する場合、実ディレクトリファイルの
iノード番号およびその親ディレクトリファイルのiノ
ード番号が削除される。さらに、虚ディレクトリファイ
ルリストに記憶されている先頭のディレクトリファイル
のiノード番号およびその親ディレクトリファイルのi
ノード番号を、実ディレクトリファイルのiノード番号
およびその親ディレクトリファイルのiノード番号とす
る。すなわち、この場合、実ディレクトリファイルのi
ノード番号は17、その親ディレクトリファイルのiノ
ード番号は3となり、虚ディレクトリファイルは無しと
いうことになる。
リファイルが存在する場合、実ディレクトリファイルの
iノード番号およびその親ディレクトリファイルのiノ
ード番号が削除される。さらに、虚ディレクトリファイ
ルリストに記憶されている先頭のディレクトリファイル
のiノード番号およびその親ディレクトリファイルのi
ノード番号を、実ディレクトリファイルのiノード番号
およびその親ディレクトリファイルのiノード番号とす
る。すなわち、この場合、実ディレクトリファイルのi
ノード番号は17、その親ディレクトリファイルのiノ
ード番号は3となり、虚ディレクトリファイルは無しと
いうことになる。
【0048】つぎに、この削除ディレクトリファイルの
使用していたiノードテーブルを解放し(ステップS20
6)、終了する。この場合、ディレクトリファイル[/us
r3/jun]を示すiノード番号7のiノードが使用してい
た領域が解放され、終了する。
使用していたiノードテーブルを解放し(ステップS20
6)、終了する。この場合、ディレクトリファイル[/us
r3/jun]を示すiノード番号7のiノードが使用してい
た領域が解放され、終了する。
【0049】このように、虚ディレクトリファイルを有
する実ディレクトリファイルを削除する場合は、虚ディ
レクトリファイルリスト29から先頭の虚ディレクトリフ
ァイル([/usr1/sum])を、実ディレクトリファイル
に変更することにより、削除対象の実ディレクトリファ
イル([/usr3/jun])で管理していたファイルおよび
ディレクトリファイルを、新たに実ディレクトリファイ
ルとなったディレクトリファイル([/usr1/sum])で
管理することができる。
する実ディレクトリファイルを削除する場合は、虚ディ
レクトリファイルリスト29から先頭の虚ディレクトリフ
ァイル([/usr1/sum])を、実ディレクトリファイル
に変更することにより、削除対象の実ディレクトリファ
イル([/usr3/jun])で管理していたファイルおよび
ディレクトリファイルを、新たに実ディレクトリファイ
ルとなったディレクトリファイル([/usr1/sum])で
管理することができる。
【0050】ステップS203で、削除ディレクトリファ
イルに虚ディレクトリファイルが存在しないと判定され
た場合は、ステップS204に進む。ステップS204におい
て、削除対象であるディレクトリファイルが管理してい
るファイルまたはディレクトリファイルが存在するか
(削除対象であるディレクトリファイルが空か否か)が
判定される。
イルに虚ディレクトリファイルが存在しないと判定され
た場合は、ステップS204に進む。ステップS204におい
て、削除対象であるディレクトリファイルが管理してい
るファイルまたはディレクトリファイルが存在するか
(削除対象であるディレクトリファイルが空か否か)が
判定される。
【0051】削除対象であるディレクトリファイルが空
である場合は、削除対象であるディレクトリファイルの
実体が使用している領域を解放する。さらに、この削除
ディレクトリの使用していたiノードテーブルを解放し
(ステップS206)、終了する。
である場合は、削除対象であるディレクトリファイルの
実体が使用している領域を解放する。さらに、この削除
ディレクトリの使用していたiノードテーブルを解放し
(ステップS206)、終了する。
【0052】削除対象であるディレクトリファイルが空
でない場合は、「このディレクトリファイルは削除でき
ません」というメッセージを表示し(ステップS21
0)、終了する。このように、実ディレクトリファイル
を削除する場合に、虚ディレクトリファイルが存在せず
かつ削除対象であるディレクトリファイルが空でない場
合は、当該ディレクトリファイルを削除できないように
することにより、削除対象のディレクトリファイルが管
理しているファイルまたはディレクトリファイルを誤っ
て、削除するおそれがない。
でない場合は、「このディレクトリファイルは削除でき
ません」というメッセージを表示し(ステップS21
0)、終了する。このように、実ディレクトリファイル
を削除する場合に、虚ディレクトリファイルが存在せず
かつ削除対象であるディレクトリファイルが空でない場
合は、当該ディレクトリファイルを削除できないように
することにより、削除対象のディレクトリファイルが管
理しているファイルまたはディレクトリファイルを誤っ
て、削除するおそれがない。
【0053】
【発明の効果】請求項1にかかるファイル管理システム
においては、リンク元のディレクトリファイルを実ディ
レクトリファイルとし、リンク先のディレクトリファイ
ルを虚ディレクトリファイルとするとともに、虚ディレ
クトリファイルの検索情報を、実ディレクトリファイル
に記憶させている。したがって、実ディレクトリファイ
ルが管理しているファイルまたはディレクトリファイル
から、虚ディレクトリファイルの存在を知ることができ
る。これにより、ディレクトリファイル間のリンク処理
可能となるとともに、全体のファイル構造を把握が容易
となるファイル管理システムを提供することができる。
においては、リンク元のディレクトリファイルを実ディ
レクトリファイルとし、リンク先のディレクトリファイ
ルを虚ディレクトリファイルとするとともに、虚ディレ
クトリファイルの検索情報を、実ディレクトリファイル
に記憶させている。したがって、実ディレクトリファイ
ルが管理しているファイルまたはディレクトリファイル
から、虚ディレクトリファイルの存在を知ることができ
る。これにより、ディレクトリファイル間のリンク処理
可能となるとともに、全体のファイル構造を把握が容易
となるファイル管理システムを提供することができる。
【図1】ディレクトリファイルをリンクさせた場合のツ
リー構造を示す図である。
リー構造を示す図である。
【図2】ファイル管理システムの構造を示す図である。
【図3】ディレクトリファイルをリンクさせる前のツリ
ー構造を示す図である。
ー構造を示す図である。
【図4】ディレクトリリンクさせるフローチャートであ
る。
る。
【図5】ディレクトリファイルのリンクを解除させる場
合のフローチャートである。
合のフローチャートである。
【図6】従来のファイル管理システムにおけるファイル
システムを示す図である。
システムを示す図である。
【図7】iノードの一例を示す図である。
【図8】通常ファイルの内容を示す図である。
【図9】ディレクトリファイルの実体とiノードを示す
図である。
図である。
【図10】ディレクトリファイルの実体を示す図であ
る。
る。
【図11】通常ファイルをハードリンクさせた場合のツ
リー構造を示す図である。
リー構造を示す図である。
【図12】ディレクトリファイルをシンボリックリンク
させた場合のツリー構造を示す図である。
させた場合のツリー構造を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 藤居 藤樹 京都府京都市右京区花園土堂町10番地 オ ムロン株式会社内
Claims (1)
- 【請求項1】一または二以上の通常ファイル、 当該一または二以上の通常ファイル情報を管理する複数
のディレクトリファイル、を備えており、 ディレクトリファイル間のリンク処理が可能なファイル
管理システムにおいて、 リンク元のディレクトリファイルを実ディレクトリファ
イルとし、リンク先のディレクトリファイルを虚ディレ
クトリファイルとするとともに、 虚ディレクトリファイルの検索情報を、実ディレクトリ
ファイルに記憶させること、を特徴とするファイル管理
システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4145739A JPH05342075A (ja) | 1992-06-05 | 1992-06-05 | ファイル管理システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4145739A JPH05342075A (ja) | 1992-06-05 | 1992-06-05 | ファイル管理システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05342075A true JPH05342075A (ja) | 1993-12-24 |
Family
ID=15392030
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4145739A Pending JPH05342075A (ja) | 1992-06-05 | 1992-06-05 | ファイル管理システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05342075A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07271813A (ja) * | 1994-03-31 | 1995-10-20 | Toshiba Corp | 情報分類整理システム |
| JP2001243255A (ja) * | 2000-03-02 | 2001-09-07 | Ntt Comware Corp | 情報管理システム、情報管理方法及び情報管理プログラムを記録した記録媒体 |
| JP2008158993A (ja) * | 2006-12-26 | 2008-07-10 | Hitachi Ltd | ストレージシステム |
-
1992
- 1992-06-05 JP JP4145739A patent/JPH05342075A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07271813A (ja) * | 1994-03-31 | 1995-10-20 | Toshiba Corp | 情報分類整理システム |
| JP2001243255A (ja) * | 2000-03-02 | 2001-09-07 | Ntt Comware Corp | 情報管理システム、情報管理方法及び情報管理プログラムを記録した記録媒体 |
| JP2008158993A (ja) * | 2006-12-26 | 2008-07-10 | Hitachi Ltd | ストレージシステム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5218696A (en) | Method for dynamically expanding and rapidly accessing file directories | |
| US7849112B2 (en) | Using a file handle for associating the file with a tree quota in a file server | |
| US6643654B1 (en) | System and method for representing named data streams within an on-disk structure of a file system | |
| US8352518B2 (en) | Mechanism for handling file level and block level remote file accesses using the same server | |
| US5519855A (en) | Summary catalogs | |
| US5991753A (en) | Method and system for computer file management, including file migration, special handling, and associating extended attributes with files | |
| JP2708331B2 (ja) | ファイル装置およびデータファイルアクセス方法 | |
| Carey et al. | Storage management for objects in EXODUS | |
| DE69422176T2 (de) | Verfahren und system zur verfolgung von verbindungen zwischen objekten | |
| EP0451384B1 (en) | Hypertext data processing system and method | |
| EP0662228B1 (en) | Apparatus for data storage and retrieval | |
| US7720869B2 (en) | Hierarchical structured abstract file system | |
| US6216140B1 (en) | Methodology for the efficient management of hierarchically organized information | |
| EP2983093A1 (en) | Apparatus and method for a hardware-based file system | |
| US6256636B1 (en) | Object server for a digital library system | |
| HU219996B (hu) | Kliens számítógép, valamint eljárás annak üzemeltetésére | |
| EP1480130B1 (en) | Method and apparatus for moving data between storage devices | |
| US7769719B2 (en) | File system dump/restore by node numbering | |
| EP0410210A2 (en) | Method for dynamically expanding and rapidly accessing file directories | |
| US12032531B1 (en) | Filesystem pathnames indexing using path change annex | |
| US8452823B2 (en) | Method for coordinating relationships between multiple physical entities | |
| Kumar et al. | An integrated data structure with multiple access paths for database and its performance | |
| JPH01273148A (ja) | ファイル管理方式 | |
| Sechrest et al. | The Hyperfile Model and a Hyperfile Service | |
| Kumar et al. | An integrated data structure with multiple access paths for database systems and its performance |