JP2708331B2 - ファイル装置およびデータファイルアクセス方法 - Google Patents
ファイル装置およびデータファイルアクセス方法Info
- Publication number
- JP2708331B2 JP2708331B2 JP4217453A JP21745392A JP2708331B2 JP 2708331 B2 JP2708331 B2 JP 2708331B2 JP 4217453 A JP4217453 A JP 4217453A JP 21745392 A JP21745392 A JP 21745392A JP 2708331 B2 JP2708331 B2 JP 2708331B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- search
- value
- name
- search criteria
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
- G06F16/1794—Details of file format conversion
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/956—Hierarchical
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/959—Network
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【産業上の利用分野】本発明はコンピュータシステムに
関し、特に、そのファイルシステムへのアクセスに関す
る。
関し、特に、そのファイルシステムへのアクセスに関す
る。
【0002】
【従来の技術】現在、ローカルエリアネットワーク(L
AN)のようなネットワークは、パーソナルコンピュー
タ(PC)(一般にクライアントと呼ばれる)が、一般
にホストまたはサーバに存在するディスク記憶装置やプ
リンタのようなリソースを共有することを可能にしてい
る。この種のネットワークは一般にクライアント/サー
バネットワークと呼ばれる。このようなクライアント/
サーバネットワークでは、クライアントによって要求さ
れる共通のデータベースもまたサーバ位置に格納され
る。
AN)のようなネットワークは、パーソナルコンピュー
タ(PC)(一般にクライアントと呼ばれる)が、一般
にホストまたはサーバに存在するディスク記憶装置やプ
リンタのようなリソースを共有することを可能にしてい
る。この種のネットワークは一般にクライアント/サー
バネットワークと呼ばれる。このようなクライアント/
サーバネットワークでは、クライアントによって要求さ
れる共通のデータベースもまたサーバ位置に格納され
る。
【0003】
【発明が解決しようとする課題】クライアントが種々の
共通データベースにアクセスすることを可能にするに
は、通常、サーバ位置におけるデータベース管理システ
ム(DBMS)の使用が要求される。さらに、共通デー
タベースのうちの1つへのクライアントのアクセスを可
能にするためには、各クライアントがDBMSアクセス
ソフトウェアを有することも要求される。残念ながら、
クライアント位置で要求される種々のDBMSアクセス
ソフトウェアはかなりのメモリ空間を使用し、高価であ
り、周期的に管理または更新されなければならない。さ
らに、利用するデータベースが複数種類のため、また
は、クライアントの要求または好みのため、サーバ位置
で複数の種類のDBMSが必要な場合は、問題はさらに
深刻となる。従って、実際的かつ妥当な価格で、クライ
アントのデータベースアクセス装置を改良する必要があ
る。
共通データベースにアクセスすることを可能にするに
は、通常、サーバ位置におけるデータベース管理システ
ム(DBMS)の使用が要求される。さらに、共通デー
タベースのうちの1つへのクライアントのアクセスを可
能にするためには、各クライアントがDBMSアクセス
ソフトウェアを有することも要求される。残念ながら、
クライアント位置で要求される種々のDBMSアクセス
ソフトウェアはかなりのメモリ空間を使用し、高価であ
り、周期的に管理または更新されなければならない。さ
らに、利用するデータベースが複数種類のため、また
は、クライアントの要求または好みのため、サーバ位置
で複数の種類のDBMSが必要な場合は、問題はさらに
深刻となる。従って、実際的かつ妥当な価格で、クライ
アントのデータベースアクセス装置を改良する必要があ
る。
【0004】
【課題を解決するための手段】本発明の1つの目的によ
れば、上記の問題点は、共通データベースをサーバのフ
ァイルおよびディレクトリのように扱うことによって解
決される。ネットワークの各クライアントにとって既に
利用可能であるネットワークファイル共有設備を使用す
ることにより、各クライアントは、現在のファイルアク
セスシステムコールを使用してデータベースに遠隔アク
セスすることができる。クライアント/サーバネットワ
ークアプリケーションに加えて、本発明は、一般に、ユ
ーザがファイルアクセスシステムコールを使用してコン
ピュータベースのファイル装置にアクセスすることを可
能にする。
れば、上記の問題点は、共通データベースをサーバのフ
ァイルおよびディレクトリのように扱うことによって解
決される。ネットワークの各クライアントにとって既に
利用可能であるネットワークファイル共有設備を使用す
ることにより、各クライアントは、現在のファイルアク
セスシステムコールを使用してデータベースに遠隔アク
セスすることができる。クライアント/サーバネットワ
ークアプリケーションに加えて、本発明は、一般に、ユ
ーザがファイルアクセスシステムコールを使用してコン
ピュータベースのファイル装置にアクセスすることを可
能にする。
【0005】本発明によれば、コンピュータベースのフ
ァイル装置は、ファイル名部分文字列一致以外の検索基
準を使用したファイルアクセスシステムコールを使用し
て、以前に格納されたデータオブジェクトの検索要求
を、実時間でかつユーザ選択可能な方法で実現する。フ
ァイルアクセスシステムコールは、非ファイル名部分文
字列ベースの検索基準を含む全ファイル名を含む。
ァイル装置は、ファイル名部分文字列一致以外の検索基
準を使用したファイルアクセスシステムコールを使用し
て、以前に格納されたデータオブジェクトの検索要求
を、実時間でかつユーザ選択可能な方法で実現する。フ
ァイルアクセスシステムコールは、非ファイル名部分文
字列ベースの検索基準を含む全ファイル名を含む。
【0006】本発明の非ファイル名部分文字列ベースの
検索技術を使用すれば、ユーザは、キー参照、関係参
照、表音参照、および演算子探索参照をして、装置の任
意のデータベースまたはファイルシステムに格納された
データオブジェクトを探索することができる。ユーザと
しては、格納されたデータオブジェクトへのアクセスを
要求する人間、プログラムまたは装置が可能である。1
つの機能によれば、探索される各データオブジェクトに
付随するキーがユーザに返される。他の機能によれば、
多データオブジェクトが仮想ディレクトリ内に編成さ
れ、ユーザによる以後のデータオブジェクトアクセスを
容易にする。
検索技術を使用すれば、ユーザは、キー参照、関係参
照、表音参照、および演算子探索参照をして、装置の任
意のデータベースまたはファイルシステムに格納された
データオブジェクトを探索することができる。ユーザと
しては、格納されたデータオブジェクトへのアクセスを
要求する人間、プログラムまたは装置が可能である。1
つの機能によれば、探索される各データオブジェクトに
付随するキーがユーザに返される。他の機能によれば、
多データオブジェクトが仮想ディレクトリ内に編成さ
れ、ユーザによる以後のデータオブジェクトアクセスを
容易にする。
【0007】
【実施例】図1を参照すると、ネットワークは、ローカ
ルエリアネットワーク(LAN)104を介して複数の
クライアントワークステーションまたはコンピュータ1
02、103に接続されたサーバコンピュータ100を
含む。サーバコンピュータ100は、例えば、ハードデ
ィスク180に格納されたデータへの共有アクセスをク
ライアントコンピュータ102、103に提供する。
ルエリアネットワーク(LAN)104を介して複数の
クライアントワークステーションまたはコンピュータ1
02、103に接続されたサーバコンピュータ100を
含む。サーバコンピュータ100は、例えば、ハードデ
ィスク180に格納されたデータへの共有アクセスをク
ライアントコンピュータ102、103に提供する。
【0008】一実施例では、クライアントコンピュータ
102、103は、周知のMS−DOS(登録商標)オ
ペレーティングシステムまたはOS/2オペレーティン
グシステムを使用して動作するパーソナルコンピュータ
(PC)である。(MS−DOSはマイクロソフト社の
登録商標である。OS/2はIBMの登録商標であ
る。)LAN104は、例えば、AT&T STARL
ANシステムである。
102、103は、周知のMS−DOS(登録商標)オ
ペレーティングシステムまたはOS/2オペレーティン
グシステムを使用して動作するパーソナルコンピュータ
(PC)である。(MS−DOSはマイクロソフト社の
登録商標である。OS/2はIBMの登録商標であ
る。)LAN104は、例えば、AT&T STARL
ANシステムである。
【0009】サーバコンピュータ100は、例えば、U
NIXシステムVリリース4.0オペレーティングシス
テム上で動作するAT&T6386ワークグループシス
テムコンピュータである。(UNIXはUNIXシステ
ムラボラトリーズ社の登録商標である。)クライアント
PC102、103およびサーバコンピュータ100は
AT&T StarGROUPTMシステムソフトウェ
アを使用することが可能である。このStarGROU
Pシステムソフトウェアによれば、MS−DOSおよび
OS/2クライアントPCがLAN上で透過的にデータ
ファイルを共有することができる。
NIXシステムVリリース4.0オペレーティングシス
テム上で動作するAT&T6386ワークグループシス
テムコンピュータである。(UNIXはUNIXシステ
ムラボラトリーズ社の登録商標である。)クライアント
PC102、103およびサーバコンピュータ100は
AT&T StarGROUPTMシステムソフトウェ
アを使用することが可能である。このStarGROU
Pシステムソフトウェアによれば、MS−DOSおよび
OS/2クライアントPCがLAN上で透過的にデータ
ファイルを共有することができる。
【0010】UNIXオペレーティングシステム120
の最上部でサーバプログラム123を実行するサーバコ
ンピュータ100は、LAN104上のクライアントP
C102および103によって利用可能とすることがで
きる大容量ハードディスク(例えば、105)をサポー
トすることができる。
の最上部でサーバプログラム123を実行するサーバコ
ンピュータ100は、LAN104上のクライアントP
C102および103によって利用可能とすることがで
きる大容量ハードディスク(例えば、105)をサポー
トすることができる。
【0011】クライアントコンピュータ103上のソフ
トウェアは、クライアントプログラム110によるディ
スク180へのアクセスを可能にするために、サーバコ
ンピュータ100上のサーバプログラム123と対話す
る。特に、ディスク180を参照するシステムコール
は、リダイレクタ112によって要求メッセージにパッ
ケージ化され、ネットワークソフトウェア113(ne
tbiosおよびプロトコルソフトウェアとして周知)
によってローカルエリアネットワーク104を通じてサ
ーバプログラム123へ伝送される。サーバプログラム
123は要求を処理し、応答をクライアントコンピュー
タ103へ送る。クライアント/サーバの対話動作のさ
らに詳細な説明は、「UNIXコンピュータのためのD
OSサーバプログラム」(I.J.ハイザー、AT&T
テクノロジー、第4巻第1号、1989年)という記事
にある。
トウェアは、クライアントプログラム110によるディ
スク180へのアクセスを可能にするために、サーバコ
ンピュータ100上のサーバプログラム123と対話す
る。特に、ディスク180を参照するシステムコール
は、リダイレクタ112によって要求メッセージにパッ
ケージ化され、ネットワークソフトウェア113(ne
tbiosおよびプロトコルソフトウェアとして周知)
によってローカルエリアネットワーク104を通じてサ
ーバプログラム123へ伝送される。サーバプログラム
123は要求を処理し、応答をクライアントコンピュー
タ103へ送る。クライアント/サーバの対話動作のさ
らに詳細な説明は、「UNIXコンピュータのためのD
OSサーバプログラム」(I.J.ハイザー、AT&T
テクノロジー、第4巻第1号、1989年)という記事
にある。
【0012】サーバコンピュータ100(以後、コンピ
ュータベースファイルシステムと呼ぶ)は、高レベルア
ーキテクチャ階層図を使用して示されるように、UNI
Xオペレーティングシステム105の制御下で動作す
る。階層図は、ユーザレベル120、カーネルレベル1
30、およびハードウェアレベル140を含む。ユーザ
レベル120は、LAN104を介してクライアント
(以後、ユーザと呼ぶ)102、103とインタフェー
スし、ディスク180に格納された所望のファイルへの
アクセスを可能にする。
ュータベースファイルシステムと呼ぶ)は、高レベルア
ーキテクチャ階層図を使用して示されるように、UNI
Xオペレーティングシステム105の制御下で動作す
る。階層図は、ユーザレベル120、カーネルレベル1
30、およびハードウェアレベル140を含む。ユーザ
レベル120は、LAN104を介してクライアント
(以後、ユーザと呼ぶ)102、103とインタフェー
スし、ディスク180に格納された所望のファイルへの
アクセスを可能にする。
【0013】ユーザレベル120は、ユーザプログラム
121(例えばサーバプログラム)およびライブラリ1
22を含む。ハードウェアレベル140は、オペレーテ
ィングシステム110に、コンピュータ100によって
必要とされる基本的サービスを提供する。カーネルレベ
ル130は、ハードウェアレベル140と直接対話し、
ユーザレベル120プログラムへ共通サービスを提供
し、ハードウェア特異性からユーザレベル120プログ
ラムを隔離する。
121(例えばサーバプログラム)およびライブラリ1
22を含む。ハードウェアレベル140は、オペレーテ
ィングシステム110に、コンピュータ100によって
必要とされる基本的サービスを提供する。カーネルレベ
ル130は、ハードウェアレベル140と直接対話し、
ユーザレベル120プログラムへ共通サービスを提供
し、ハードウェア特異性からユーザレベル120プログ
ラムを隔離する。
【0014】システムを階層の集合として見た場合、オ
ペレーティングシステムは、ユーザプログラムからの独
立を強調して、通常、システムカーネル130、または
単にカーネルと呼ばれる。ユーザプログラムは下部のハ
ードウェアとは独立であるため、異なるハードウェア上
で動作するUNIXシステム間でユーザプログラムを移
動することは容易である。UNIXオペレーティングシ
ステムの周知の動作の一般的説明は、モーリス・J.バ
ック著「UNIXオペレーティングシステムの設計」の
第2章から導かれる。
ペレーティングシステムは、ユーザプログラムからの独
立を強調して、通常、システムカーネル130、または
単にカーネルと呼ばれる。ユーザプログラムは下部のハ
ードウェアとは独立であるため、異なるハードウェア上
で動作するUNIXシステム間でユーザプログラムを移
動することは容易である。UNIXオペレーティングシ
ステムの周知の動作の一般的説明は、モーリス・J.バ
ック著「UNIXオペレーティングシステムの設計」の
第2章から導かれる。
【0015】システムコールインタフェース131は、
ユーザレベル120(ユーザプログラム121およびプ
ログラムライブラリ122)とカーネルレベル130の
間の境界を表す。システムコールインタフェース131
は、ユーザプログラムコールをUNIXシステムコール
に変換する。システムコールはCプログラムにおける通
常のファンクションコールのように見え、ライブラリ
は、このファンクションコールを、周知の方法で、オペ
レーティングシステムに入るために必要なプリミティブ
にマップする。
ユーザレベル120(ユーザプログラム121およびプ
ログラムライブラリ122)とカーネルレベル130の
間の境界を表す。システムコールインタフェース131
は、ユーザプログラムコールをUNIXシステムコール
に変換する。システムコールはCプログラムにおける通
常のファンクションコールのように見え、ライブラリ
は、このファンクションコールを、周知の方法で、オペ
レーティングシステムに入るために必要なプリミティブ
にマップする。
【0016】システムコールの集合は、ファイルシステ
ムドライバ132と対話するシステムコール、および、
プロセス制御サブシステム133と対話するシステムコ
ールを含む。ファイルシステムドライバ132は、ファ
イル空間を割り当て、ファイルへのアクセスを制御し、
ユーザのためにデータを検索するなどのファイル管理を
行う。プロセスは、open(読み出しまたは書き込み
のためにファイルをオープンする)、close、re
ad、write、stat(ファイルの属性を照会す
る)、chown(ファイルの所有者の記録を変更す
る)、および、chmod(ファイルのアクセス許可を
変更する)のような、特殊なシステムコールの集合によ
ってファイルシステムドライバ132と対話する。
ムドライバ132と対話するシステムコール、および、
プロセス制御サブシステム133と対話するシステムコ
ールを含む。ファイルシステムドライバ132は、ファ
イル空間を割り当て、ファイルへのアクセスを制御し、
ユーザのためにデータを検索するなどのファイル管理を
行う。プロセスは、open(読み出しまたは書き込み
のためにファイルをオープンする)、close、re
ad、write、stat(ファイルの属性を照会す
る)、chown(ファイルの所有者の記録を変更す
る)、および、chmod(ファイルのアクセス許可を
変更する)のような、特殊なシステムコールの集合によ
ってファイルシステムドライバ132と対話する。
【0017】ファイルシステムドライバ132は、カー
ネルと補助記憶装置の間のデータフローを調整するバッ
ファ136を使用してファイルデータにアクセスする。
バッファリング機構は、カーネルとの間のデータ転送を
開始するために、ブロックI/Oデバイスドライバ13
7と対話する。デバイスドライバ134は、周辺装置の
動作を制御するカーネルモジュールである。
ネルと補助記憶装置の間のデータフローを調整するバッ
ファ136を使用してファイルデータにアクセスする。
バッファリング機構は、カーネルとの間のデータ転送を
開始するために、ブロックI/Oデバイスドライバ13
7と対話する。デバイスドライバ134は、周辺装置の
動作を制御するカーネルモジュールである。
【0018】ブロックI/Oデバイス141は、ランダ
ムアクセス記憶装置である。または、ブロックI/Oデ
バイス141のデバイスドライバ137が、システムの
他の部分に対して、デバイス141をランダムアクセス
記憶装置のように見せる。例えば、テープドライバは、
カーネルが、テープ装置をランダムアクセス記憶装置と
して扱うことを可能にする。ファイルシステムはまた、
バッファリング機構の介入なく、「生の」すなわちキャ
ラクタI/Oデバイスドライバ138とも直接対話す
る。生のデバイスは、時にキャラクタI/Oデバイス1
42と呼ばれるが、ブロックデバイス以外のすべてのデ
バイスを含む。
ムアクセス記憶装置である。または、ブロックI/Oデ
バイス141のデバイスドライバ137が、システムの
他の部分に対して、デバイス141をランダムアクセス
記憶装置のように見せる。例えば、テープドライバは、
カーネルが、テープ装置をランダムアクセス記憶装置と
して扱うことを可能にする。ファイルシステムはまた、
バッファリング機構の介入なく、「生の」すなわちキャ
ラクタI/Oデバイスドライバ138とも直接対話す
る。生のデバイスは、時にキャラクタI/Oデバイス1
42と呼ばれるが、ブロックデバイス以外のすべてのデ
バイスを含む。
【0019】プロセス制御サブシステム133は、プロ
セス同期、プロセス間通信、メモリ管理、およびプロセ
ススケジューリングを行う。ファイルシステムドライバ
132およびプロセル・システム制御サブシステム13
3は、実行のためにメモリにファイルをロードする際に
対話する。プロセス制御サブシステム133は、実行前
に、実行可能ファイルをメモリに読み込む。
セス同期、プロセス間通信、メモリ管理、およびプロセ
ススケジューリングを行う。ファイルシステムドライバ
132およびプロセル・システム制御サブシステム13
3は、実行のためにメモリにファイルをロードする際に
対話する。プロセス制御サブシステム133は、実行前
に、実行可能ファイルをメモリに読み込む。
【0020】プロセスを制御するためのシステムコール
には、fork(新たなプロセスを作成する)、exe
c(プログラムのイメージを実行中のプロセス上にオー
バレイする)、exit(プロセスの実行を終了す
る)、wait(プロセスの実行を、以前にforkさ
れたプロセスのexitと同期させる)、brk(プロ
セスに割り当てられたメモリのサイズを制御する)、お
よびsignal(異常事態に対するプロセスの応答を
制御する)がある。
には、fork(新たなプロセスを作成する)、exe
c(プログラムのイメージを実行中のプロセス上にオー
バレイする)、exit(プロセスの実行を終了す
る)、wait(プロセスの実行を、以前にforkさ
れたプロセスのexitと同期させる)、brk(プロ
セスに割り当てられたメモリのサイズを制御する)、お
よびsignal(異常事態に対するプロセスの応答を
制御する)がある。
【0021】図1、2および3を合わせて参照しなが
ら、ファイルシステムの概要を説明する。あらゆるファ
イルには、1個以上のパス名310によって名前が付け
られる。パス名310は、デリミタ(/)によって分離
されたファイル名(例えばhome)を含む。ファイル
名は330に示された種類のいずれかが可能である。フ
ァイルの内部表現はiノード200によって与えられ
る。
ら、ファイルシステムの概要を説明する。あらゆるファ
イルには、1個以上のパス名310によって名前が付け
られる。パス名310は、デリミタ(/)によって分離
されたファイル名(例えばhome)を含む。ファイル
名は330に示された種類のいずれかが可能である。フ
ァイルの内部表現はiノード200によって与えられ
る。
【0022】iノード200は、ファイルデータのディ
スク様式の記述およびその他の情報、例えば、ファイル
所有者、アクセス許可、およびアクセス回数などを含
む。iノードという用語は、インデックスノードという
用語を短縮したものであり、UNIXシステムに関する
文献で一般的に使用されている。あらゆるファイルは、
1個のiノードを有するが、いくつかのパス名を有する
ことが可能であり、それらのパス名はすべてその1個の
iノードにマップされる。
スク様式の記述およびその他の情報、例えば、ファイル
所有者、アクセス許可、およびアクセス回数などを含
む。iノードという用語は、インデックスノードという
用語を短縮したものであり、UNIXシステムに関する
文献で一般的に使用されている。あらゆるファイルは、
1個のiノードを有するが、いくつかのパス名を有する
ことが可能であり、それらのパス名はすべてその1個の
iノードにマップされる。
【0023】各パス名はリンクと呼ばれる。プロセスが
パス名によってファイルを参照すると、カーネルは、1
度に1ファイル名成分ずつパス名を解析し、プロセスが
そのパス内のディレクトリを検索する許可を有すること
をチェックし、最終的にそのファイルに対するiノード
を取り出す。例えば、プロセスがコール「open(/
home/jqp)」をすると、カーネルは「/hom
e/jqp」に対するiノードを取り出す。
パス名によってファイルを参照すると、カーネルは、1
度に1ファイル名成分ずつパス名を解析し、プロセスが
そのパス内のディレクトリを検索する許可を有すること
をチェックし、最終的にそのファイルに対するiノード
を取り出す。例えば、プロセスがコール「open(/
home/jqp)」をすると、カーネルは「/hom
e/jqp」に対するiノードを取り出す。
【0024】315のように、完全パス名に対する「フ
ァイルシステムツリー」はスラッシュ文字(「/」)で
始まり、そのパス名がファイルシステムツリーの「ルー
ト」に関係することを指定する。パス名の後続の成分名
につながる分枝に従うと、「/home/jqp/me
moirs」は完全パス名を表すが、「/jqp/me
moirs」はそうではない。パス名の最初のスラッシ
ュを取り除くことにより、パス名はルートから始まる必
要はなく、実行中のプロセスの「カレントディレクト
リ」に関係することを表すことができる。従って、カレ
ントディレクトリ「/home」から始まると、パス名
「Bin」は、完全パス名が「/home/Bin」で
あるファイルを表すことになる。
ァイルシステムツリー」はスラッシュ文字(「/」)で
始まり、そのパス名がファイルシステムツリーの「ルー
ト」に関係することを指定する。パス名の後続の成分名
につながる分枝に従うと、「/home/jqp/me
moirs」は完全パス名を表すが、「/jqp/me
moirs」はそうではない。パス名の最初のスラッシ
ュを取り除くことにより、パス名はルートから始まる必
要はなく、実行中のプロセスの「カレントディレクト
リ」に関係することを表すことができる。従って、カレ
ントディレクトリ「/home」から始まると、パス名
「Bin」は、完全パス名が「/home/Bin」で
あるファイルを表すことになる。
【0025】プロセスが新たなファイルを作成すると、
ファイルシステムドライバ132はそのファイルに未使
用のiノードを割り当てる。iノードは、すぐ後で説明
するように、物理ファイルシステム220のセクション
223に格納されるが、ファイルシステムドライバ13
2は、ファイルを操作する際にはiノードをインコアメ
モリiノードテーブルに読み込む。
ファイルシステムドライバ132はそのファイルに未使
用のiノードを割り当てる。iノードは、すぐ後で説明
するように、物理ファイルシステム220のセクション
223に格納されるが、ファイルシステムドライバ13
2は、ファイルを操作する際にはiノードをインコアメ
モリiノードテーブルに読み込む。
【0026】UNIXシステムは一般的にレギュラーフ
ァイルおよびディレクトリをディスクのようなブロック
デバイス上に保持する。それぞれ1個以上のファイルシ
ステムを含むいくつかの物理ディスク装置を有するよう
な設置もある。ファイルシステム220は、論理ブロッ
クの列として編成され、各ブロックは、システムの実現
に依存して、512、1024、2048、または任意
の都合の良い512バイトの整数倍のバイト数からな
る。512の倍数の使用は慣例によるものであり、51
2バイトのブロックを使用する本質的理由はない。
ァイルおよびディレクトリをディスクのようなブロック
デバイス上に保持する。それぞれ1個以上のファイルシ
ステムを含むいくつかの物理ディスク装置を有するよう
な設置もある。ファイルシステム220は、論理ブロッ
クの列として編成され、各ブロックは、システムの実現
に依存して、512、1024、2048、または任意
の都合の良い512バイトの整数倍のバイト数からな
る。512の倍数の使用は慣例によるものであり、51
2バイトのブロックを使用する本質的理由はない。
【0027】物理ファイルシステムは、図2の220に
図示される物理構造を有する。ブートブロック221
(一部のファイルシステムのみに存在)は、ファイルシ
ステムの最初(一般に第1ディスクセクタ)を占有し、
オペレーティングシステムをブート、すなわち初期化す
るためにマシンに読み込まれるブートストラップコード
を含む。システムをブートするにはただ1つのブートブ
ロックがあればよいが、あらゆるファイルシステムが
(おそらくは空の)ブートブロックを有することもあ
る。
図示される物理構造を有する。ブートブロック221
(一部のファイルシステムのみに存在)は、ファイルシ
ステムの最初(一般に第1ディスクセクタ)を占有し、
オペレーティングシステムをブート、すなわち初期化す
るためにマシンに読み込まれるブートストラップコード
を含む。システムをブートするにはただ1つのブートブ
ロックがあればよいが、あらゆるファイルシステムが
(おそらくは空の)ブートブロックを有することもあ
る。
【0028】スーパーブロック222は、ファイルシス
テムの状態(大きさ、格納可能ファイル数、ファイルシ
ステム上の空きスペースの位置、などの情報)を記述す
る。iノードリスト223は、ファイルシステム内でス
ーパーブロックの後に続く、iノードのリストである。
管理者は、ファイルシステムを設定する際にiノードリ
スト223のサイズを指定する。ファイルシステムドラ
イバ132は、iノードリスト223へのインデックス
によってiノードを参照する。
テムの状態(大きさ、格納可能ファイル数、ファイルシ
ステム上の空きスペースの位置、などの情報)を記述す
る。iノードリスト223は、ファイルシステム内でス
ーパーブロックの後に続く、iノードのリストである。
管理者は、ファイルシステムを設定する際にiノードリ
スト223のサイズを指定する。ファイルシステムドラ
イバ132は、iノードリスト223へのインデックス
によってiノードを参照する。
【0029】1つのiノードはファイルシステムのルー
トiノードである。このiノードによって、mount
システムコールの実行後にファイルシステムのルートデ
ィレクトリ構造がアクセス可能になる。データブロック
224は、iノードリストの最後から始まり、ファイル
データの内容を保持する。割り当てられたデータブロッ
クは、ファイルの実際のデータを含み、ファイルシステ
ム内のただ1つのファイルに属することができる。
トiノードである。このiノードによって、mount
システムコールの実行後にファイルシステムのルートデ
ィレクトリ構造がアクセス可能になる。データブロック
224は、iノードリストの最後から始まり、ファイル
データの内容を保持する。割り当てられたデータブロッ
クは、ファイルの実際のデータを含み、ファイルシステ
ム内のただ1つのファイルに属することができる。
【0030】本発明の動作は、仮想ファイルシステムを
使用してUNIXシステム上に実現された拡張ファイル
システム(EFS)において利用されるものとして説明
する。一部のUNIXシステムは、全ファイルシステム
操作を編成するために仮想ファイルシステム(VFS)
の概念を使用している。本発明はVFS機構を必要とし
ないが、VFSは本発明を説明する便利な概念的モデル
を提供する。VFSは、システムVファイルシステムス
イッチ(FSS)とSUN OS VFS機構の合併で
ある。ユーザプログラムは、SVR4.0VFSアーキ
テクチャによって影響を受けないことに注意すべきであ
る。
使用してUNIXシステム上に実現された拡張ファイル
システム(EFS)において利用されるものとして説明
する。一部のUNIXシステムは、全ファイルシステム
操作を編成するために仮想ファイルシステム(VFS)
の概念を使用している。本発明はVFS機構を必要とし
ないが、VFSは本発明を説明する便利な概念的モデル
を提供する。VFSは、システムVファイルシステムス
イッチ(FSS)とSUN OS VFS機構の合併で
ある。ユーザプログラムは、SVR4.0VFSアーキ
テクチャによって影響を受けないことに注意すべきであ
る。
【0031】VFSは、ファイルシステム型とは独立
の、プログラムおよびユーザとのインタフェースを提供
しつつ、個々のファイルシステムが個々の方法でファイ
ルシステム操作を処理することを可能にする。ファイル
システム型に依存するカーネルルーチンは、その種類に
特有の作業を実行する。
の、プログラムおよびユーザとのインタフェースを提供
しつつ、個々のファイルシステムが個々の方法でファイ
ルシステム操作を処理することを可能にする。ファイル
システム型に依存するカーネルルーチンは、その種類に
特有の作業を実行する。
【0032】VFSの重要な長所は、サードパーティー
のソフトウェアハウスによって、新たなファイルシステ
ム型が定義され実現されることが可能なことである。V
FSを構成するカーネルインタフェースの集合は、US
Lから入手可能なVFSファイルシステム型作成者ガイ
ドで利用可能である。
のソフトウェアハウスによって、新たなファイルシステ
ム型が定義され実現されることが可能なことである。V
FSを構成するカーネルインタフェースの集合は、US
Lから入手可能なVFSファイルシステム型作成者ガイ
ドで利用可能である。
【0033】本発明によれば、ディレクトリ構造に格納
されたファイルの実際の名前とは全く無関係である全フ
ァイル名によって、ファイルシステムのプログラムまた
は人間ユーザ(以後、合わせてユーザと呼ぶ)がファイ
ルにアクセスすることが可能となる。全ファイル名は、
まず、存在するファイルのファイル名に対する完全一致
のテストを受ける。完全一致が存在しない場合、EFS
は、論理構文(以下で説明する)を使用して全ファイル
名の解析を試みる。全ファイル名が論理構文のうちの1
つ(バックドア構文と呼ばれる)と正確に一致した場
合、EFSは、バックドア構文によって指定される論理
基準と一致するファイルを返すか、または、その論理基
準と一致するファイルを含む仮想ディレクトリを返す。
されたファイルの実際の名前とは全く無関係である全フ
ァイル名によって、ファイルシステムのプログラムまた
は人間ユーザ(以後、合わせてユーザと呼ぶ)がファイ
ルにアクセスすることが可能となる。全ファイル名は、
まず、存在するファイルのファイル名に対する完全一致
のテストを受ける。完全一致が存在しない場合、EFS
は、論理構文(以下で説明する)を使用して全ファイル
名の解析を試みる。全ファイル名が論理構文のうちの1
つ(バックドア構文と呼ばれる)と正確に一致した場
合、EFSは、バックドア構文によって指定される論理
基準と一致するファイルを返すか、または、その論理基
準と一致するファイルを含む仮想ディレクトリを返す。
【0034】本発明の他の特徴によれば、多くの型の変
形参照基準が可能である。上記のように、現在のファイ
ルシステムは、ファイル名の完全文字一致、または、大
文字小文字無視一致、または、ある形式の部分文字列一
致(例えば、「fo?」、「f*」)によるファイル名
一致をサポートする。以後、変形ファイル名一致を「非
従来式」ファイル名一致と呼ぶ。従来式一致に加えて、
本発明は、全ファイル名が完全文字、大文字小文字無
視、目的ファイル名の部分文字列のいずれでもない場合
の非従来式参照基準(すなわち、ファイル名部分文字列
ベースでない基準)を含む。
形参照基準が可能である。上記のように、現在のファイ
ルシステムは、ファイル名の完全文字一致、または、大
文字小文字無視一致、または、ある形式の部分文字列一
致(例えば、「fo?」、「f*」)によるファイル名
一致をサポートする。以後、変形ファイル名一致を「非
従来式」ファイル名一致と呼ぶ。従来式一致に加えて、
本発明は、全ファイル名が完全文字、大文字小文字無
視、目的ファイル名の部分文字列のいずれでもない場合
の非従来式参照基準(すなわち、ファイル名部分文字列
ベースでない基準)を含む。
【0035】非従来式参照基準は、2つの広いカテゴリ
ーに分かれる:1)0または1個のオブジェクトと一致
することが可能な単一オブジェクト基準;2)0、1、
またはそれ以上のオブジェクトと一致することが可能な
多オブジェクト基準である。単一オブジェクト基準は、
所望のデータオブジェクトに対する唯一の識別子すなわ
ちキー(例えば、社会保障番号)のように、所望のデー
タオブジェクトの特質である。
ーに分かれる:1)0または1個のオブジェクトと一致
することが可能な単一オブジェクト基準;2)0、1、
またはそれ以上のオブジェクトと一致することが可能な
多オブジェクト基準である。単一オブジェクト基準は、
所望のデータオブジェクトに対する唯一の識別子すなわ
ちキー(例えば、社会保障番号)のように、所望のデー
タオブジェクトの特質である。
【0036】従来、ファイルシステムは、特定のファイ
ル名はディレクトリ内でただ1つであることを保証して
いるため、従来式ファイル一致は単一オブジェクト基準
である。iノードは唯一のものであると定義されるた
め、iノード番号(inoとも呼ぶ)による参照は単一
オブジェクト基準である。特定のユーザによって所有さ
れるファイルシステム上の全オブジェクトを識別するこ
と、または、特定のディレクトリ内に保持されている全
ファイルを識別することのための参照は、多オブジェク
ト基準である。いくつかのオブジェクトが同時にこの基
準を満たすことがあるためである。
ル名はディレクトリ内でただ1つであることを保証して
いるため、従来式ファイル一致は単一オブジェクト基準
である。iノードは唯一のものであると定義されるた
め、iノード番号(inoとも呼ぶ)による参照は単一
オブジェクト基準である。特定のユーザによって所有さ
れるファイルシステム上の全オブジェクトを識別するこ
と、または、特定のディレクトリ内に保持されている全
ファイルを識別することのための参照は、多オブジェク
ト基準である。いくつかのオブジェクトが同時にこの基
準を満たすことがあるためである。
【0037】単一オブジェクト基準(例えば、キー)
は、UNIXファイルシステムで現在サポートされてい
る周知の(パス名を使用した)「ハード」または「シン
ボリック」リンク機構のように、ファイルオブジェクト
を直接参照することができる。本質的に、単一オブジェ
クト基準は、1個のファイルが基準に一致する場合には
単なるもう1つのリンクであり、0個のファイルが基準
に一致する場合には単なるもう1つの発見されないファ
イル名である。従来式のファイル名一致に加えて、本発
明では、332の構文1のような、所定の構文の使用が
可能である。
は、UNIXファイルシステムで現在サポートされてい
る周知の(パス名を使用した)「ハード」または「シン
ボリック」リンク機構のように、ファイルオブジェクト
を直接参照することができる。本質的に、単一オブジェ
クト基準は、1個のファイルが基準に一致する場合には
単なるもう1つのリンクであり、0個のファイルが基準
に一致する場合には単なるもう1つの発見されないファ
イル名である。従来式のファイル名一致に加えて、本発
明では、332の構文1のような、所定の構文の使用が
可能である。
【0038】本発明のこの目的によれば、ファイルへの
「バックドア」アクセスが、マッキントッシュのファイ
ル識別子(fileid)およびディレクトリ識別子
(dirid)機構をエミュレートすることを可能にす
る。fileidおよびdiridは、マッキントッシ
ュのファイルまたはディレクトリを参照する固定長数値
である。これらのidは、ファイルまたはディレクトリ
を参照するために一般的に使用されている任意長パス名
よりも扱いやすい。
「バックドア」アクセスが、マッキントッシュのファイ
ル識別子(fileid)およびディレクトリ識別子
(dirid)機構をエミュレートすることを可能にす
る。fileidおよびdiridは、マッキントッシ
ュのファイルまたはディレクトリを参照する固定長数値
である。これらのidは、ファイルまたはディレクトリ
を参照するために一般的に使用されている任意長パス名
よりも扱いやすい。
【0039】本発明によれば、特定のファイルに付随し
たファイルシステムパラメータの値に基づいて特殊なフ
ァイル名を作成することにより、ファイルまたはディレ
クトリに名前を付ける(従ってオープン、参照などがで
きる)ことができる。特に、ファイルシステム上の各フ
ァイルは、そのi番号(ファイルシステムテーブルへの
インデックス)および世代番号(iノードリスト223
内のi番号スロットが再割当てされるたびごとにインク
リメントされる「シリアル」番号)によって一意的に識
別できる。
たファイルシステムパラメータの値に基づいて特殊なフ
ァイル名を作成することにより、ファイルまたはディレ
クトリに名前を付ける(従ってオープン、参照などがで
きる)ことができる。特に、ファイルシステム上の各フ
ァイルは、そのi番号(ファイルシステムテーブルへの
インデックス)および世代番号(iノードリスト223
内のi番号スロットが再割当てされるたびごとにインク
リメントされる「シリアル」番号)によって一意的に識
別できる。
【0040】あるアルゴリズムによって、これらの2つ
の番号は単一の番号に結合され、または、単一の番号か
ら分解されることが可能となる。本発明によれば、ファ
イルは、次の形式のファイル名を使用してアクセスする
ことが可能となる:ino=i番号,gen=世代番
号。これは、所定の構文によって実現可能な多くの非従
来式単一オブジェクト基準の1つにすぎない。
の番号は単一の番号に結合され、または、単一の番号か
ら分解されることが可能となる。本発明によれば、ファ
イルは、次の形式のファイル名を使用してアクセスする
ことが可能となる:ino=i番号,gen=世代番
号。これは、所定の構文によって実現可能な多くの非従
来式単一オブジェクト基準の1つにすぎない。
【0041】ファイルの集合に対する一般的なファイル
システムモデルはディレクトリであり、多オブジェクト
基準参照の結果はディレクトリ内のファイルとして提示
される。従来式ファイルシステムでは、ディレクトリの
要素はそのディレクトリに直接従属するファイルの名前
である。ディレクトリ内の要素は、i番号−ファイル名
の対によって指定される。特定のディレクトリに直接従
属するすべてのファイルおよびディレクトリに対するi
番号−ファイル名対に加えて、「.」および「..」に
対するエントリが存在する。「.」エントリは、その特
定ディレクトリのi番号を指定し、「..」エントリは
そのディレクトリの直接の親のi番号を指定する。
システムモデルはディレクトリであり、多オブジェクト
基準参照の結果はディレクトリ内のファイルとして提示
される。従来式ファイルシステムでは、ディレクトリの
要素はそのディレクトリに直接従属するファイルの名前
である。ディレクトリ内の要素は、i番号−ファイル名
の対によって指定される。特定のディレクトリに直接従
属するすべてのファイルおよびディレクトリに対するi
番号−ファイル名対に加えて、「.」および「..」に
対するエントリが存在する。「.」エントリは、その特
定ディレクトリのi番号を指定し、「..」エントリは
そのディレクトリの直接の親のi番号を指定する。
【0042】本発明では、多オブジェクト基準参照の結
果はディレクトリエントリ取得(getdent
s())システムコールによって返される。各オブジェ
クトは、ファイル名、および、エントリのiノードとし
ての固有のアクセスキーとともに返される。各目的エン
トリの一意的アクセスキー(例えば、i番号)が与えら
れると、その目的エントリにアクセスするために「in
o=i番号」のような単一オブジェクト基準を使用する
ことができる。
果はディレクトリエントリ取得(getdent
s())システムコールによって返される。各オブジェ
クトは、ファイル名、および、エントリのiノードとし
ての固有のアクセスキーとともに返される。各目的エン
トリの一意的アクセスキー(例えば、i番号)が与えら
れると、その目的エントリにアクセスするために「in
o=i番号」のような単一オブジェクト基準を使用する
ことができる。
【0043】こうしたディレクトリは、ディレクトリの
内容を見ることを要求する際に作成され、見るのが終了
すると自動的に除去されるという意味で「仮想的」であ
る。例えば、電子電話帳を実現するために本発明を使用
することを考える。アプリケーションは、ディレクトリ
「/phonebook/phonetic=kacu
rro」を探索することによって表音参照を発行する。
内容を見ることを要求する際に作成され、見るのが終了
すると自動的に除去されるという意味で「仮想的」であ
る。例えば、電子電話帳を実現するために本発明を使用
することを考える。アプリケーションは、ディレクトリ
「/phonebook/phonetic=kacu
rro」を探索することによって表音参照を発行する。
【0044】ディレクトリエントリ取得システムコール
を続けて呼び出すことにより、i番号745をもつ「c
accuro,annemarie」およびi番号11
24をもつ「caccuro,john」が返される。
ユーザが「caccuro,john」を選択すると、
アプリケーションは「/phonebook/ino=
1124」をオープンすることによってそのエントリに
アクセスする。仮想ディレクトリが作成され操作されて
いるため、この実現は、「smith,john」のよ
うな、同一のファイル名で異なるi番号をもついくつか
のエントリを返すことがある。
を続けて呼び出すことにより、i番号745をもつ「c
accuro,annemarie」およびi番号11
24をもつ「caccuro,john」が返される。
ユーザが「caccuro,john」を選択すると、
アプリケーションは「/phonebook/ino=
1124」をオープンすることによってそのエントリに
アクセスする。仮想ディレクトリが作成され操作されて
いるため、この実現は、「smith,john」のよ
うな、同一のファイル名で異なるi番号をもついくつか
のエントリを返すことがある。
【0045】仮想ディレクトリは、最初に「VFS参
照」に参照されるときに作成され、もはや参照されない
という信号をカーネルが発するまで存続する。一般的
に、カーネルは、VFS「非活動」ルーチンによって、
オブジェクトがもはや参照されないという信号を発す
る。「仮想」ディレクトリ「/phonebook/p
honetic=cacurro」は、「phoneb
ook」に直接従属するディレクトリをリストしても現
れないという点で、仮想的である。
照」に参照されるときに作成され、もはや参照されない
という信号をカーネルが発するまで存続する。一般的
に、カーネルは、VFS「非活動」ルーチンによって、
オブジェクトがもはや参照されないという信号を発す
る。「仮想」ディレクトリ「/phonebook/p
honetic=cacurro」は、「phoneb
ook」に直接従属するディレクトリをリストしても現
れないという点で、仮想的である。
【0046】本発明のもう1つの目的は、関係データベ
ース照会332構文3がファイルを選択するために使用
されることを可能にすることである。例えば、「pho
nebook」ファイルシステムは、「organiz
ation=」のような簡単なデータベース照会するよ
うにも構築される。従って、「ls /phonebo
ok/organization=sales」という
要求は、全販売員を列挙する。
ース照会332構文3がファイルを選択するために使用
されることを可能にすることである。例えば、「pho
nebook」ファイルシステムは、「organiz
ation=」のような簡単なデータベース照会するよ
うにも構築される。従って、「ls /phonebo
ok/organization=sales」という
要求は、全販売員を列挙する。
【0047】さらに柔軟な、もう1つの多オブジェクト
構文型は、「find:user=root,mode
=644」のようなファイル名を使用することができ
る。システムは、検索基準(所有者およびモード)に一
致する、ファイルシステム上のすべてのファイルオブジ
ェクト(ファイルまたはディレクトリ)へのリンクを含
む仮想ディレクトリへの参照を返す。本発明は、単一お
よび他オブジェクト基準が、「grep」動作(ファイ
ル内の正規表現を検索する)を実行するように、実行時
に計算されることを可能にする。例えば、「ls /h
ome/grep:AT&T」は、文字列「AT&T」
を含む、「/home」に従属する全ファイルを列挙す
る。
構文型は、「find:user=root,mode
=644」のようなファイル名を使用することができ
る。システムは、検索基準(所有者およびモード)に一
致する、ファイルシステム上のすべてのファイルオブジ
ェクト(ファイルまたはディレクトリ)へのリンクを含
む仮想ディレクトリへの参照を返す。本発明は、単一お
よび他オブジェクト基準が、「grep」動作(ファイ
ル内の正規表現を検索する)を実行するように、実行時
に計算されることを可能にする。例えば、「ls /h
ome/grep:AT&T」は、文字列「AT&T」
を含む、「/home」に従属する全ファイルを列挙す
る。
【0048】これから、図1の階層図を参照しながら、
本発明の動作のさらに詳細な説明をする。
本発明の動作のさらに詳細な説明をする。
【0049】図1および4をともに参照して、本発明の
動作を詳細に説明する。本発明は、パス名をvノードに
変換する間に起こる標準的参照パス名機能の一部とし
て、ファイルシステム特有の参照機能を実行するように
実現される。
動作を詳細に説明する。本発明は、パス名をvノードに
変換する間に起こる標準的参照パス名機能の一部とし
て、ファイルシステム特有の参照機能を実行するように
実現される。
【0050】ファイルへの最初のアクセスは、ope
n、chdir(ディレクトリ変更)、またはlink
システムコールの場合と同様に、パス名による。カーネ
ル130は、内部的にはパス名ではなくvノードで作業
するため、カーネルは、ファイルにアクセスするために
パス名をvノードに変換する。UNIXシステムカーネ
ルのアルゴリズムは、パス名を1度に1成分だけ解析
し、各成分を名前に基づいてvノードに変換し、ディレ
クトリを探索し、最後に入力パス名のvノードを返す。
n、chdir(ディレクトリ変更)、またはlink
システムコールの場合と同様に、パス名による。カーネ
ル130は、内部的にはパス名ではなくvノードで作業
するため、カーネルは、ファイルにアクセスするために
パス名をvノードに変換する。UNIXシステムカーネ
ルのアルゴリズムは、パス名を1度に1成分だけ解析
し、各成分を名前に基づいてvノードに変換し、ディレ
クトリを探索し、最後に入力パス名のvノードを返す。
【0051】本発明の詳細な動作は一般的な動作コンテ
クストで説明される(図5)ため、ステップ401〜4
25およびステップ429〜439は、パス名をvノー
ドに変換する現在のステップを簡単に説明している。
クストで説明される(図5)ため、ステップ401〜4
25およびステップ429〜439は、パス名をvノー
ドに変換する現在のステップを簡単に説明している。
【0052】ユーザの検索要求または他のシステム要求
に応答して、ユーザプログラム121はプロセスコール
(例えば、ユーザプログラム検索要求を実行する。ユー
ザプログラム121がプロセスコール、例えばopen
(パス名、openフラグ)、を実行すると、オペレー
ティングシステムカーネル(以後カーネル)130は、
ステップ401で、周知のコマンドvn_open(n
ame,seg,ファイルモード、作成モード、vp
p,crwhy)を生成する。
に応答して、ユーザプログラム121はプロセスコール
(例えば、ユーザプログラム検索要求を実行する。ユー
ザプログラム121がプロセスコール、例えばopen
(パス名、openフラグ)、を実行すると、オペレー
ティングシステムカーネル(以後カーネル)130は、
ステップ401で、周知のコマンドvn_open(n
ame,seg,ファイルモード、作成モード、vp
p,crwhy)を生成する。
【0053】コマンドvn_openは許可チェックを
実行し、nameによってファイルをオープンし、結果
のvノードへのポインタを返す。コマンドvn_ope
nにおいて、パラメータnameはファイル名を含む。
segはファイル名の存在するアドレス空間(ユーザ空
間またはカーネル空間のいずれか)である。ファイルモ
ードはオープンモードである。作成モードは、ファイル
が作成される場合の許可ビットを含む。vppは結果の
vノードポインタへのポインタである。crwhyは、
このルーチンが呼び出される理由であり、ファイルモー
ドのFcreateビットがセットされている場合に限
り定義される。
実行し、nameによってファイルをオープンし、結果
のvノードへのポインタを返す。コマンドvn_ope
nにおいて、パラメータnameはファイル名を含む。
segはファイル名の存在するアドレス空間(ユーザ空
間またはカーネル空間のいずれか)である。ファイルモ
ードはオープンモードである。作成モードは、ファイル
が作成される場合の許可ビットを含む。vppは結果の
vノードポインタへのポインタである。crwhyは、
このルーチンが呼び出される理由であり、ファイルモー
ドのFcreateビットがセットされている場合に限
り定義される。
【0054】ステップ402では、ファイル名がユーザ
プログラム121から受容される。ステップ403で、
カーネル130は、Fcreateビットがセットされ
ているかどうかをチェックする。セットされている場
合、ステップ405で、コマンドvn_creat
e()が従来の方法で生成される。vn_create
のコマンドは、カーネル130に対し、プロセスコール
が新たなファイルの作成を希望していることを知らせ
る。この動作は周知であり、本発明の理解にとっては重
要でない。
プログラム121から受容される。ステップ403で、
カーネル130は、Fcreateビットがセットされ
ているかどうかをチェックする。セットされている場
合、ステップ405で、コマンドvn_creat
e()が従来の方法で生成される。vn_create
のコマンドは、カーネル130に対し、プロセスコール
が新たなファイルの作成を希望していることを知らせ
る。この動作は周知であり、本発明の理解にとっては重
要でない。
【0055】Fcreateビットがセットされていな
い場合、ステップ407で、パス名がヌルでないかどう
かを決定するためにパス名がチェックされる。例では、
パス名は「/home/jqp/memoirs」であ
った。パス名がヌルの場合、ステップ409で、「エン
トリが見つからない」エラーがシステムユーザに返され
る。
い場合、ステップ407で、パス名がヌルでないかどう
かを決定するためにパス名がチェックされる。例では、
パス名は「/home/jqp/memoirs」であ
った。パス名がヌルの場合、ステップ409で、「エン
トリが見つからない」エラーがシステムユーザに返され
る。
【0056】パス名がヌルでない場合、ステップ411
で、パス名中の後続デリミタすなわちスラッシュが除去
される。(例では、「memoirs」の後に後続スラ
ッシュはない。)ステップ413で、「name」の第
1文字が「/」文字(パス名がルートから開始すること
を示す)である場合、作業ディレクトリがルートにセッ
トされる。その他の場合は、作業ディレクトリはカレン
トディレクトリにセットされる。ステップ415で、作
業ディレクトリがディレクトリであるかどうかが判定さ
れる。ディレクトリでない場合、ステップ417で、
「ディレクトリでない」エラーがユーザに返される。作
業ディレクトリがディレクトリである場合、ステップ4
19で、先頭ファイル名成分(すなわち、例では「ho
me」)がパス名から取り出される。
で、パス名中の後続デリミタすなわちスラッシュが除去
される。(例では、「memoirs」の後に後続スラ
ッシュはない。)ステップ413で、「name」の第
1文字が「/」文字(パス名がルートから開始すること
を示す)である場合、作業ディレクトリがルートにセッ
トされる。その他の場合は、作業ディレクトリはカレン
トディレクトリにセットされる。ステップ415で、作
業ディレクトリがディレクトリであるかどうかが判定さ
れる。ディレクトリでない場合、ステップ417で、
「ディレクトリでない」エラーがユーザに返される。作
業ディレクトリがディレクトリである場合、ステップ4
19で、先頭ファイル名成分(すなわち、例では「ho
me」)がパス名から取り出される。
【0057】ステップ421で、取り出されたファイル
名成分「home」が「.」と比較される。等価である
場合、ステップ423で、システムは現在の作業ディレ
クトリを参照し、制御はステップ415に戻る。ファイ
ル名成分が「.」でない場合、ステップ425で、ファ
イル名が「..」と比較される。「..」と等価である
場合、ステップ427で、現在の作業ディレクトリの親
が参照され、制御はステップ415に戻る。「..」と
等価でない場合、ステップ428が、図5に示されるよ
うに、取り出されたファイル名「home」に対して実
行される。これは、本発明のファイルシステム固有の参
照機能である。
名成分「home」が「.」と比較される。等価である
場合、ステップ423で、システムは現在の作業ディレ
クトリを参照し、制御はステップ415に戻る。ファイ
ル名成分が「.」でない場合、ステップ425で、ファ
イル名が「..」と比較される。「..」と等価である
場合、ステップ427で、現在の作業ディレクトリの親
が参照され、制御はステップ415に戻る。「..」と
等価でない場合、ステップ428が、図5に示されるよ
うに、取り出されたファイル名「home」に対して実
行される。これは、本発明のファイルシステム固有の参
照機能である。
【0058】次に、図5の各ステップがファイル名「h
ome」に対して実行された後、ファイル「home」
のファイルオブジェクトにアクセスするvノード参照と
ともに、ステップ429に戻る。vノード参照が発見さ
れなかった場合、ステップ431でエラーがユーザに返
される。発見された場合、ステップ433で、システム
は、そのvノード参照が、記号リンクであるデータオブ
ジェクトを参照しているかどうかをチェックする。
ome」に対して実行された後、ファイル「home」
のファイルオブジェクトにアクセスするvノード参照と
ともに、ステップ429に戻る。vノード参照が発見さ
れなかった場合、ステップ431でエラーがユーザに返
される。発見された場合、ステップ433で、システム
は、そのvノード参照が、記号リンクであるデータオブ
ジェクトを参照しているかどうかをチェックする。
【0059】参照している場合、ステップ435で、リ
ンクの内容が残りのパス名の前に置かれる。参照してい
ない場合、ステップ437で、システムは、パス名の中
にさらにファイル名成分があるかどうか判定する。ファ
イル名成分がない場合、ステップ439で、データオブ
ジェクトへのvノード参照とともに制御は復帰する。さ
らにファイル名成分が存在する場合、さらに処理するた
めに制御はステップ415に戻る。
ンクの内容が残りのパス名の前に置かれる。参照してい
ない場合、ステップ437で、システムは、パス名の中
にさらにファイル名成分があるかどうか判定する。ファ
イル名成分がない場合、ステップ439で、データオブ
ジェクトへのvノード参照とともに制御は復帰する。さ
らにファイル名成分が存在する場合、さらに処理するた
めに制御はステップ415に戻る。
【0060】図5を参照して、本発明の実施例を、ファ
イルシステム固有の参照機能として説明する。ここで
は、パス名の例「/home/jqp/memoir
s」のファイル名「home」の処理について説明す
る。ステップ501で、カレントディレクトリにおける
要求者の実行許可が標準的方法でチェックされる。許可
が存在しない場合、ステップ502で、アクセスエラー
メッセージがユーザに返される。
イルシステム固有の参照機能として説明する。ここで
は、パス名の例「/home/jqp/memoir
s」のファイル名「home」の処理について説明す
る。ステップ501で、カレントディレクトリにおける
要求者の実行許可が標準的方法でチェックされる。許可
が存在しない場合、ステップ502で、アクセスエラー
メッセージがユーザに返される。
【0061】許可が存在する場合、ステップ509で、
ファイル名「home」が処理され、このファイル名が
作業ディレクトリ内に存在するかどうかが判定される。
存在する場合、ステップ511で、ファイル名は通常の
基準を使用して探索され、ステップ513で、発見され
たファイルオブジェクトへの参照とともに、成功標識が
返される。
ファイル名「home」が処理され、このファイル名が
作業ディレクトリ内に存在するかどうかが判定される。
存在する場合、ステップ511で、ファイル名は通常の
基準を使用して探索され、ステップ513で、発見され
たファイルオブジェクトへの参照とともに、成功標識が
返される。
【0062】従って、今の例のパス名「/home/j
qp/memoirs」では、ファイル名「home」
は、ステップ501、509、511、513を介し、
ステップ429、433および437によって処理され
る。続いて、ステップ415、419、421、425
および427でファイル名「jqp」が処理される。フ
ァイル名「jqp」は、「home」と同様に、すなわ
ち、ステップ501、509、511、513によっ
て、続いてステップ429、433および437によっ
て処理される。ファイル名「home」および「jq
p」を処理した後、ファイル名「memoirs」が同
様に処理される。
qp/memoirs」では、ファイル名「home」
は、ステップ501、509、511、513を介し、
ステップ429、433および437によって処理され
る。続いて、ステップ415、419、421、425
および427でファイル名「jqp」が処理される。フ
ァイル名「jqp」は、「home」と同様に、すなわ
ち、ステップ501、509、511、513によっ
て、続いてステップ429、433および437によっ
て処理される。ファイル名「home」および「jq
p」を処理した後、ファイル名「memoirs」が同
様に処理される。
【0063】ステップ509に戻り、ユーザが、非従来
型ファイル名を含む全パス名を入力したため、ファイル
名が通常の方法で発見されなかったと仮定する。非従来
型ファイル名は、非ファイル名部分文字列ベースの検索
基準を含むことに注意する。ステップ509〜541
で、プログラムは、非ファイル名ベース検索基準を使用
したデータオブジェクトを探索することを試みる。
型ファイル名を含む全パス名を入力したため、ファイル
名が通常の方法で発見されなかったと仮定する。非従来
型ファイル名は、非ファイル名部分文字列ベースの検索
基準を含むことに注意する。ステップ509〜541
で、プログラムは、非ファイル名ベース検索基準を使用
したデータオブジェクトを探索することを試みる。
【0064】ステップ523で、プログラムは、全ファ
イル名が所定の構文の群のうちの1つに一致するかどう
かをチェックする(ステップ523、529および53
5)。従って、ステップ523では、非従来型ファイル
名は構文1(ino=X,gen=Y)に対してチェッ
クされる。ファイル名が構文1フォーマットを使用して
いない場合、処理はステップ529に進む。しかし、一
致が発見された場合は、ステップ525で、構文1基準
がディレクトリ参照の実行に使用される。
イル名が所定の構文の群のうちの1つに一致するかどう
かをチェックする(ステップ523、529および53
5)。従って、ステップ523では、非従来型ファイル
名は構文1(ino=X,gen=Y)に対してチェッ
クされる。ファイル名が構文1フォーマットを使用して
いない場合、処理はステップ529に進む。しかし、一
致が発見された場合は、ステップ525で、構文1基準
がディレクトリ参照の実行に使用される。
【0065】図6を参照して、525で実行される一般
的な参照ステップをさらに詳細に説明する。ユーザが、
「ino=X,gen=Y」である構文1フォーマット
を有するファイル名を使用して、ファイルへのアクセス
を要求していると仮定する。例えば、iノード番号(i
no)はメールボックス番号とみなすことができ、世代
番号(gen)はそのメールボックス番号に割り当てら
れた当事者とみなすことができる。従って、メールボッ
クスが再割当されると、世代番号は変化するがメールボ
ックス番号(すなわちiノード番号)は変化しない。
的な参照ステップをさらに詳細に説明する。ユーザが、
「ino=X,gen=Y」である構文1フォーマット
を有するファイル名を使用して、ファイルへのアクセス
を要求していると仮定する。例えば、iノード番号(i
no)はメールボックス番号とみなすことができ、世代
番号(gen)はそのメールボックス番号に割り当てら
れた当事者とみなすことができる。従って、メールボッ
クスが再割当されると、世代番号は変化するがメールボ
ックス番号(すなわちiノード番号)は変化しない。
【0066】構文「ino=X,gen=Y」は、0ま
たは1個のデータオブジェクト(例えば、ファイルまた
はディレクトリ)を識別するので、単一オブジェクト構
文という。他の単一オブジェクト構文は、例えば、社会
保障番号である。
たは1個のデータオブジェクト(例えば、ファイルまた
はディレクトリ)を識別するので、単一オブジェクト構
文という。他の単一オブジェクト構文は、例えば、社会
保障番号である。
【0067】ステップ601で、システムは、ファイル
名(ino=X,gen=Y)からiノード番号(in
o)の値Xを解析する。ステップ602で、システム
は、ファイル名から世代(gen)番号Yを解析する。
ステップ604で、システムは、iノードリスト223
にアクセスし、iノード番号(ino)Xで識別される
ファイルを取り出す。iノード番号の値Xは、それに付
随するvノードを参照することに注意する。ステップ6
06で、システムは、妥当なデータオブジェクトが取り
出されたことを判定する。そうでない場合、ステップ6
08で、不一致すなわち誤った条件が図5のステップ5
27に返される。
名(ino=X,gen=Y)からiノード番号(in
o)の値Xを解析する。ステップ602で、システム
は、ファイル名から世代(gen)番号Yを解析する。
ステップ604で、システムは、iノードリスト223
にアクセスし、iノード番号(ino)Xで識別される
ファイルを取り出す。iノード番号の値Xは、それに付
随するvノードを参照することに注意する。ステップ6
06で、システムは、妥当なデータオブジェクトが取り
出されたことを判定する。そうでない場合、ステップ6
08で、不一致すなわち誤った条件が図5のステップ5
27に返される。
【0068】標識値Xを有するiノードがディスク18
0上に発見された場合、ステップ606の探索すなわち
取り出し動作は成功である。ステップ610で、システ
ムは、そのiノードの世代(gen)番号がYであるか
どうかをチェックする。以前に注意したように、世代番
号は、所望のデータオブジェクトの特定のバージョンを
一意的に識別するために使用することができる任意の番
号である。取り出されたiノードの世代番号がYと等し
くない場合、制御は、以前に説明したステップ608に
戻る。
0上に発見された場合、ステップ606の探索すなわち
取り出し動作は成功である。ステップ610で、システ
ムは、そのiノードの世代(gen)番号がYであるか
どうかをチェックする。以前に注意したように、世代番
号は、所望のデータオブジェクトの特定のバージョンを
一意的に識別するために使用することができる任意の番
号である。取り出されたiノードの世代番号がYと等し
くない場合、制御は、以前に説明したステップ608に
戻る。
【0069】ステップ610の結果、世代番号が一致し
た場合、ステップ612で、「はい」すなわち「一致発
見」の応答が図5のステップ527に返される。これは
単一オブジェクト検索のみであるため、ディスク180
上の1個のデータオブジェクトによって検索基準ino
=X,gen=Yが満たされる。後で説明するように、
識別されるデータオブジェクト(物理アドレスまたはお
そらくino=X,gen=Y自体)を一意的に識別す
るキーがユーザのディスプレイ上に返される。
た場合、ステップ612で、「はい」すなわち「一致発
見」の応答が図5のステップ527に返される。これは
単一オブジェクト検索のみであるため、ディスク180
上の1個のデータオブジェクトによって検索基準ino
=X,gen=Yが満たされる。後で説明するように、
識別されるデータオブジェクト(物理アドレスまたはお
そらくino=X,gen=Y自体)を一意的に識別す
るキーがユーザのディスプレイ上に返される。
【0070】図5に戻って、ステップ527で、ステッ
プ525の参照基準を使用して一致が発見された場合、
処理は前記のステップ429、433および437と続
く。ステップ527で一致が発見されない場合、ステッ
プ529で、ベース名が構文2基準に対してチェックさ
れる。ステップ529で構文2一致が存在した場合、ス
テップ531で、基準2がディレクトリをチェックする
ために使用される。
プ525の参照基準を使用して一致が発見された場合、
処理は前記のステップ429、433および437と続
く。ステップ527で一致が発見されない場合、ステッ
プ529で、ベース名が構文2基準に対してチェックさ
れる。ステップ529で構文2一致が存在した場合、ス
テップ531で、基準2がディレクトリをチェックする
ために使用される。
【0071】図7を参照して、ステップ531で実行さ
れる構文2検索基準の例示として役立つ一般的な多オブ
ジェクト検索基準(例えば、組織名=orgname)
を説明する。
れる構文2検索基準の例示として役立つ一般的な多オブ
ジェクト検索基準(例えば、組織名=orgname)
を説明する。
【0072】ステップ702で、要求された組織名「o
rgname」を抽出するためにファイル名が解析され
る。ステップ704で、「orgname」が妥当なデ
ータオブジェクトグルーピングかどうかを判定するため
にデータベースすなわち記憶項目がアクセスされる。妥
当でない場合、ステップ706で、「不一致」返値が
(図5のステップ535に)返される。
rgname」を抽出するためにファイル名が解析され
る。ステップ704で、「orgname」が妥当なデ
ータオブジェクトグルーピングかどうかを判定するため
にデータベースすなわち記憶項目がアクセスされる。妥
当でない場合、ステップ706で、「不一致」返値が
(図5のステップ535に)返される。
【0073】「orgname」データオブジェクトグ
ルーピングが妥当である場合、ステップ708で、グル
ーピング「orgname」の下にすべてのデータオブ
ジェクトを格納する仮想ディレクトリのためにvノード
が割り当てられる。ステップ712で、「orgnam
e」基準に一致するすべてのデータオブジェクト(すな
わちファイル)が探索される。ステップ714で、デー
タバッファが割り当てられる。ステップ716で、名前
およびキー値(iノード番号、ino)がディレクトリ
フォーマット(図8)でデータバッファに書き込まれ
る。ステップ718で、データバッファが仮想ディレク
トリvノードにリンクされる。ステップ720で、一致
が成功したことの指示が図5のステップ513に返され
る。
ルーピングが妥当である場合、ステップ708で、グル
ーピング「orgname」の下にすべてのデータオブ
ジェクトを格納する仮想ディレクトリのためにvノード
が割り当てられる。ステップ712で、「orgnam
e」基準に一致するすべてのデータオブジェクト(すな
わちファイル)が探索される。ステップ714で、デー
タバッファが割り当てられる。ステップ716で、名前
およびキー値(iノード番号、ino)がディレクトリ
フォーマット(図8)でデータバッファに書き込まれ
る。ステップ718で、データバッファが仮想ディレク
トリvノードにリンクされる。ステップ720で、一致
が成功したことの指示が図5のステップ513に返され
る。
【0074】図5に戻って、図7の例で実行されたステ
ップ531および533で一致が発見されない場合、ス
テップ535で、他の構文一致ステップが構文Nまで継
続する。ステップ533でディレクトリ一致が発見され
た場合、ステップ511などで、成功が適当なvノード
識別子とともに返される。基準2一致が発見されない場
合、ステップ539で、ステップ535が続く。ステッ
プ535は、ファイル名が構文Nに適合するかどうかを
チェックする。適合する場合、ステップ537および5
39が前記のステップ531、533と同様に実行さ
れ、適合しない場合、ステップ541が実行される。ス
テップ541は、ユーザが与えたファイル名はディレク
トリ内に発見できないことを示す「エントリ無し」エラ
ーをユーザに返す。
ップ531および533で一致が発見されない場合、ス
テップ535で、他の構文一致ステップが構文Nまで継
続する。ステップ533でディレクトリ一致が発見され
た場合、ステップ511などで、成功が適当なvノード
識別子とともに返される。基準2一致が発見されない場
合、ステップ539で、ステップ535が続く。ステッ
プ535は、ファイル名が構文Nに適合するかどうかを
チェックする。適合する場合、ステップ537および5
39が前記のステップ531、533と同様に実行さ
れ、適合しない場合、ステップ541が実行される。ス
テップ541は、ユーザが与えたファイル名はディレク
トリ内に発見できないことを示す「エントリ無し」エラ
ーをユーザに返す。
【0075】さまざまな従来型ファイル名検索および非
従来型ファイル名検索を実行する上記の順序は、アプリ
ケーションの個々の必要に応じて逆にしたり変更したり
することが可能である。
従来型ファイル名検索を実行する上記の順序は、アプリ
ケーションの個々の必要に応じて逆にしたり変更したり
することが可能である。
【0076】図3を参照して、構文グループ332およ
び表音構文一致333で示される可能な非従来型ファイ
ル名のうちのいくつかを説明する。例えば、ある構文型
はファイル(すなわち、図3のiノードリスト332の
項目)を識別するためにiノード番号「ino」を使用
する。他の構文型は、「ino」とともに、iノードが
アクセスされるごとにインクリメントされる連続番号で
ある世代番号「gen」を使用する。
び表音構文一致333で示される可能な非従来型ファイ
ル名のうちのいくつかを説明する。例えば、ある構文型
はファイル(すなわち、図3のiノードリスト332の
項目)を識別するためにiノード番号「ino」を使用
する。他の構文型は、「ino」とともに、iノードが
アクセスされるごとにインクリメントされる連続番号で
ある世代番号「gen」を使用する。
【0077】付加的な「gen」番号を使用することに
より補助的チェックができ、有用である。なぜならば、
物理ファイルシステムにおけるiノードスロットは再使
用されるため、現在iノードスロット「Y」にあるファ
イルが以前のある時にそのスロットにあったものと同一
のファイルであることを確実にすることがしばしば重要
であるからである。世代番号は、iノードスロットが解
放されるごとにインクリメントされる連続番号である。
従って、iノード番号および世代番号の両方が同一であ
れば、内容や属性はもちろん変更されているかもしれな
いが、これは同一のファイルオブジェクトであることに
なる。
より補助的チェックができ、有用である。なぜならば、
物理ファイルシステムにおけるiノードスロットは再使
用されるため、現在iノードスロット「Y」にあるファ
イルが以前のある時にそのスロットにあったものと同一
のファイルであることを確実にすることがしばしば重要
であるからである。世代番号は、iノードスロットが解
放されるごとにインクリメントされる連続番号である。
従って、iノード番号および世代番号の両方が同一であ
れば、内容や属性はもちろん変更されているかもしれな
いが、これは同一のファイルオブジェクトであることに
なる。
【0078】このファイル命名方式により、ファイル共
有機構、例えば、リモートファイルシェアリング(RF
S)またはネットワークファイルシェアリング(NF
S)機構を使用してデータストリームに遠隔的にアクセ
スすることが可能となる。さらに、この方式は、ファイ
ル名を使用してファイルにアクセスすることができる任
意の将来のファイル共有機構とともに使用可能である。
有機構、例えば、リモートファイルシェアリング(RF
S)またはネットワークファイルシェアリング(NF
S)機構を使用してデータストリームに遠隔的にアクセ
スすることが可能となる。さらに、この方式は、ファイ
ル名を使用してファイルにアクセスすることができる任
意の将来のファイル共有機構とともに使用可能である。
【0079】本発明の単一オブジェクトファイル命名方
式の他の応用は、ファイルオブジェクトへの高速アクセ
スである。例えば、図3の315を参照すると、mem
oirsのファイル「childhood」を取得しよ
うとする場合、従来のファイルアクセス技術を使用する
と、パス名「/name/jqp/memoirs/c
hildhood」が必要である。本発明を使用すれ
ば、この「childhood」ファイルは、物理位置
に直接アクセスするパス名、例えば、「/ino=2
9,gen=8」を使用してアクセスされる。ファイル
システムの設定によっては、「/name/ino=2
9,gen=8」のように、ファイル名がパス名に含め
られる必要がある。
式の他の応用は、ファイルオブジェクトへの高速アクセ
スである。例えば、図3の315を参照すると、mem
oirsのファイル「childhood」を取得しよ
うとする場合、従来のファイルアクセス技術を使用する
と、パス名「/name/jqp/memoirs/c
hildhood」が必要である。本発明を使用すれ
ば、この「childhood」ファイルは、物理位置
に直接アクセスするパス名、例えば、「/ino=2
9,gen=8」を使用してアクセスされる。ファイル
システムの設定によっては、「/name/ino=2
9,gen=8」のように、ファイル名がパス名に含め
られる必要がある。
【0080】本発明は、図1のクライアント/サーバネ
ットワークにおける使用のために説明したが、本発明
は、クライアントコンピュータ上で直接実現することも
可能である。さらに、本発明は、従来の物理ファイルシ
ステム(例えば、UNIXファイルシステムUFS)、
データベース管理システム(例えば、Informi
x)、または、データが絶対アドレスを使用してアクセ
ス可能なその他のデータ記憶機構の上で利用可能であ
る。(InformixはInformixソフトウェ
ア社の登録商標である。)
ットワークにおける使用のために説明したが、本発明
は、クライアントコンピュータ上で直接実現することも
可能である。さらに、本発明は、従来の物理ファイルシ
ステム(例えば、UNIXファイルシステムUFS)、
データベース管理システム(例えば、Informi
x)、または、データが絶対アドレスを使用してアクセ
ス可能なその他のデータ記憶機構の上で利用可能であ
る。(InformixはInformixソフトウェ
ア社の登録商標である。)
【0081】
【発明の効果】以上述べたごとく、本発明によれば、コ
ンピュータベースのファイル装置は、ファイル名部分文
字列一致以外の検索基準を使用したファイルアクセスシ
ステムコールを使用して、以前に格納されたデータオブ
ジェクトの検索要求を、実時間でかつユーザ選択可能な
方法で実現する。本発明の非ファイル名部分文字列ベー
スの検索技術を使用すれば、ユーザは、キー参照、関係
参照、表音参照、および演算子探索参照をして、装置の
任意のデータベースまたはファイルシステムに格納され
たデータオブジェクトを探索することができる。ユーザ
としては、格納されたデータオブジェクトへのアクセス
を要求する人間、プログラムまたは装置が可能である。
1つの機能によれば、探索される各データオブジェクト
に付随するキーがユーザに返される。他の機能によれ
ば、多データオブジェクトが仮想ディレクトリ内に編成
され、ユーザによる以後のデータオブジェクトアクセス
を容易にする。
ンピュータベースのファイル装置は、ファイル名部分文
字列一致以外の検索基準を使用したファイルアクセスシ
ステムコールを使用して、以前に格納されたデータオブ
ジェクトの検索要求を、実時間でかつユーザ選択可能な
方法で実現する。本発明の非ファイル名部分文字列ベー
スの検索技術を使用すれば、ユーザは、キー参照、関係
参照、表音参照、および演算子探索参照をして、装置の
任意のデータベースまたはファイルシステムに格納され
たデータオブジェクトを探索することができる。ユーザ
としては、格納されたデータオブジェクトへのアクセス
を要求する人間、プログラムまたは装置が可能である。
1つの機能によれば、探索される各データオブジェクト
に付随するキーがユーザに返される。他の機能によれ
ば、多データオブジェクトが仮想ディレクトリ内に編成
され、ユーザによる以後のデータオブジェクトアクセス
を容易にする。
【図1】本発明が利用されるサーバコンピュータを含む
クライアント/サーバネットワークのブロック図であ
る。
クライアント/サーバネットワークのブロック図であ
る。
【図2】ファイルおよびファイルシステムの論理および
物理構造の図である。
物理構造の図である。
【図3】本発明の説明に有用な用語を定義する図であ
る。
る。
【図4】本発明のさまざまな動作機能を説明する流れ図
である。
である。
【図5】本発明のさまざまな動作機能を説明する流れ図
である。
である。
【図6】単一オブジェクト参照基準を実現する流れ図で
ある。
ある。
【図7】多オブジェクト参照基準を実現する流れ図であ
る。
る。
【図8】ディレクトリの論理構造の図である。
100 サーバコンピュータ 102 クライアントコンピュータ 103 クライアントコンピュータ 104 ローカルエリアネットワーク(LAN) 105 大容量ハードディスク 110 クライアントプログラム 112 リダイレクタ 113 ネットワークソフトウェア 120 ユーザレベル 121 ユーザプログラム 122 ライブラリ 123 サーバプログラム 130 カーネルレベル 131 システムコールインタフェース 132 ファイルシステムドライバ 133 プロセス制御サブシステム 134 デバイスドライバ 136 バッファ 137 ブロックI/Oデバイスドライバ 138 キャラクタI/Oデバイスドライバ 140 ハードウェアレベル 141 ブロックI/Oデバイス 142 キャラクタI/Oデバイス 180 ハードディスク 200 iノード 220 物理ファイルシステム 221 ブートブロック 222 スーパーブロック 223 iノードリスト 224 データブロック 310 パス名
Claims (33)
- 【請求項1】 それぞれがファイル名によって識別され
る格納された複数のデータファイルのうちの所望のデー
タファイルにアクセスするためのコンピュータベースの
ファイル装置において、 標準的なオペレーティングシステムコールの一部として
文字列からなるファイル識別子を受信する手段と、 一つ以上の所望のデータファイルを検索する検索手段と
からなり、 前記ファイル識別子は、前記所望のデータファイルに対
する前記オペレーティングシステムの階層的パス名とは
異なり、 前記ファイル識別子は、それぞれ検索基準型および検索
基準値の対を含む一つ以上の検索基準型/値ペアを含
み、 前記検索手段は、前記データファイルをあらかじめソー
トすることを必要とせずに、前記検索基準型/値ペアの
うちの少なくとも一つを前記データファイルの特性と直
接比較することにより検索を行うことを特徴とするファ
イル装置。 - 【請求項2】 検索されたデータファイルの位置を識別
するために前記ファイル装置によって使用されるキー値
と、検索されたデータファイルのファイル名とをユーザ
に返す手段をさらに有することを特徴とする請求項1の
装置。 - 【請求項3】 前記ファイル名および前記キー値は、デ
ィレクトリエントリフォーマットでユーザに返されるこ
とを特徴とする請求項2の装置。 - 【請求項4】 前記キー値はiノードインデックス値で
あることを特徴とする請求項2の装置。 - 【請求項5】 前記キー値は、iノードインデックス値
および世代番号を含むことを特徴とする請求項2の装
置。 - 【請求項6】 少なくとも一つの検索基準型/値ペアは
ファイル名の表音式綴りであることを特徴とする請求項
1の装置。 - 【請求項7】 少なくとも一つの検索基準型/値ペアは
複数のデータファイルを識別することを特徴とする請求
項1の装置。 - 【請求項8】 少なくとも一つの検索基準型/値ペアは
データファイルの内容と比較するためのデータ部分文字
列であることを特徴とする請求項1の装置。 - 【請求項9】 少なくとも一つの検索基準型/値ペア
は、一つ以上の所望のデータファイルの構造体に記憶さ
れているファイル属性値であることを特徴とする請求項
1の装置。 - 【請求項10】 前記ファイル識別子は、ベース名セグ
メントおよび一つ以上の付加セグメントを有し、 前記検索手段は、少なくとも一つの付加セグメントを検
索基準型として使用し、ベース名セグメントを検索基準
値として使用して、前記一つ以上の所望のデータファイ
ルを検索することを特徴とする請求項1の装置。 - 【請求項11】 前記一つ以上の付加セグメントは前記
ベース名セグメントの後置子であることを特徴とする請
求項10の装置。 - 【請求項12】 前記一つ以上の付加セグメントは前記
ベース名セグメントの前置子であることを特徴とする請
求項10の装置。 - 【請求項13】 それぞれがファイル名によって識別さ
れる複数のデータファイルを格納するサーバ装置と、当
該サーバ装置と通信する一つ以上のクライアント装置と
を有するクライアント/サーバ・ネットワークにおい
て、 各クライアント装置は、前記サーバ装置への標準的なオ
ペレーティングシステムコールの一部として文字列から
なるファイル識別子を生成し送信する手段を有し、前記
ファイル識別子は、前記所望のデータファイルに対する
前記オペレーティングシステムの階層的パス名とは異な
り、前記ファイル識別子は、それぞれ検索基準型および
検索基準値の対を含む一つ以上の検索基準型/値ペアを
含み、各検索基準型/値ペアは、前記複数のデータファ
イルの特性と直接比較され、 前記サーバ装置は、前記検索基準型/値ペアのうちの少
なくとも一つを使用して前記複数のデータファイルのう
ちの任意のデータファイルに直接アクセスするコンピュ
ータベースのファイル装置を有し、当該アクセスは、前
記データファイルをあらかじめソートすることを必要と
せずに実行されることを特徴とするクライアント/サー
バ・ネットワーク。 - 【請求項14】 それぞれがファイル名によって識別さ
れる格納された複数のデータファイルのうちの一つの所
望のデータファイルにアクセスするためのコンピュータ
ベースのファイル装置において、 標準的なオペレーティングシステムコールの一部として
文字列からなるファイル識別子を受信する手段と、 一つ以上の所望のデータファイルを検索する検索手段と
からなり、 前記ファイル識別子は、前記所望のデータファイルに対
する前記オペレーティングシステムの階層的パス名とは
異なり、 前記ファイル装置は、前記ファイル識別子を分解して少
なくとも一つの検索基準型/値ペアを取得する手段をさ
らに有し、 前記検索手段は、前記データファイルをあらかじめソー
トすることを必要とせずに、前記検索基準型/値ペアの
うちの少なくとも一つを前記データファイルの特性と直
接比較することにより検索を行うことを特徴とするファ
イル装置。 - 【請求項15】 前記検索基準型/値ペアはiノード値
であることを特徴とする請求項14の装置。 - 【請求項16】 前記検索手段は、iノード値ととも
に、当該iノード値の世代番号を含む2個の検索基準型
/値ペアを使用することを特徴とする請求項14の装
置。 - 【請求項17】 前記検索基準型/値ペアはマッキント
ッシュシステムの「fileid」ファイル識別子であ
ることを特徴とする請求項14の装置。 - 【請求項18】 前記検索基準型/値ペアはマッキント
ッシュシステムの「dirid」ディレクトリ識別子で
あることを特徴とする請求項14の装置。 - 【請求項19】 それぞれがファイル名によって識別さ
れる複数のデータファイルを格納するサーバ装置と、当
該サーバ装置と通信する一つ以上のクライアント装置と
を有するクライアント/サーバ・ネットワークにおい
て、 各クライアント装置は、前記サーバ装置への標準的なオ
ペレーティングシステムコールの一部として文字列から
なるファイル識別子を生成し送信する手段を有し、前記
ファイル識別子は、前記所望のデータファイルに対する
前記オペレーティングシステムの階層的パス名とは異な
り、前記ファイル識別子は、それぞれ検索基準型および
検索基準値の対を含む一つ以上の検索基準型/値ペアを
含み、 前記サーバ装置は、 前記ファイル識別子を分解して少なくとも一つの検索基
準型/値ペアを取得する手段と、 一つ以上の所望のデータファイルを検索する検索手段と
を有し、 前記ファイル識別子は、前記所望のデータファイルに対
する前記オペレーティングシステムの階層的パス名とは
異なり、 前記検索手段は、前記データファイルをあらかじめソー
トすることを必要とせずに、前記検索基準型/値ペアの
うちの少なくとも一つを前記データファイルの特性と直
接比較することにより検索を行うことを特徴とするクラ
イアント/サーバ・ネットワーク。 - 【請求項20】 コンピュータベースのファイルシステ
ムにおいて、それぞれがファイル名によって識別され
る、前記システムのコンピュータによりアクセス可能な
記憶装置に格納された複数のデータファイルのうちの所
望のデータファイルにアクセスする方法において、 標準的なオペレーティングシステムコールの一部として
文字列からなるファイル識別子を受信するステップと、 一つ以上の所望のデータファイルを検索する検索ステッ
プとからなり、 前記ファイル識別子は、前記所望のデータファイルに対
する前記オペレーティングシステムの階層的パス名とは
異なり、 前記ファイル識別子は、それぞれ検索基準型および検索
基準値の対を含む一つ以上の検索基準型/値ペアを含
み、 前記検索ステップは、前記データファイルをあらかじめ
ソートすることを必要とせずに、前記検索基準型/値ペ
アのうちの少なくとも一つを前記データファイルの特性
と直接比較することにより検索を行うことを特徴とす
る、データファイルにアクセスする方法。 - 【請求項21】 検索されたデータファイルの位置を識
別するキー値を前記記憶装置から取得してユーザに返す
ステップをさらに有することを特徴とする請求項20の
方法。 - 【請求項22】 前記返すステップはさらに、前記キー
値に対応するファイル名を前記記憶装置から取得して返
すことを特徴とする請求項21の方法。 - 【請求項23】 前記キー値はiノードインデックス値
であることを特徴とする請求項21の方法。 - 【請求項24】 前記キー値は、iノードインデックス
値および世代番号を含むことを特徴とする請求項21の
方法。 - 【請求項25】 少なくとも一つの検索基準型/値ペア
はファイル名の表音式綴りであることを特徴とする請求
項20の方法。 - 【請求項26】 少なくとも一つの検索基準型/値ペア
は複数のデータファイル間に存在する関係特性であるこ
とを特徴とする請求項20の方法。 - 【請求項27】 少なくとも一つの検索基準型/値ペア
はデータファイルの内容と比較するためのデータ部分文
字列であることを特徴とする請求項1の装置。 - 【請求項28】 少なくとも一つの検索基準型/値ペア
は前記所望のデータファイルのファイル特性であること
を特徴とする請求項20の方法。 - 【請求項29】 コンピュータベースのファイルシステ
ムにおいて、それぞれがファイル名によって識別され
る、前記システムのコンピュータによりアクセス可能な
記憶装置に格納された複数のデータファイルのうちの所
望のデータファイルにアクセスする方法において、 標準的なオペレーティングシステムコールの一部として
文字列からなるファイル識別子を受信するステップと、 一つ以上の所望のデータファイルを検索する検索ステッ
プとからなり、 前記ファイル識別子は、前記所望のデータファイルに対
する前記オペレーティングシステムの階層的パス名とは
異なり、 前記方法は、前記ファイル識別子を分解して少なくとも
一つの検索基準型/値ペアを取得するステップをさらに
有し、 前記検索ステップは、前記データファイルをあらかじめ
ソートすることを必要とせずに、前記検索基準型/値ペ
アのうちの少なくとも一つを前記データファイルの特性
と直接比較することにより検索を行うことを特徴とす
る、データファイルにアクセスする方法。 - 【請求項30】 前記検索基準型/値ペアはiノード値
であることを特徴とする請求項29の方法。 - 【請求項31】 前記検索ステップは、iノード値とと
もに、当該iノード値の世代番号を含む2個の検索基準
型/値ペアを使用することを特徴とする請求項29の方
法。 - 【請求項32】 前記検索基準型/値ペアはマッキント
ッシュシステムの「fileid」ファイル識別子であ
ることを特徴とする請求項29の方法。 - 【請求項33】 前記検索基準型/値ペアはマッキント
ッシュシステムの「dirid」ディレクトリ識別子で
あることを特徴とする請求項29の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US73539391A | 1991-07-24 | 1991-07-24 | |
| US735393 | 1991-07-24 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH07175704A JPH07175704A (ja) | 1995-07-14 |
| JP2708331B2 true JP2708331B2 (ja) | 1998-02-04 |
Family
ID=24955596
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4217453A Expired - Lifetime JP2708331B2 (ja) | 1991-07-24 | 1992-07-24 | ファイル装置およびデータファイルアクセス方法 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5388257A (ja) |
| EP (1) | EP0526034B1 (ja) |
| JP (1) | JP2708331B2 (ja) |
| CA (1) | CA2067633C (ja) |
| DE (1) | DE69231436T2 (ja) |
| SG (1) | SG63532A1 (ja) |
Families Citing this family (95)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5627996A (en) * | 1992-08-19 | 1997-05-06 | At&T | Method and apparatus for accessing the same computer file using different file name formats |
| US6286013B1 (en) | 1993-04-01 | 2001-09-04 | Microsoft Corporation | Method and system for providing a common name space for long and short file names in an operating system |
| EP0618540B1 (en) * | 1993-04-01 | 2001-12-12 | Microsoft Corporation | Common name space for long and short filenames |
| GB9311580D0 (en) * | 1993-06-04 | 1993-07-21 | Phonelink Data Limited | Data retrieval system |
| JPH07210475A (ja) * | 1994-01-14 | 1995-08-11 | Fujitsu Ltd | データ伝送処理方法および装置 |
| US5701463A (en) * | 1994-09-09 | 1997-12-23 | Cheyenne Advanced Technology Limited | Method of replacing the identity of a file with another as part of a file open request in a computer system |
| US5745752A (en) * | 1994-12-13 | 1998-04-28 | Microsoft Corporation | Dual namespace client having long and short filenames |
| US5677851A (en) * | 1994-12-15 | 1997-10-14 | Novell, Inc. | Method and apparatus to secure digital directory object changes |
| US5566328A (en) * | 1995-01-23 | 1996-10-15 | Tandem Computers Incorporated | Reconstructing directory pathnames from file handles in a computer system |
| JPH08314973A (ja) * | 1995-05-17 | 1996-11-29 | Fuji Xerox Co Ltd | 情報単位群操作装置 |
| JP3724847B2 (ja) | 1995-06-05 | 2005-12-07 | 株式会社日立製作所 | 構造化文書差分抽出方法および装置 |
| US7272639B1 (en) | 1995-06-07 | 2007-09-18 | Soverain Software Llc | Internet server access control and monitoring systems |
| JP3335801B2 (ja) * | 1995-07-05 | 2002-10-21 | 株式会社日立製作所 | 異種ファイルへのアクセスを可能とする情報処理システム及びその制御方法 |
| US5774670A (en) * | 1995-10-06 | 1998-06-30 | Netscape Communications Corporation | Persistent client state in a hypertext transfer protocol based client-server system |
| US6044377A (en) * | 1995-11-07 | 2000-03-28 | Sun Microsystem, Inc. | User-defined object type and method of making the object type wherein a file associated with a rule is invoked by accessing the file which generates code at run time |
| US5742817A (en) * | 1995-12-08 | 1998-04-21 | Emc Corporation | Method and apparatus for file server addressing |
| US5942002A (en) * | 1996-03-08 | 1999-08-24 | Neo-Lore | Method and apparatus for generating a transform |
| US5742611A (en) * | 1996-03-18 | 1998-04-21 | Neo-Core, Llc | Client server network and method of operation |
| US5878410A (en) * | 1996-09-13 | 1999-03-02 | Microsoft Corporation | File system sort order indexes |
| DE19645128C2 (de) * | 1996-11-04 | 1999-02-11 | Anja David | Verfahren zum Verwalten von Dokumenten sowie Gerätetreiber zur Durchführung des Verfahrens |
| US5875444A (en) * | 1996-12-10 | 1999-02-23 | International Business Machines Corporation | Computer file system check and repair utility |
| US5937406A (en) | 1997-01-31 | 1999-08-10 | Informix Software, Inc. | File system interface to a database |
| US6718540B1 (en) | 1997-11-17 | 2004-04-06 | International Business Machines Corporation | Data processing system and method for storing data in a communication network |
| US9900305B2 (en) * | 1998-01-12 | 2018-02-20 | Soverain Ip, Llc | Internet server access control and monitoring systems |
| JPH11265338A (ja) * | 1998-03-13 | 1999-09-28 | Canon Inc | 情報処理装置、接続状態表示方法、情報処理システム及び記憶媒体 |
| US6029166A (en) * | 1998-03-31 | 2000-02-22 | Emc Corporation | System and method for generating an operating system-independent file map |
| US6219677B1 (en) * | 1998-05-01 | 2001-04-17 | Emware, Inc. | Split file system |
| US6356863B1 (en) | 1998-09-08 | 2002-03-12 | Metaphorics Llc | Virtual network file server |
| US6922708B1 (en) | 1999-02-18 | 2005-07-26 | Oracle International Corporation | File system that supports transactions |
| US6327703B1 (en) * | 1999-02-26 | 2001-12-04 | Advanced Micro Devices, Inc. | Variable symbolic links for a file in UNIX operating system |
| US7280995B1 (en) | 1999-08-05 | 2007-10-09 | Oracle International Corporation | On-the-fly format conversion |
| US7620620B1 (en) | 1999-08-05 | 2009-11-17 | Oracle International Corporation | Basing directory contents on a query that is associated with a file identifier |
| AU774090B2 (en) * | 1999-08-05 | 2004-06-17 | Oracle International Corporation | Internet file system |
| US6578054B1 (en) * | 1999-10-04 | 2003-06-10 | Microsoft Corporation | Method and system for supporting off-line mode of operation and synchronization using resource state information |
| AU7864700A (en) * | 1999-10-05 | 2001-05-10 | Ejasent Inc. | Ip virtualization |
| US6618724B1 (en) * | 2000-04-17 | 2003-09-09 | Sun Microsystems, Inc. | Human-natural string compare for filesystems |
| US7389493B1 (en) | 2000-05-12 | 2008-06-17 | Oracle International Corporation | Categories on a per instance basis |
| US7185005B1 (en) | 2000-05-12 | 2007-02-27 | Oracle International Corporation | Nested transactions in a file system |
| US7421541B2 (en) | 2000-05-12 | 2008-09-02 | Oracle International Corporation | Version management of cached permissions metadata |
| US7987217B2 (en) * | 2000-05-12 | 2011-07-26 | Oracle International Corporation | Transaction-aware caching for document metadata |
| US7725878B1 (en) | 2000-05-12 | 2010-05-25 | Oracle International Corporation | Property bundles on a per instance basis |
| US7203709B2 (en) * | 2000-05-12 | 2007-04-10 | Oracle International Corporation | Transaction-aware caching for access control metadata |
| US20010051973A1 (en) * | 2000-06-08 | 2001-12-13 | Poi Systems, Inc. | System, method and computer program product for a locator service |
| US7596784B2 (en) | 2000-09-12 | 2009-09-29 | Symantec Operating Corporation | Method system and apparatus for providing pay-per-use distributed computing resources |
| US7058648B1 (en) | 2000-12-01 | 2006-06-06 | Oracle International Corporation | Hierarchy-based secured document repository |
| EP1300757A1 (en) * | 2001-10-02 | 2003-04-09 | Sun Microsystems, Inc. | Shareable installation hierarchies |
| US6909910B2 (en) | 2002-02-01 | 2005-06-21 | Microsoft Corporation | Method and system for managing changes to a contact database |
| US20040128307A1 (en) * | 2002-12-30 | 2004-07-01 | Creativyst, Inc. | Method of storing and retrieving database records that stores multiple field values within directory entries of an underlying operating system |
| JP2004272439A (ja) * | 2003-03-06 | 2004-09-30 | Konica Minolta Holdings Inc | ディレクトリ検索方法、ディレクトリ検索装置、記憶媒体及びプログラム |
| US7877426B2 (en) * | 2003-07-17 | 2011-01-25 | International Business Machines Corporation | Performance-enhancing system and method of accessing file system objects |
| US8166101B2 (en) * | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
| US7401104B2 (en) * | 2003-08-21 | 2008-07-15 | Microsoft Corporation | Systems and methods for synchronizing computer systems through an intermediary file system share or device |
| US7590643B2 (en) | 2003-08-21 | 2009-09-15 | Microsoft Corporation | Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system |
| US8238696B2 (en) | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
| US8131739B2 (en) * | 2003-08-21 | 2012-03-06 | Microsoft Corporation | Systems and methods for interfacing application programs with an item-based storage platform |
| US8694510B2 (en) * | 2003-09-04 | 2014-04-08 | Oracle International Corporation | Indexing XML documents efficiently |
| US8229932B2 (en) | 2003-09-04 | 2012-07-24 | Oracle International Corporation | Storing XML documents efficiently in an RDBMS |
| US7644376B2 (en) * | 2003-10-23 | 2010-01-05 | Microsoft Corporation | Flexible architecture for notifying applications of state changes |
| US8156444B1 (en) | 2003-12-31 | 2012-04-10 | Google Inc. | Systems and methods for determining a user interface attribute |
| US7636710B2 (en) * | 2004-03-04 | 2009-12-22 | Symantec Operating Corporation | System and method for efficient file content searching within a file system |
| US8595214B1 (en) * | 2004-03-31 | 2013-11-26 | Google Inc. | Systems and methods for article location and retrieval |
| US7930277B2 (en) * | 2004-04-21 | 2011-04-19 | Oracle International Corporation | Cost-based optimizer for an XML data repository within a database |
| US20070208946A1 (en) * | 2004-07-06 | 2007-09-06 | Oracle International Corporation | High performance secure caching in the mid-tier |
| US7853606B1 (en) | 2004-09-14 | 2010-12-14 | Google, Inc. | Alternate methods of displaying search results |
| US8126944B2 (en) * | 2004-11-12 | 2012-02-28 | International Business Machines Corporation | Unordered/fuzzy file path |
| US7627547B2 (en) * | 2004-11-29 | 2009-12-01 | Oracle International Corporation | Processing path-based database operations |
| US7921076B2 (en) | 2004-12-15 | 2011-04-05 | Oracle International Corporation | Performing an action in response to a file system event |
| US8131766B2 (en) * | 2004-12-15 | 2012-03-06 | Oracle International Corporation | Comprehensive framework to integrate business logic into a repository |
| US7548918B2 (en) * | 2004-12-16 | 2009-06-16 | Oracle International Corporation | Techniques for maintaining consistency for different requestors of files in a database management system |
| US7716260B2 (en) | 2004-12-16 | 2010-05-11 | Oracle International Corporation | Techniques for transaction semantics for a database server performing file operations |
| US7627574B2 (en) * | 2004-12-16 | 2009-12-01 | Oracle International Corporation | Infrastructure for performing file operations by a database server |
| US7873596B2 (en) | 2006-05-23 | 2011-01-18 | Microsoft Corporation | Extending cluster allocations in an extensible file system |
| US8606830B2 (en) | 2004-12-17 | 2013-12-10 | Microsoft Corporation | Contiguous file allocation in an extensible file system |
| US8321439B2 (en) | 2004-12-17 | 2012-11-27 | Microsoft Corporation | Quick filename lookup using name hash |
| US9639554B2 (en) * | 2004-12-17 | 2017-05-02 | Microsoft Technology Licensing, Llc | Extensible file system |
| US7805422B2 (en) * | 2005-02-28 | 2010-09-28 | Microsoft Corporation | Change notification query multiplexing |
| US7765229B2 (en) * | 2005-07-12 | 2010-07-27 | Microsoft Corporation | Single view of data in a networked computer system with distributed storage |
| US8447781B2 (en) * | 2005-07-29 | 2013-05-21 | International Business Machines Corporation | Content-based file system security |
| US8073841B2 (en) * | 2005-10-07 | 2011-12-06 | Oracle International Corporation | Optimizing correlated XML extracts |
| US8356053B2 (en) * | 2005-10-20 | 2013-01-15 | Oracle International Corporation | Managing relationships between resources stored within a repository |
| US8949455B2 (en) | 2005-11-21 | 2015-02-03 | Oracle International Corporation | Path-caching mechanism to improve performance of path-related operations in a repository |
| US7610304B2 (en) * | 2005-12-05 | 2009-10-27 | Oracle International Corporation | Techniques for performing file operations involving a link at a database management system |
| US7827177B2 (en) * | 2006-10-16 | 2010-11-02 | Oracle International Corporation | Managing compound XML documents in a repository |
| US7797310B2 (en) * | 2006-10-16 | 2010-09-14 | Oracle International Corporation | Technique to estimate the cost of streaming evaluation of XPaths |
| US9183321B2 (en) * | 2006-10-16 | 2015-11-10 | Oracle International Corporation | Managing compound XML documents in a repository |
| US7958112B2 (en) * | 2008-08-08 | 2011-06-07 | Oracle International Corporation | Interleaving query transformations for XML indexes |
| US8706854B2 (en) * | 2010-06-30 | 2014-04-22 | Raytheon Company | System and method for organizing, managing and running enterprise-wide scans |
| US9135265B2 (en) * | 2010-09-09 | 2015-09-15 | Red Hat, Inc. | Asynchronous verification for extended file attributes |
| US10754825B2 (en) * | 2013-08-28 | 2020-08-25 | Red Hat, Inc. | Path resolver for client access to distributed file systems |
| US10372694B2 (en) * | 2014-10-08 | 2019-08-06 | Adobe Inc. | Structured information differentiation in naming |
| US10168947B2 (en) * | 2015-05-07 | 2019-01-01 | Vmware, Inc. | Virtual file system with vnode reconstruction capability |
| US11301422B2 (en) | 2016-02-23 | 2022-04-12 | Samsung Electronics Co., Ltd. | System and methods for providing fast cacheable access to a key-value device through a filesystem interface |
| US11030155B2 (en) | 2017-04-26 | 2021-06-08 | Samsung Electronics Co., Ltd. | Key value file system |
| US10515052B2 (en) * | 2017-07-20 | 2019-12-24 | Vmware, Inc. | File system that supports both case sensitive and case insensitive directory lookup |
| CN117331963B (zh) * | 2023-11-28 | 2024-03-08 | 恒生电子股份有限公司 | 数据访问处理方法、装置、电子设备及存储介质 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
| US4315310A (en) * | 1979-09-28 | 1982-02-09 | Intel Corporation | Input/output data processing system |
| JPS5955565A (ja) * | 1982-09-24 | 1984-03-30 | Fujitsu Ltd | マルチフア−ムウエア方式 |
| JPS6170654A (ja) * | 1984-09-14 | 1986-04-11 | Hitachi Ltd | 分散処理システムにおける資源管理方式 |
| US5051947A (en) * | 1985-12-10 | 1991-09-24 | Trw Inc. | High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream |
| US4780821A (en) * | 1986-07-29 | 1988-10-25 | International Business Machines Corp. | Method for multiple programs management within a network having a server computer and a plurality of remote computers |
| US4768150A (en) * | 1986-09-17 | 1988-08-30 | International Business Machines Corporation | Application program interface to networking functions |
| US4823306A (en) * | 1987-08-14 | 1989-04-18 | International Business Machines Corporation | Text search system |
| US5206951A (en) * | 1987-08-21 | 1993-04-27 | Wang Laboratories, Inc. | Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types |
| US5109515A (en) * | 1987-09-28 | 1992-04-28 | At&T Bell Laboratories | User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services |
| US5006992A (en) * | 1987-09-30 | 1991-04-09 | Du Pont De Nemours And Company | Process control system with reconfigurable expert rules and control modules |
| JPH01145762A (ja) * | 1987-12-01 | 1989-06-07 | Tokyo Electric Co Ltd | 電子タイプライター |
| CA1323448C (en) * | 1989-02-24 | 1993-10-19 | Terrence C. Miller | Method and apparatus for translucent file system |
| US5218696A (en) * | 1989-07-24 | 1993-06-08 | International Business Machines Corporation | Method for dynamically expanding and rapidly accessing file directories |
| US5182766A (en) * | 1990-12-19 | 1993-01-26 | At&T Bell Laboratories | Generalized telecommunications customer signaling arrangement |
| US5202828A (en) * | 1991-05-15 | 1993-04-13 | Apple Computer, Inc. | User interface system having programmable user interface elements |
-
1992
- 1992-04-30 CA CA002067633A patent/CA2067633C/en not_active Expired - Lifetime
- 1992-07-14 DE DE69231436T patent/DE69231436T2/de not_active Expired - Fee Related
- 1992-07-14 EP EP92306428A patent/EP0526034B1/en not_active Expired - Lifetime
- 1992-07-14 SG SG1995001964A patent/SG63532A1/en unknown
- 1992-07-24 JP JP4217453A patent/JP2708331B2/ja not_active Expired - Lifetime
-
1994
- 1994-05-23 US US08/247,619 patent/US5388257A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| DE69231436T2 (de) | 2001-07-26 |
| DE69231436D1 (de) | 2000-10-19 |
| EP0526034A2 (en) | 1993-02-03 |
| SG63532A1 (en) | 1999-03-30 |
| EP0526034A3 (ja) | 1994-01-19 |
| JPH07175704A (ja) | 1995-07-14 |
| US5388257A (en) | 1995-02-07 |
| CA2067633A1 (en) | 1993-01-25 |
| CA2067633C (en) | 1996-10-01 |
| EP0526034B1 (en) | 2000-09-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2708331B2 (ja) | ファイル装置およびデータファイルアクセス方法 | |
| US5412808A (en) | System for parsing extended file names in an operating system | |
| EP1145143B1 (en) | Hierarchical indexing for accessing hierarchically organized information in a relational system | |
| AU739236B2 (en) | File system interface to a database | |
| EP0770966B1 (en) | Method and apparatus for computing filenames with a high probability of uniqueness | |
| US6985914B2 (en) | Cluster meta file system of file system cells managed by respective data movers of a network file server | |
| US7831643B1 (en) | System, method and computer program product for multi-level file-sharing by concurrent users | |
| US7860907B2 (en) | Data processing | |
| JPH06161855A (ja) | ファイル装置およびファイルアクセス方法 | |
| HU219996B (hu) | Kliens számítógép, valamint eljárás annak üzemeltetésére | |
| EP1091295B1 (en) | Data management system using a plurality of data operation modules | |
| GB2439576A (en) | Storing related small data fragments in the same block | |
| JPH0358249A (ja) | フアイルのアクセス方法 | |
| GB2439577A (en) | Storing data in streams of varying size | |
| CN118427161A (zh) | 一种分布式文件系统与目录操作方法 | |
| US12189578B2 (en) | Metadata for quering file system pathnames | |
| CN120523810A (zh) | 数据管理方法、装置及可读存储介质 |