JPH07160622A - 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム - Google Patents

圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム

Info

Publication number
JPH07160622A
JPH07160622A JP6255634A JP25563494A JPH07160622A JP H07160622 A JPH07160622 A JP H07160622A JP 6255634 A JP6255634 A JP 6255634A JP 25563494 A JP25563494 A JP 25563494A JP H07160622 A JPH07160622 A JP H07160622A
Authority
JP
Japan
Prior art keywords
device driver
volume
drive
compression system
drive letter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6255634A
Other languages
English (en)
Other versions
JP3993648B2 (ja
Inventor
Benjamin W Slivka
ダブリュー スリヴカ ベンジャミン
Charles A Strouss Iii
エイ ストルース ザ サード チャールズ
Scott D Quinn
ディー クウィン スコット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JPH07160622A publication Critical patent/JPH07160622A/ja
Application granted granted Critical
Publication of JP3993648B2 publication Critical patent/JP3993648B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Abstract

(57)【要約】 【目的】 圧縮システムをオペレーティング・システム
と統合する方法を提供する。 【構成】 コンピュータ・システムは、少なくとも一つ
のメモリ装置と記憶装置を備えている。コンピュータ・
システムがサポートしない記憶装置用デバイス・ドライ
ブがユーザにより提供され、コンピュータ・システムは
記憶装置と通信可能になる。コンピュータ・システムの
初期化時に、オペレーティング/圧縮システムがメモリ
装置にロードされ、ユーザ提供のデバイス・ドライバの
ロード前に実行を開始する。この時、コンピュータ・シ
ステムに配置された圧縮ボリューム・ファイルに、ドラ
イブ文字が割り当てられる。ユーザ提供のデバイス・ド
ライバがメモリ装置にロードされたときに、ドライブ文
字が様々な記憶装置に割り当てられる。ドライブ文字の
競合を解消する方法が提供され、オペレーティング・シ
ステムのドライブ文字割当て時に発生する競合が解消さ
れる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、一般に、デバイス・
ドライバを管理するためのコンピュータによる方法およ
びコンピュータ・システムに関し、具体的には、圧縮シ
ステムをオペレーティング・システムと統合するための
コンピュータによる方法およびコンピュータ・システム
に関する。
【0002】
【従来の技術】経験則として、コンピュータ・システム
のユーザは、補助記憶スペースをいつかは使い果たして
しまう。したがって、補助記憶ボリュームの記憶容量を
増加させる新たな方法が常に望まれている。ボリューム
の記憶容量を増加させる通常の方法の一つとして、その
ボリュームから不要なデータを消去するように、オペレ
ーティング・システムにマニュアルで指示する方法が取
られる。これにより、新たなデータ用の空きスペースが
できる。この方法は、ユーザがどのデータを消去すべき
かを慌てて決定した場合に、後にその決定を後悔するこ
とがよくあるので、望ましい方法ではない。また、たま
に、ボリューム上の全データが重要な場合があり、この
場合に、消去の決定が妨げられる。
【0003】ファイル・ベースのボリュームの記憶容量
を増加させるもう一つの方法として、個々のファイルを
圧縮し、圧縮されたファイルをボリュームに記憶する方
法がある。この方法によると、ユーザがファイルを圧縮
して記憶スペースを節約しなければならず、また、ファ
イルの使用前には、ユーザがファイルを伸張しなければ
ならないことが要求される。この点が、この方法の好ま
しくない点である。
【0004】さらに、ファイル・ベースのボリュームの
記憶容量を効果的に増加させるもう一つの方法として、
ファイルを動的に圧縮し、圧縮されたファイルを記憶
し、それらが取り出されたときにこの圧縮ファイルを伸
張する方法がある。この方法を用いる圧縮システムは、
一般に、オペレーティング・システムに追加される追加
パッケージの形を採用している。これらの圧縮システム
は、一般に、割り当てられたドライブ文字をもつデバイ
ス・ドライバとしてインストールされる。圧縮システム
は、一般に、圧縮されたファイルを「圧縮ボリューム」
に記憶する。この圧縮ボリュームは、他のファイルまた
はディレクトリとともにホスト・ボリュームに記憶され
る単一のファイル(「圧縮ボリューム・ファイル」)で
ある。圧縮ボリュームは、圧縮ボリューム・ファイルを
アクセスするためのそれ自身のデバイス・ドライバをも
つ論理的なボリュームとして取り扱われる。コンピュー
タ・システムの他のボリュームのように、各圧縮ボリュ
ームおよびホスト・ボリュームには、ユニークなドライ
ブ文字(例えば、A、B、C等)が割り当てられる。し
たがって、圧縮ボリューム・ファイルが、ドライブ文字
Dを割り当てられているホスト・ボリュームに記憶さ
れ、かつ、その圧縮ボリュームに、ドライブ文字Eが割
り当てられている場合に、ドライブ文字Eの参照を行う
と、ドライブ文字Dをもつホスト・ボリューム内に記憶
されている圧縮ボリューム・ファイルに記憶されたファ
イル群へのアクセスが行われる。
【0005】図1は、従来のコンピュータ・システム10
0 を示すブロック図である。コンピュータ・システム10
0 は、読出し専用メモリ(ROM)装置101 、中央処理
装置(CPU)104 、取外し可能ボリューム・ドライブ
105 (すなわち、フロッピィ・ディスク・ドライブ)、
固定ボリューム・ドライブ106 (すなわち、ハード・デ
ィスク・ドライブ)、およびランダム・アクセス・メモ
リ(RAM)装置107を備えている。ブート・プログラ
ム102 および基本入出力システム(ROM-BIOS)103 が、
ROM装置101 に記憶されている。この図では、MS-DOS
5.0(マイクロソフト社製)のようなオペレーティング
・システム110 が、固定ボリュームに記憶されている
が、取外し可能ボリュームに記憶することもできる。
【0006】圧縮ドライバのようなデバイス・ドライバ
のインストールは、一般に、システムの初期化のときに
行われる。システムの初期化中に、オペレーティング・
システムは、標準デバイスおよびそのコンピュータ・シ
ステムの特定のハードウェア構成に特有の非標準デバイ
スの双方のデバイス・ドライバをインストールする。例
えば、標準デバイスとして、典型的には、2つのフロッ
ピィ・ディスク・ドライブと1つのハード・ディスク・
ドライブがある。これらの標準デバイス用のデバイス・
ドライバは、オペレーティング・システムとともに備え
られており、オペレーティング・システムによって自動
的にインストールされる。MS-DOSでは、これらの標準デ
バイス・ドライバは、IO.SYSドライバと呼ばれる。コン
ピュータ・システムが、CD-ROMドライブのような非標準
デバイスを有するならば、各非標準デバイス用のデバイ
ス・ドライバがコンフィグレーション・ファイルに指定
される。MS-DOSでは、“CONFIG.SYS”という名前が、こ
のファイルに付けられている。このCONFIG.SYSファイル
は、ユーザが作成可能なテキスト・ファイルであり、コ
ンピュータ・システムが初期化されるごとに実行される
コマンドを含んでいる。このコマンドは、一定のオペレ
ーションとデバイスをどのように操作するかをオペレー
ティング・システムに指示するものである。各非標準デ
バイス用に、ユーザは、デバイス・ドライバを提供し、
CONFIG.SYSファイルにこのデバイス・ドライバを指定す
る。これにより、オペレーティング・システムは、適切
なデバイス・ドライバをインストールすることができ
る。表1は、CONFIG.SYSファイルに共通に見られるコマ
ンドのサンプルを示している。
【0007】
【表1】DEVICE=RAMDRIVE.SYS DEVICE=CDROM.SYS DEVICE=SCSI.SYS FILES=40 BREAK=ON LASTDRIVE=E BUFFERS=20 SHELL=C:\DOS\COMMAND.COM /P /E:256 DEVICE=C:\WINDOWS\HIMEM.SYS STACKS=9,256
【0008】コマンド“DEVICE= ”は、これに続くファ
イル名がインストールされるべきデバイス・ドライバの
名前であることを示している。CONFIG.SYSファイルが処
理されるとき、オペレーティング・システムは、デバイ
ス・ドライバをロードし、初期化することにより、その
デバイス・ドライバをインストールする。インストール
の一部として、一または複数のドライブ文字が、デバイ
ス・ドライバに割り当てられるかもしれない。
【0009】初期化において、デバイス・ドライバは、
そのドライバによって制御されるドライブの数を指定す
る。単一のデバイス・ドライバが、複数のドライブを制
御することができる。オペレーティング・システムは、
ドライブの数を用いて、ドライブ文字を割り当てる。オ
ペレーティング・システムは、コンピュータ・システム
の現在利用できるドライブ文字の先頭のものから割り当
てていく。例えば、最後に割り当てられたドライブ文字
がEであり、インストール中のデバイス・ドライバが4
つのドライブをサポートするならば、オペレーティング
・システムは、ドライブ文字としてF、G、HおよびI
をその4つのデバイス・ドライバに割り当てる。このよ
うに、ドライブ文字の割り当ては、CONFIG.SYSファイル
のデバイス・コマンドの順番に依存する。
【0010】圧縮ボリュームを用いる典型的なコンピュ
ータ・システムは、圧縮システム・デバイス・ドライバ
を使用し、圧縮ボリューム・ファイルとのインタフェー
スを行う。例えば、ライン“device=COMPRESS.SYS ”が
CONFIG.SYSファイルにあるならば、このコマンドによ
り、COMPRESS.SYSファイルに含まれる圧縮システム・デ
バイス・ドライバがインストールされる。オペレーティ
ング・システムは、ユニークなドライブ文字をこの圧縮
ボリュームに割り当てる。
【0011】コンピュータ・プログラムが配置されたと
きに、コンピュータ・プログラムは、一般に、デバイス
には決められたドライブ文字の割り当てが予定されてい
るので、ドライブ文字の割り当ては重要となる。異なる
ドライブ文字がデバイスに割り当てられていると、プロ
グラムは正しく動作しない。このプログラムを、異なる
ドライブ文字を予定するように再構成することができる
が、再構成には、時間を要する。選択的に、ユーザが、
予定された割り当てに対応するドライブ文字をマニュア
ルで再割り当てするように、要求されるかもしれない。
【0012】
【発明が解決しようとする課題】この技術分野の専門家
ならば、圧縮システムがCONFIG.SYSファイルに指定され
たデバイス・ドライバとしてインストールされるときに
発生する問題を知るであろう。例えば、圧縮ボリューム
・デバイスが臨時に生成されると、他の非標準デバイス
・ドライバのドライブ文字の割り当てが変えられるかも
しれない。また、ユーザが、圧縮システム・デバイス・
ドライバを指定するコマンドを不注意に消去するかもし
れないし、そのコマンドのパラメータを変化させ、圧縮
ボリュームへのアクセスをできなくするかもしれない。
【0013】ユーザが、ホスト・ボリューム(例えば、
Cドライブ)のデータを圧縮するように、コンピュータ
・システムに指示したときに、問題が生じる。圧縮シス
テムは、一般に、そのボリュームに記憶されている全て
のデータを圧縮し、圧縮されたデータを圧縮ボリューム
・ファイルに格納する。続いて、オペレーティング・シ
ステムは、ドライブ文字(例えば、Dドライブ)をこの
圧縮ボリュームに割り当てる。コンピュータ・システム
上で実行されるプログラムが、ホスト・ボリュームのド
ライブ文字をもつ圧縮ファイルを参照しようとすると、
不適切なファイル参照が発生するであろう。なぜなら
ば、この圧縮ファイルは、圧縮ボリュームを介してのみ
アクセスできるからである。このため、圧縮ボリューム
のドライブ文字(D)とそのホスト・ボリュームのドラ
イブ文字(C)とは、この圧縮ボリュームがドライブ文
字Cによって識別されるように、一般に交換される。典
型的には、圧縮システムがロードされた直後に、圧縮シ
ステムは、CONFIG.SYSファイルにコマンド・ラインを置
くことにより、ドライブ文字を交換する。しかし、ユー
ザが、この交換コマンドを不注意に消去することもあ
る。
【0014】圧縮システムのインストールに伴うもう一
つの問題は、不適切なファイル参照が潜在していること
である。圧縮ボリュームがシステムの初期化のために必
要とされるファイルを含み、ある理由により、圧縮ボリ
ューム上のデータをアクセスすることができない場合
に、コンピュータ・システムは、使用できなくなる。コ
ンピュータ・システムが一時的に使用不可能になる可能
性を最小にするために、圧縮システムは、システム・フ
ァイルの複製をホスト・ボリュームと圧縮ボリュームと
に保持する。これらの複製ファイルのサイズは、数メガ
バイトになる。
【0015】複製ファイルによる記憶スペースの浪費に
加えて、複製ファイルが不適切に更新されることが多い
ので、この方法では、エラーが起こりやすくなる。すな
わち、ユーザは、一般に、ファイルの一つのバージョン
の更新は行うが、複製の更新を忘れる。図2は、圧縮ボ
リューム・ファイル112 およびそのホスト・ボリューム
114 のブロック図である。ホスト・ボリューム114 は、
任意の補助記憶装置であってもよい。圧縮ボリューム・
ファイル112 およびそのホスト・ボリューム114 には、
IO.SYSファイル、MSDOS.SYS ファイル、COMMAND.COM フ
ァイル、CONFIG.SYSファイル、AUTOEXEC.BATファイル、
圧縮ソフトウェア、CONFIG.SYSファイルの処理中にロー
ドされるデバイス・ドライバ群、およびAUTOEXEC.BATフ
ァイルの処理中に実行されるプログラム群の複製が含ま
れている。
【0016】
【課題を解決するための手段】この発明は、圧縮システ
ムをオペレーティング・システムと統合するコンピュー
タ・システムにおける方法を提供する。好ましい実施例
においては、このコンピュータ・システムは、メモリ・
デバイスおよび記憶デバイスを備えていることが好まし
い。ユーザが提供するデバイス・ドライバは非標準デバ
イス用に提供され、このデバイス・ドライバにより、コ
ンピュータ・システムは非標準デバイスと通信すること
ができる。コンピュータ・システムの初期化中に、圧縮
システムが、どの非標準デバイス・ドライバよりも優先
して、インストールされる。非標準デバイス・ドライバ
をインストールするときに、非標準デバイスに予定され
たドライブ文字が割り当てられることを確実にするため
に、先にインストールされた圧縮ボリュームに割り当て
られたドライブ文字は、再割り当てされる。また、圧縮
システムをインストールするときに、未決定搭載リスト
が、まだ搭載できないそれらの圧縮ボリュームのために
保持される。各非標準デバイス・ドライバがインストー
ルされた後に、この未決定搭載リストがチェックされ、
どの圧縮ボリュームを搭載できるかが決定される。非標
準デバイス・ドライバがインストールされるときに、ド
ライブ文字が割り当てられる。ドライブ文字が、予定さ
れるドライブ文字でないならば、ドライブ文字の割り当
てスキームが、そのドライブ文字を再割り当てするため
に提供される。
【0017】
【実施例】この発明の好ましい実施例は、圧縮システム
をオペレーティング・システムと統合するためのコンピ
ュータの方法およびコンピュータ・システムを提供す
る。好ましい実施例においては、オペレーティング・シ
ステムは、圧縮システムと通信して、非標準デバイス・
ドライバのインストールに先立ち、圧縮システム・デバ
イス・ドライバをインストールする。コンピュータ・シ
ステムの初期化中に、オペレーティング・システムは、
まず圧縮システムが、インストールするのに利用可能か
どうかを決定する。利用可能でなければ、オペレーティ
ング・システムは、標準的な初期化を続ける。一方、圧
縮システムが利用可能な場合には、オペレーティング・
システムは、圧縮システムを含むファイルをメモリにロ
ードし、圧縮システムの初期化関数を呼び出す。この初
期化関数は、圧縮システムとオペレーティング・システ
ムとの間のバージョン互換性を確実にし、どの圧縮ボリ
ュームが搭載されるべきか(ドライブ文字を割り当てら
れるべきか)を決定する。そして、初期化関数は、決定
された圧縮システム・デバイス・ドライバをインストー
ルする。初期化関数は、圧縮ボリュームとして搭載され
る圧縮ボリューム・ファイルを示す未決定搭載リストを
生成し、圧縮ボリューム用に予約されるべきドライブ文
字の個数を求める。続いて、オペレーティング・システ
ムは、ドライブ文字割り当て関数を呼び出し、可能なら
ば、圧縮ボリューム・ファイルを未決定搭載リストに搭
載する。続いて、オペレーティング・システムは、各非
標準デバイス・ドライバをインスールし、次に利用可能
なドライブ文字をその非標準デバイス・ドライバに割り
当てる。非標準デバイス・ドライバをインストールした
ときに、次に利用可能なドライブ文字が、圧縮ボリュー
ム用に予約されたドライブ文字のために、予定されたも
のと異なるかも知れない。その結果、オペレーティング
・システムは、圧縮システムのドライブ文字割り当て関
数を呼び出して、圧縮ボリューム用のドライブ文字を再
割り当てし、新しくインストールされたデバイス・ドラ
イバに予定されているドライブ文字を割り当てる。
【0018】図3は、圧縮システムの様々な構成要素を
示すブロック図である。圧縮システムは、“DBLSPACE.B
IN”301 という名前をもつファイルに記憶されているこ
とが好ましい。このDBLSPACE.BINファイルは、関数302
〜308 を含んでいる。これらの関数は、オペレーティン
グ・システムによって呼び出され、圧縮システムのイン
ストールを行う。関数FirstTime 302 は、圧縮システム
の初期化関数である。関数TryToSwap 303 は、圧縮シス
テムのドライブ文字割り当て関数である。関数304 〜30
8 については、後に詳述する。圧縮/伸張エンジン309
は、圧縮アルゴリズムを実行するコードを含んでいる。
ファイル・システム310 は、圧縮ボリューム内のファイ
ルを管理するコードを含んでいる。この圧縮システム
は、ファイル名“DBLSPACE.INI”のファイルに記憶され
ている圧縮ボリューム構成データをアクセスする。この
DBLSPACE.INIファイルは、以下の構文をもつ構成情報を
含んでいる。
【0019】 ・ ・ ・ FirstDrive=<DL1> LastDrive=<DL2> ActivateDrive=<DL3,CVF> ActivateDrive=<DL4,CVF> ・ ・ ・
【0020】圧縮システムが最初にコンピュータ・シス
テム内に配置されたときに、“FirstDrive”は、標準デ
バイス・ドライバがインストールされた後の最初に利用
可能なドライブ文字(DL1)を指定するものである。
したがって、FirstDriveは、1回だけ指定され、変えら
れることはない。“LastDrive ”は、圧縮ボリューム用
に予約されたドライブ文字の範囲内の最後のドライブ文
字(DL2)を指定するものである。したがって、Firs
tDriveがDで、LastDrive がHならば、5つのドライブ
文字が予約される。標準デバイス・ドライバが追加さ
れ、この追加の標準デバイス・ドライバにいずれのドラ
イブ文字も割り当てられていなくても、圧縮システム
は、FirstDriveからLastDrive までのドライブ文字を予
約する。しかし、この追加の標準デバイス・ドライバが
オペレーティング・システム内に配置され、ドライブ文
字が割り当てられると、圧縮システム用のドライブ文字
は、後述するスキームに従って予約される。予約された
ドライブ文字は、初期化の完了後に動的に搭載される圧
縮ボリューム用のドライブ文字を一般に含んでいる。
“ActivateDrive ”は、“DL3,CVF ”によって指定され
る圧縮ボリューム・ファイルが、搭載されることを指定
するものである。“DL3 ”は、圧縮ボリュームに割り当
てられるドライブ文字を指定する。“CVF ”は、ホスト
・ボリュームのドライブ文字とシーケンス番号(例えば
“C10 ”)を含んでいる。このシーケンス番号は、ホス
ト・ボリューム上で、ファイル拡張子としてこのシーケ
ンス番号をもつ“DBLSPACE”(例えば“C:\DBLSPACE.01
0 ”)というファイル名の圧縮ボリューム・ファイルを
指定するものである。このシーケンス番号が零の場合に
は、圧縮ボリュームが搭載された後に、この圧縮ボリュ
ーム用のドライブ文字とそのホスト・ボリューム用のド
ライブ文字とが交換される(後述する)。
【0021】ドライブ文字を割り当てられたデバイス・
ドライバは、ドライブ・パラメータ・ブロック(DP
B)を有する。このDPBは、割り当てられた各ドライ
ブ文字用に、オペレーティング・システムによって生成
される。オペレーティング・システムは、これらのDP
Bがリンクされたリストを、DPBリストとして保持す
る。DPBリストの最初のDPBには、ドライブ文字A
が割り当てられ、2番目のDPBには、ドライブ文字B
が割り当てられる。以下同様にして割り当てられる。新
しくインストールされたデバイス・ドライバが、ドライ
ブ文字を必要とするときには、そのデバイス・ドライバ
に対応するDPBが、DPBリストの最後にリンクされ
る。その結果、デバイス・ドライバには、次に利用可能
なドライブ文字が割り当てられる。
【0022】圧縮システムは、予約されるドライブ文字
の個数をオペレーティング・システムに示すことによ
り、ドライブ文字を予約する。オペレーティング・シス
テムは、各ドライブ文字用のDPBを生成し、DPBリ
ストの最後にその生成されたDPBをリンクする。圧縮
ボリュームが後に搭載されたときに、これらのDPBの
一つが、圧縮ボリューム・ファイルを表す情報を指すよ
うに更新される。
【0023】図4は、関数FirstTime の処理の流れを示
すフローチャートである。関数FirstTime は、オペレー
ティング・システムと圧縮システムとのバージョン互換
性をチェックし、他の圧縮システム関数を呼び出すため
の情報を初期化し、DBLSPACE.INIファイルを処理し、圧
縮システム・デバイス・ドライバをインストールする。
この関数FirstTime には、デバイス・ドライバの初期化
パケットを指すポインタ(ES:BX )およびバージョン番
号(AX)を渡すことが好ましい(以下では、インテル80
486 の技術を用いて指定されるレジスタを介して、パラ
メータが渡される。例えば、AXとは、インテル80486 プ
ロセッサのAXレジスタをいう)。この関数は、バージョ
ンに互換性がないときには、互換性エラー(キャリー・
ビット・セット)を返し、別のタイプのエラーが発生し
たときには一般的エラー(AX!=0)を返す。この関数
は、搭載される圧縮ボリュームの未決定搭載リストを生
成し、予約された各ドライブ文字のドライブ・パラメー
タ・ブロック(Drive Parameter Block :DPB)の配
置のために初期化パケットに情報を返す。
【0024】ステップ401 において、渡されたオペレー
ティング・システムのバージョン番号が圧縮システムの
バージョン番号と互換性があるならば、関数は、ステッ
プ402 に進み、そうでなければ関数はバージョン互換性
エラーを返す。ステップ402では、DBLSPACE.INIファイ
ルが検索される。この関数は、まず、ブート・ボリュー
ムを検索し、標準ボリューム(後に詳述)を探すかもし
れない。ステップ403において、DBLSPACE.INIファイル
が発見されたならば、この関数はステップ404に進み、
そうでなければ関数は一般的なエラーを返す。ステップ
404 で、関数は、DBLSPACE.INIファイルをロードし、何
らかの理由によりロードが失敗したならば、一般的エラ
ーを返す。ステップ405 において、関数は、圧縮ボリュ
ーム用に予約するドライブ文字の個数を決定する。予約
するドライブ個数の決定アルゴリズムについては、後に
詳述する。ステップ406 〜408 では、関数は、DBLSPAC
E.INIファイルの各ActivateDrive(AD)ラインを処理す
るためにループする。関数は、それぞれの未決定搭載リ
スト(Pending Mount List:PML)にエントリを追加
する。未決定搭載リストは、圧縮ボリュームのドライブ
文字、ホスト・ボリュームのドライブ文字およびActiva
teDrive ラインからのシーケンス番号を含んでいる。ス
テップ406 で、すべてのActivateDrive ラインがすでに
処理されているならば、この関数は、呼び出し元にリタ
ーンし、そうでなければステップ407 に進む。ステップ
407 では、関数は、次のActivateDrive ラインを選択す
る。ステップ408 では、この関数は、選択されたActiva
teDrive ライン用の未決定搭載リストにエントリを生成
し、記憶する。また、この関数は、次のActivateDrive
ラインを選択するためにステップ406 からのループ処理
を行う。表2は、サンプルのActivateDrive ラインおよ
び対応する未決定搭載リストを含んでいる。
【0025】
【表2】 未決定搭載リスト 圧縮ボリューム ホスト・ボリューム シーケンス番号 ドライブ文字 ドライブ文字 H C 0 D C 1 E C 2
【0026】図5および図6は、圧縮ボリューム用に予
約するドライブ文字の個数を決定するルーチンの処理の
流れを示すフローチャートである。このルーチンは、ド
ライブ文字の再割り当てに使用する変数letterFirst と
reservedDrivesをセットする。変数letterFirst は、圧
縮ボリューム用に予約される最初のドライブ文字を示
し、標準デバイス・ドライバのインストール後の最初に
利用可能なドライブ文字に対応する。変数reservedDriv
esは、圧縮ボリューム用に予約されたドライブ文字の個
数を示している。例えば、letterFirst がDであり、re
servedDrivesが5である場合に、ドライブ文字D、E、
F、GおよびHが、圧縮ボリューム用に予約される。予
約するドライブ文字の個数を決定するときに、このルー
チンは、変数letterHighest を、ActivateDrive ライン
における最も高位の圧縮ボリュームのドライブ文字の割
り当てに等しくなるようにセットする。ドライブ文字の
予約された個数は、次の式により決定される。
【0027】maximum(LastDrive, letterHighest) minimun(FirstDrive, letterFirst)
【0028】ActivateDrive ラインにおける圧縮ボリュ
ームのドライブ文字が、標準デバイス・ドライバに割り
当てられたドライブ文字と競合するならば、圧縮ボリュ
ームのドライブ文字は、予約された範囲(letterFirst
とreservedDrives)外の次の高位のドライブ文字に変え
られ、letterFirst の値は一つ増加させられる。
【0029】ステップ501 で、このルーチンは、変数re
servedDrivesを1にセットする。この値は、予約される
ドライブ文字の最小の個数である。ステップ502 で、こ
のルーチンは、変数letterFirst を、標準デバイス・ド
ライバのインストール後に利用可能な最初のドライブ文
字にセットする。ステップ503 において、LastDriveの
値が変数letterFirst 以上ならば、標準デバイス・ドラ
イバは、ドライブ文字LastDrive を含むように配置され
ていず、このルーチンはステップ504 に進む。そうでな
ければ、このルーチンはステップ505 に進む。ステップ
504 で、ルーチンは、変数reserveDrives を、letterFi
rst からLastDrive によって示されるドライブの範囲の
ドライブ数に等しくなるようにセットする。ステップ50
5 において、変数letterFirst がFirstDriveラインの値
よりも大きいならば、標準デバイス・ドライバが、圧縮
システムの初期配置からオペレーティング・システムに
加えられており、ルーチンは、ステップ506 に進む。そ
うでなければ、ルーチンは、ステップ507 に進む。ステ
ップ506 では、ルーチンは、letterFirst とFirstDrive
との間の相違を反映するように、変数reservedDrivesを
増加させる。ステップ507 では、ルーチンは、変数lett
erHighest を、ActivateDrive ライン内の最高位の圧縮
ボリューム・ドライブ文字に等しくなるようにセットす
る。ステップ508 において、letterFirst からletterHi
ghest の範囲のドライブ文字の個数が、変数reservedDr
ivesよりも大きいならば、ルーチンは、ステップ509 に
進み、そうでなければ、ルーチンは、ステップ510 に進
む。ステップ509 では、ルーチンは、予約されたドライ
ブ文字の個数を、letterHighest からletterFirst まで
の範囲のドライブ文字の個数にセットする。
【0030】ステップ510 から514 では、ルーチンは、
最初に利用可能なドライブ文字(letterFirst )よりも
小さなドライブ文字をもつActivateDrive ラインの圧縮
ボリューム・ドライブ文字を調整するためのループ処理
を行う。これは、標準デバイス・ドライバが、圧縮シス
テムの初期構成に追加された結果生じるものである。ス
テップ510 では、ルーチンは、最初から始まるActivate
Drive ラインの次のものを選択する。ステップ511 で
は、すべてのActivateDrive ラインがすでに選択されて
いるならば、ルーチンはリターンし、そうでなければ、
ルーチンはステップ512 に進む。ステップ512 では、選
択されたActivateDrive ラインの圧縮ボリューム・ドラ
イブ文字が、最初に利用可能なドライブ文字よりも小さ
いならば、ルーチンはステップ513 に進み、そうでなけ
ばルーチンはステップ510 にループし、次のActivateDr
ive ラインを選択する。ステップ513 では、ルーチン
は、予約されたドライブの個数を1増加させる。ステッ
プ514 では、ルーチンは、選択されたActivateDrive ラ
インの圧縮ボリューム・ドライブ文字を、最後に予約さ
れたドライブ文字にセットし、ステップ510 にループ
し、次のActivateDrive ラインを選択する。変形例とし
て、letterFirst よりも小さなドライブ文字を割り当た
られた圧縮ボリュームを、圧縮ボリューム用に予約され
た最初のドライブ文字に再割り当てすることもできる。
【0031】図7は、関数TryToSwap の処理の流れを示
すフローチャートである。関数TryToSwap には、新しく
インストールされたデバイス・ドライバに割り当てる必
要のあるドライブ文字の個数、圧縮ボリューム用に予約
された最初のドライブ文字(letterBottom)、および予
約されたドライブ文字の個数が渡される。この関数は、
圧縮ボリューム用に予約されたドライブ文字と、デバイ
ス・ドライバによって予定されたドライブ文字とが競合
した場合に、これを回避するものである。この関数は、
圧縮ボリューム用に予約された範囲内にあるボリューム
を、利用可能なドライブ文字に割り当て、オペレーティ
ング・システムが、新しくインストールされたデバイス
・ドライバに、予定されたドライブ文字を割り当てるこ
とができるようにする。新しく割り当てられたドライブ
文字用のDPBは、この関数が呼び出されたときに、D
PBリストの最後にリンクされる。ドライブ文字を再割
り当てした後、この関数は、再割り当てのために搭載可
能な未決定搭載リストからドライブを搭載する。渡され
たドライブ文字の個数が零の場合には、この関数は、ド
ライブ文字を再割り当てすることなく、未決定搭載リス
トからドライブを搭載する。ステップ601 から604 にお
いて、関数は、圧縮ボリューム・ファイルを新しいドラ
イブ文字に再割り当てするループ処理を行う。ステップ
601 において、必要とされるドライブ文字が零に等しい
(nDrives=0 )の場合には、十分な圧縮ボリュームが再
割り当てされたか、いずれも再割り当ての必要がなく、
関数はステップ605 に進む。そうでなければ、関数はス
テップ602 に進む。ステップ602 では、関数は、letter
Bottomによって示されるドライブ文字に現在割り当てら
れている圧縮ボリュームを、最初に利用可能なドライブ
文字(すなわち、letterBottomによって示されるドライ
ブ文字に予約されたドライブ数(reservedDrives)を加
えたドライブ文字)に再割り当てする。この再割り当て
は、圧縮ボリューム用のDPBをDPBリストの最後に
移動する処理を含んでいる。ステップ603では、関数
は、圧縮ボリュームの新しいドライブ文字の割り当てを
反映するように、letterBottomによって示されるドライ
ブ文字用の未決定搭載リストの全ての参照を、新しいド
ライブ文字に変える。ステップ604 において、関数は、
圧縮ボリューム用に予約された最低位のドライブ文字を
示すように、変数letterBottomを増加させ、必要とされ
るドライブ文字の個数を減少させ、ステップ601 へルー
プする。
【0032】ステップ605 において、関数は、圧縮ボリ
ュームに先に割り当てられたドライブ文字を、新しくイ
ンストールされたデバイス・ドライバに割り当てる。こ
れは、新しくインストールされたデバイス・ドライバ用
のDPB(この関数が呼び出されたときに、このDPB
はDPBリストの最後にある)を圧縮ボリューム用に予
約されたDPB(letterFirst )の前に移動する処理を
含んでいる。ステップ606 〜610 において、関数は、そ
れらの圧縮ボリュームを、搭載可能な未決定搭載リスト
に搭載するループ処理を行う。試行された搭載が不成功
に終わるいくつかの理由がある。圧縮ボリュームのホス
ト・ボリュームが標準デバイスでない場合には、その圧
縮ボリュームは、CONFIG.SYSファイルが処理されるま
で、搭載できない。また、いくつかの標準デバイス・ド
ライバが、デバイスからの読み出しをサポートするが、
書き込みはサポートしない。一方、非標準デバイス・ド
ライバは、CONFIG.SYSファイルを処理するときに、イン
ストールされる。ステップ606 において、未決定搭載リ
ストの全てのエントリが処理されたならば、関数は呼び
出し元にリターンし、そうでなければ、関数はステップ
607 に進む。ステップ607 において、未決定搭載リスト
の次のエントリの圧縮ボリュームを搭載できるならば、
関数はステップ608 に進み、そうでなければ、関数はス
テップ606 にループする。ホスト・ボリュームのデバイ
ス・ドライバがこの関数の最後の呼び出しからインスト
ールされたならば、圧縮ボリュームは搭載されるであろ
う。ステップ608 では、関数は、未決定搭載リストの次
のエントリによって示される圧縮ボリュームを搭載す
る。搭載は、圧縮ボリューム用に予約されたDPBを、
この圧縮ボリュームを表す情報をポイントするようにセ
ットする処理を含んでいる。ステップ609 では、シーケ
ンス番号が零のときに、関数は、搭載された圧縮ボリュ
ームのドライブ文字と、そのホスト・ボリュームのドラ
イブ文字とを入れ換える(スワップする)。ステップ61
0 では、関数は、そのエントリを、未決定搭載リストか
ら消去し、ステップ606 へループし、次のエントリの処
理を行う。
【0033】関数InquireInitSize およびMoveToInitLo
cationが呼び出され、初期化関数(FirstTime )の実行
後に必要とされる圧縮システム・コードを移動する。こ
の関数InquireInitSize は、初期化関数の実行の後に圧
縮システム・コードに必要なメモリの容量を指定するも
のである。このコードに必要なメモリのパラグラフの個
数が、この関数の実行結果として返される(AX)。関
数MoveToInitTimeLocationは、渡されたアドレスに圧縮
システム・コードを移動させる。関数MoveToInitTimeLo
cationには、コードを移動させるべきセグメント・ベー
ス・アドレス(ES)が渡される。この関数は、その実
行結果として、ドライバの低位スタブの終了アドレス
(AX)を返し、移動された圧縮システム・コードの部
分が空きになるようにする。
【0034】関数InquireResidentImageSizeとPerformF
inalPlacement は、CONFIG.SYSファイルを処理した後に
必要とされる圧縮システムの常駐部を移動させるために
呼び出される。これらの関数は、様々な常駐プログラム
の関数を呼び出すために、多重割り込みによって呼び出
される。これらの関数は、CONFIG.SYSファイル(後に詳
述する)によって指定されたものとして、DBLSPACE.SYS
ファイルによって呼び出されることが好ましい。MS-DOS
では、多重割り込みはInt2f 割り込みであり、これらの
関数のファンクション・ナンバは4A11hである。関数In
quireResidentImageSizeはBX=1によって指定され、関数
PerformFinalPlacement はBX=2によって指定される。関
数InquireResidentImageSizeは、圧縮システムの常駐部
によって必要とされるパラグラフの個数を指定する。関
数InquireResidentImageSizeは、必要とされるメモリの
パラグラフの個数(AX)を返す。関数PerformFinalPlac
ement は圧縮システムの常駐部を移動させる。関数Perf
ormFinalPlacement には、この常駐部を配置すべきセグ
メント・ベース・アドレス(ES)が渡される。
【0035】関数HooksIntは、割り込みベクタ上のフッ
クをインストールする。好ましい実施例では、圧縮シス
テムは割り込みInt21 、Int26 およびInt2f をフックす
る。この関数は、オペレーティング・システムが、オペ
レーティング・システムの割り込みベクタをセットした
後に、呼び出される。
【0036】図8〜図11は、この発明による圧縮システ
ムのインストールのために適合されたオペレーティング
・システムの好ましい初期化処理を示すフローチャート
である。コンピュータ・システムが最初にパワー・オン
され、またはブートされるときに、制御はROMBoot ルー
チンに渡される。図8は、ROMBoot ルーチンのフローチ
ャートである。ステップ701 では、このルーチンは、ど
のボリュームからブートを行うべきかを決定し、そのブ
ート・ボリュームからディスク・ブート・セクタをロー
ドする。このディスク・ブート・セクタは、ディスクか
らブートを行うためのコードを含んでいる。ステップ70
2 では、このルーチンは、ロードされたコード(DiskBo
otSectorルーチン)にジャンプする。
【0037】図9は、DiskBootSectorルーチンのフロー
チャートである。DiskBootSectorルーチンは、“IO.SY
S”という名前をもつファイルをロードし、そのファイ
ルのSYSINIT ルーチンへジャンプする。IO.SYSファイル
は、システムの初期化を続けるためのコードを含んでい
る。ステップ801 では、このルーチンは、IO.SYSファイ
ル用のブート・ボリュームを検索する。ステップ802 で
は、IO.SYSファイルが発見されると、ルーチンはステッ
プ803 に進み、そうでなければ、ルーチンはブート処理
をエラーで終了する。ステップ803 では、ルーチンは、
IO.SYSファイルをロードする。ステップ804 では、ルー
チンは、ロードされたIO.SYSファイルのSYSINIT (シス
テム初期化)ルーチンにジャンプする。
【0038】図10および図11は、SYSINIT ルーチンのフ
ローチャートを含んでいる。SYSINIT ルーチンは、標準
デバイス・ドライバをインストールし、圧縮システム・
デバイス・ドライバをインストールし、非標準デバイス
・ドライバをインストールする。このルーチンは、圧縮
システムの関数を呼び出して、圧縮システム・デバイス
・ドライバのインストールを調整し、ドライブ文字の割
り当てを調整する。ステップ901 では、ルーチンは、SY
SINIT コードを高位のメモリに再配置する。SYSINIT コ
ードは、最初は、低位のメモリにロードされていた。こ
のルーチンによりロードされるデバイス・ドライバも、
低位メモリにロードされるであろう。SYSINIT コード
は、システム初期化の後は必要とされないので、デバイ
ス・ドライバを可能な限り最低位のメモリにロードでき
るように、このルーチンは移動される。SYSINIT コード
が移動されなかった場合には、その結果として、ギャッ
プが低位のメモリに発生する。ステップ902 では、ルー
チンは“MSDOS.SYS ”という名前を持つファイルを検索
する。MSDOS.SYS ファイルは、オペレーティング・シス
テムのカーネルを含んでいる。ステップ903 では、MSDO
S.SYS ファイルが発見されると、ルーチンはステップ90
4 に進み、そうでなければ、この初期化処理はエラーで
終了する。ステップ904 では、ルーチンは、MSDOS.SYS
ファイルをロードする。ステップ905 において、ルーチ
ンは、標準デバイス・ドライバをロードし、ドライブ文
字を割り当てることにより、標準デバイス・ドライバを
インストールする。ステップ906 では、ルーチンは、
“DBLSPACE.BIN”という名前をもつファイルを検索す
る。このDBLSPACE.BINファイルは、好ましくは、圧縮シ
ステムを初期化するためのコードを含んでいる。ステッ
プ907 において、DBLSPACE.BINファイルが発見される
と、ルーチンはステップ908 に進み、そうでなければ、
ルーチンはステップ915 に進む。ステップ908 では、ル
ーチンは、DBLSPACE.BINファイルをロードする。ステッ
プ909 において、DBLSPACE.BINファイルのスタンプ・フ
ィールドが適切ならば、ルーチンはステップ910 に進
み、そうでなければルーチンはステップ915 に進む。DB
LSPACE.BINファイルは、予め定められた配置(スタンプ
・フィールド)に予め定められた値を備えている。この
予め定められた値の存在により、DBLSPACE.BINファイル
が圧縮システムであり、ユーザが不注意にDBLSPACE.BIN
と名付けたファイルでないことが二重にチェックされ、
DBLSPACE.BINファイルが圧縮システムであることが確実
になる。好ましい実施例においては、この予め定められ
た値は、ASCII 文字のカンマとピリオド(“,.”)であ
り、予め定められた配置は、ファイルの12hである。ス
テップ910 では、このルーチンは、DBLSPACE.BINファイ
ルの関数FirstTime を呼び出して、圧縮システム・デバ
イス・ドライバをインストールし、ドライブ文字を予約
し、未決定搭載リストを作成する。ステップ911 では、
関数FirstTime がエラーなく実行されると、ルーチンは
ステップ912 に進み、そうでなければルーチンはステッ
プ915 に進む。ステップ912 および913 では、ルーチン
は、圧縮システムを指定して、初期化関数(FirstTime
)の実行後に必要とされるそのコードを配置し、非標
準デバイス・ドライバが低位のメモリに配置されるよう
にする。ステップ912 では、ルーチンは、圧縮システム
の関数InquireInitSize を呼び出し、圧縮システムが必
要とするメモリ容量を決定する。ステップ913 では、ル
ーチンは、圧縮システム・コードが再配置される場所を
決定し、圧縮システムの関数MoveToInitTimeLocationを
呼び出して、そのコードを移動させる。ステップ914 で
は、ルーチンは、ドライブ文字のカウント値0(nDrive
s=0 )を渡す圧縮システムの関数TryToSwapを呼び出
す。これにより、圧縮システムは、先にインストールさ
れた標準デバイス用のデバイス・ドライバに基づいて搭
載できる未決定搭載リストの圧縮ボリュームを搭載する
機会を提供される。ステップ915 では、ルーチンは、関
数ProcessConfig を呼び出し、CONFIG.SYSファイルを処
理する。関数ProcessConfig は、非標準デバイス・ドラ
イバをインストールし、まだ搭載されていない圧縮ボリ
ュームの搭載を指示する。圧縮システムの常駐部は、DB
LSPACE.SYSファイル(後の詳述)の参照を含むCONFIG.S
YSファイルを処理するときに、メモリ・マネージャによ
って、その最終配置に移動されていてもよい。ステップ
916 および917 では、ルーチンは、圧縮システムがまで
移動されていないならば、圧縮システムをその最終の常
駐部に移動させる。ステップ916 では、ルーチンは、圧
縮システムの関数GetResidentImageSizeを呼び出し、圧
縮システムの常駐部に必要なメモリ容量を決定する。ス
テップ917 では、ルーチンは、圧縮システムの関数Perf
ormFinalPlacement を呼び出し、圧縮システムの常駐部
をその最終の常駐配置に移動させる。
【0039】図12は、関数ProcessConfig のフローチャ
ートである。この関数ProcessConfig は、非標準デバイ
ス・ドライバをインストールし、圧縮ボリュームの搭載
を指示する。ステップ1001では、ルーチンは、CONFIG.S
YSファイルを検索し、もしあれば、このファイルをロー
ドする。ステップ1002では、CONFIG.SYSファイルに示さ
れた全てのデバイス・ドライバが処理されたならば、関
数はリターンし、そうでなければ、関数はステップ1003
に進む。ステップ1003では、関数は、CONFIG.SYSファイ
ルに示された次のデバイス・ドライバをインストールす
る。インストールされたデバイス・ドライバは、それが
必要とするドライブ文字の個数(nDrives )の指定を返
し、圧縮システム用に予約されたドライブ文字よりも大
きなドライブ文字に、一時的に割り当てられる。この割
り当ては、DPBをDPBリストの最後に追加するとい
う標準的なオペレーティング・システム技術によって達
成される。ステップ1004では、必要とされるドライブ文
字の個数が零ならば、関数はステップ1002にループし、
次のデバイス・ドライバを処理し、そうでなければ関数
はステップ1005へ進む。ステップ1005では、関数は、圧
縮システムの関数TryToSwap を呼び出し、新しくインス
トールされたデバイス・ドライバ用のドライブ文字と、
圧縮ボリューム用に予約された範囲内のドライブ文字を
割り当てられた任意のボリュームのドライブ文字とを入
れ換える。そして、関数はステップ1002にループし、次
のデバイス・ドライバを処理する。
【0040】
【表3】
【0041】表3は、DBLSPACE.INIファイルおよびCONF
IG.SYSファイルのサンプルを示している。ActivateDriv
e ラインは、3つの圧縮ボリュームが搭載されることを
示している。C:\DBLSPACE.000 という名前をもつ圧縮ボ
リューム・ファイル(CVF0)は、ドライバC:として搭
載され、そのホスト・ボリュームは、ライン“ACTIVATE
DRIVE=H,C0”に示すように、ドライブHに交換される。
C:\DBLSPACE.001 という名前をもつ圧縮ボリューム・フ
ァイル(CVF1)は、ライン“ACTIVATEDRIVE=D,C1”に示
すように、ドライブDとして搭載される。“C:\DBLSPAC
E.002 ”という名前をもつ圧縮ボリューム・ファイル
(CVF2)は、ライン“ACTIVATEDRIVE=E,C2”に示すよう
に、ドライブEとして搭載される。CONFIG.SYSファイル
は、RD1.SYS ファイルの非標準デバイス・ドライバがイ
ンストールされることを示している。
【0042】図13は、初期化処理中のドライブ文字の割
り当てを示している。ルーチンSYSINIT は、2つのフロ
ッピィ・ディスク・ドライブ(FD)用のデバイス・ド
ライバと一つのハード・ディスク(HD)用のデバイス
・ドライバに、ドライブ文字A、BおよびCをそれぞれ
割り当てる。
【0043】続いて、ルーチンSYSINIT は、関数FirstT
ime を呼び出す。関数FirstTime は、標準デバイス・ド
ライバをロードした後に利用可能な最初のドライブ文字
(letterFirst )および圧縮ボリューム用に予約された
ドライブ文字(reserveDrives )の個数を決定する。ま
た、関数FirstTime は、搭載される各圧縮ボリューム用
の未決定搭載リスト(PML)にエントリを追加する。
ライン1101に示すように、ドライブ文字AおよびBは、
フロッピィ・ドライブ(FD)に割り当てられ、ドライ
ブ文字Cは、ハード・ドライブ(HD)に割り当てら
れ、ドライブ文字DからHは、圧縮ボリューム(CR)
用に予約されている。また、未決定搭載リストが、CVF
0、CVF1およびCVF2用のエントリを含んでいる。
【0044】続いて、ルーチンSYSINIT は、関数TryToS
wap を呼び出し、ドライブ文字が交換される必要のない
ことの指示およびletterBottomとreserveDrives によっ
て示される予約されたドライブ文字を渡す。関数TryToS
wap は、圧縮ボリュームを未決定搭載リストに搭載する
ことを試みる。ライン1102に示すように、この関数は、
未決定搭載リストからCVF0のエントリを消去する。関数
は、ドライブ文字HのDPBを、CVF0をポイントするよ
うに更新することにより、CVF0を搭載する。続いて、関
数は、ドライブ文字CとHのDPBを交換する。シーケ
ンス番号0が、ホスト用のドライブ文字と圧縮ボリュー
ム用のドライブ文字とが交換されることを示している。
ライン1103に示すように、関数は、CVF1のエントリを未
決定搭載リストから消去し、CVF1をドライブ文字DのD
PBを、CVF1をポイントするように更新することによ
り、CVF1を搭載する。ライン1104に示すように、関数
は、CVF2のエントリを未決定搭載リストから消去し、ド
ライブ文字E用のDPBを、CVF2をポイントするように
更新することにより、CVF2を搭載する。
【0045】次に、ルーチンSYSINIT は、CONFIG.SYSフ
ァイルを処理する。このルーチンは、RD1.SYS のデバイ
ス・ドライバをインストールし、ドライブ文字IをRD1
に一時的に割り当てる。これは、RD1 用のDPBを、D
PBリストの最後に追加することにより行われる。ルー
チンSYSINIT は、関数TryToSwap を呼び出し、一つのド
ライブ文字が交換されることを示すパラメータを渡す。
この関数は、CVF0およびRD1 用のDPBを交換し、lett
erBottomを更新する。
【0046】図14は、追加した標準デバイス・ドライバ
(RD0 )がインストールされるときに、表3のサンプル
のドライブ文字の割り当てを示すものである。ライン12
00に示すように、標準デバイス・ドライバが、ドライブ
文字AからDに割り当てられている。ライン1201に示す
ように、5つのドライブ文字が圧縮ボリューム用に予約
され、未決定搭載リストがエントリCVF0、CVF1およびCV
F2を含んでいる。追加したデバイス・ドライバRD0 との
競合が生じているので、未決定搭載リストのCVF1用の圧
縮ボリューム・ドライブ文字は、Iに変えられている。
ライン1206に示すように、デバイス・ドライバRD1 がイ
ンストールされたときに、そのドライブ文字がCVF2用の
ドライブ文字と競合したので、それらのドライブ文字は
交換された。
【0047】
【表4】
【0048】表4は、DBLSPACE.INIファイルとCONFIG.S
YSファイルのサンプルを示している。ActivateDrive ラ
インは、3つの圧縮ボリューム・ファイルが搭載されて
いることを示している。C:\DBLSPACE.000 という名前を
持つ圧縮ボリューム・ファイル(CVF0)は、ドライブC
として搭載され、そのホスト・ボリュームは、ライン
“ACTIVATEDRIVE=H,C0”に示すように、ドライブHに交
換される。E:\DBLSPACE.001 という名前をもつ圧縮ボリ
ューム・ファイル(CVF1)は、ライン“ACTIVATEDRIVE=
F,E1”に示すように、ドライブFとして搭載される。
“C:\DBLSPACE.002”のファイル名をもつ圧縮ボリュー
ム・ファイルは、ライン“ACTIVATEDRIVE=G,C2”に示す
ように、ドライブGとして搭載される。この例では、オ
ペレーティング・システムは、4つの標準デバイス・ド
ライバをインストールすると仮定されている。
【0049】図15は、初期化処理中のドライブの割り当
てを示している。ルーチンSYSINITは、2つのフロッピ
ィ・ディスク・ドライブ(FD)、一つのハード・ディス
ク・ドライブ(HD)および一つのROM ドライブ(RD0 )
を、ドライブ文字A、B、CおよびDにそれぞれ割り当
てる。
【0050】続いて、ルーチンSYSINIT は、関数FirstT
ime を呼び出す。関数FirstTime は、圧縮ボリューム・
ファイル用の最初のドライブ文字(letterFirst )およ
びその圧縮ボリューム用に予約されたドライブ文字の個
数(reservedDrives)を決定する。この関数FirstTime
は、また、各圧縮ボリューム用の未決定搭載リストへエ
ントリを追加する。
【0051】続いて、ルーチンSYSINIT は、関数TryToS
wap を呼び出し、ドライブ文字の交換が不要であること
を示す情報を渡す。関数TryToSwap は、圧縮ボリューム
を未決定搭載リストを搭載する。ライン1302に示すよう
に、関数は、未決定搭載リストからCVF0用のエントリを
消去する。関数は、ドライブ文字HのDPBをCVF0をポ
イントするようにセットし、続いて、そのドライブ文字
をドライブ文字CのDPBと交換する。ライン1303に示
すように、デバイス・ドライバがドライブ文字Eに搭載
されていないので、関数は、まだCVF1を搭載することが
できない。この関数は、CVF2用のエントリを未決定搭載
リストから消去する。関数は、ドライブ文字GのDPB
をCVF2をポイントするようにセットする。
【0052】続いて、ルーチンSYSINIT は、CONFIG.SYS
ファイルを処理する。ライン1304に示すように、このル
ーチンは、RD1.SYS のデバイス・ドライバをインストー
ルし、RD1 にドライブ文字Jを一時的に割り当てる。ル
ーチンSYSINIT は、関数TryToSwap を呼び出し、一つの
ドライブ文字が交換されることを示すパラメータを渡
す。関数TryToSwap は、ライン1305に示すように、DP
Bを交換することにより、ドライブ文字E(letterFirs
t )をRD1 に割り当てる。関数は、CVF1のエントリを未
決定搭載リストから消去する。関数は、ドライブ文字F
用のDPBをCVF1をポイントするようにセットする。
【0053】続いて、ルーチンは、ライン1307に示すよ
うに、RD2.SYS ファイルのデバイス・ドライブをインス
トールし、ドライブ文字KをRD2 に一時的に割り当て
る。ルーチンSYSINIT は、関数TryToSwap を呼び出し、
一つのドライブ文字が交換されることを示すパラメータ
を渡す。関数は、ライン1308に示すように、DPBを交
換することにより、ドライブ文字F(letterFirst )を
RD2 に割り当てる。
【0054】図16は、この発明の好ましい実施例を実現
するコンピュータ・システムのブロック図である。好ま
しいオペレーティング・システムおよび圧縮システム
が、固定ボリューム1406に格納されている。
【0055】図17は、固定ボリュームに記憶された好ま
しい圧縮ボリューム・ファイル1501のブロック図であ
る。オペレーティング/圧縮システム1410のコアを形成
するシステム・ファイル(IO.SYS、MSDOS.SYS 、DBLSPA
CE.BINおよびDBLSPACE.INI)が、固定ボリューム1406に
記憶されている。固定ボリューム・ドライブ1406が、圧
縮ボリューム・ファイル1501のホスト・ボリュームとし
て示されているが、ホスト・ボリュームは、取り外し可
能なボリューム・ドライブ1405、1408の一つであっても
よい。圧縮ボリューム・ファイル1501は、ファイルCOMM
AND.COM 、CONFIG.SYSおよびAUTOEXEC.BATを含んでい
る。また、圧縮ボリューム・ファイル1501は、CONFIG.S
YSファイル内で参照されるデバイス・ドライバおよびAU
TOEXEC.BATファイルの処理中にロードされるプログラム
を含んでいる。この発明の好ましい実施例によると、圧
縮ボリューム・ファイルとホスト・ボリューム内の複製
システム・ファイルを記憶する必要性を軽減することが
できる。
【0056】好ましい実施例においては、コンピュータ
・システムを取り外し可能なボリュームから初期化する
ことができ、圧縮システムをインストールすることがで
きる。さらに、圧縮ボリュームがコンピュータ・システ
ムに記憶されていることを示す参照を、取り外し可能な
ボリュームが含んでいない(すなわち、DBLSPACE.INIフ
ァイルがない)ときに、これを実行することができる。
コンピュータ・システムが取り外し可能ボリューム(例
えば、ドライブ文字Aを割り当てられたフロッピィ・デ
ィスク・ドライブ)から初期化されるときに、圧縮シス
テムをインストールすることができる。IO.SYS、MSDOS.
SYS およびDBLSPACE.BINファイルが取り外し可能ボリュ
ームに記憶されているが、DBLSPACE.INIファイルが、固
定ボリューム(例えば、ドライブ文字Cを割り当てられ
たハード・ディスク・ドライブ)に記憶されているとき
に、固定ボリュームのDBLSPACE.INIファイルに指定され
た圧縮ボリュームが搭載される。
【0057】圧縮システムの関数FirstTime は、DBLSPA
CE.INIファイルを配置する。ブート・ボリュームが、DB
LSPACE.INIファイルを含むならば、そのファイルは、圧
縮システムによって使用される。ブート・ファイルが、
MS-DOSの標準ドライブCのような固定ドライブであり、
かつ、ブート・ボリュームがDBLSPACE.INIファイルを含
んでいないならば、圧縮システムは、インストールされ
ない。ブート・ボリュームが取外し可能ドライブであ
り、かつ、ブート・ボリュームがDBLSPACE.INIを含んで
いないならば、関数FirstTime は、MS-DOSの標準ドライ
ブCのような固定ボリュームを探す。DBLSPACE.INIファ
イルが発見できない場合には、圧縮システムはインスト
ールされない。
【0058】図20は、DBLSPACE.INIファイルの配置を決
定するためのフローチャートである。ステップ1801で
は、このルーチンは、ブート・ドライブを決定する。ス
テップ1802において、DBLSPACE.INIファイルがブート・
ドライブ上に存在するならば、そのファイルが、圧縮シ
ステムの初期化に使用され、このルーチンはリターン
し、そうでなければ、ルーチンはステップ1803に進む。
ステップ1803では、DBLSPACE.INIファイルが標準ドライ
ブ上に存在するならば、そのファイルが、圧縮システム
の初期化に使用され、ルーチンはリターンし、そうでな
ければ、エラーを返す。
【0059】図18は、CONFIG.SYSファイルの処理後のコ
ンピュータ・システムのRAMのメモリ・マップであ
る。このRAMは、通常メモリ1601、上位メモリ1602お
よび拡張メモリ1603の3つのメイン・エリアに分割され
ている。通常メモリ1601は、0KBから640KB までの領域
である。上位メモリ1602は、640KB から1MBまでの領域
であり、一般に読み出し専用メモリ(ROM)およびハ
ードウェア・デバイス・メモリのために予約されてい
る。拡張メモリ1603は、1MBを越えるメモリである。拡
張メモリの最初の64KBは、高位メモリ・エリア(High M
emory Area:HMA )として参照される。
【0060】通常メモリ1601は、オペレーティング・シ
ステムがプログラムをロードし実行するエリアである。
プログラムおよびそのデータ・ファイルに加えて、通常
メモリは、オペレーティング・システム、CONFIG.SYSフ
ァイルで参照されるデバイス・ドライバおよびAUTOEXE
C.BATファイルによって指定される任意のメモリ常駐プ
ログラムを含んでいる。BIOS、ビデオ・メモリ、ハード
ウェア・デバイス・メモリ、インストール可能ROM、
およびROM-BIOS は、上位メモリ1602に記憶される。
【0061】MS-DOSおよび互換性のあるオペレーティン
グ・システムにおいて、通常メモリ・エリア1601は、ア
プリケーション・プログラムによって使用される、でき
るだけ多くのフリー・スペースをもつことが望ましい。
通常メモリ・エリアのフリー・スペースの容量を最大に
するために、メモリ・マネージャと呼ばれる分類に属す
るソフトウェア製品が徐々に現れてきている。例えば、
マイクロソフト社のEMM386は、ソフトウェアのメモリ・
マネージャである。メモリ・マネージャは、CONFIG.SYS
ファイルにおいて指定され、オペレーティング・システ
ムによってインストールされる。メモリ・マネージャ
は、(1) インテル80386 以上のCPUのページング機
能、および(2) 上位メモリ1602の利用可能なフリー・ス
ペースを利用する。インテル80386 のページング機能を
用いると、これらのメモリ・マネージャは、拡張メモリ
1603からメモリ1605、1606、1607および1608の未使用部
分にRAMの「マップ・イン」を行うことができ、これ
により、上位メモリ・ブロック(Upper Memory Block:
UMB)として知られているメモリ・ブロックを生成す
る。UMBについての詳細な内容を示したものとして、
Gookin, DOS 5 のメモリ・マネージング(1991)がある。
【0062】メモリ・マネージャは、特別のコマンドを
使用して、デバイス・ドライバおよび常駐(Terminate-
and-Stay Resident :TSR)プログラムを一または複
数のUMBにインストールする。MS-DOSおよび互換性の
あるオペレーティング・システムでは、CONFIG.SYSファ
イルのコマンドDEVICE[HIGH]が、デバイス・ドライバが
UMB にインストールされることを示すために使用され
る。
【0063】圧縮システムは大きいので、通常メモリ・
エリア1601の代わりにUMB に圧縮システムをインストー
ルすることが望ましい。一方、メモリ・マネージャがCO
NFIG.SYSファイルの処理中にロードされるまで、圧縮シ
ステムをUMB にロードすることはできない。以下に示す
ように、圧縮システムを、UMB に最終配置することがで
きる。
【0064】図19は、RAMのメモリ・マップであり、
初期配置1710、一時配置1712、ならびに圧縮システム用
の3つの可能な最終(常駐)配置1714、1716および1718
を示している。最終配置1714は、圧縮システム・コード
が通常メモリ一時配置1712から最初に利用可能なフリー
・スペースに移動された結果として生じる。最終配置17
16は、圧縮システム・コードが一時配置1712からUMB
に移動された結果として生じる。最終配置1718は、圧縮
システム・コードが高位メモリ・エリアに移動された結
果として生じる。圧縮システムは、メモリ・マネージャ
がインストールされたことを知らないかもしれないの
で、圧縮システムは、UMBへ効果的に移動することが
できない。したがって、圧縮システムは、圧縮システム
の最終配置を制御する“DBLSPACE.SYS”ファイルを含ん
でいる。表3に示すように、次のコマンドをCONFIG.SYS
ファイルに含めることができ、圧縮システムの最終配置
を制御する。
【0065】DEVICEHIGH=C:\DOS\DBLSPACE.SYS /MOVE
【0066】このコマンドの他のフォーマットとして次
のものがある。
【0067】DEVICE=C:\DBLSPACE.SYS /MOVE または DEVICE[HIGH]=C:\DBLSPACE.SYS /MOVE /NOHMA
【0068】これらのフォーマットは、メモリのどの部
分が圧縮システムの最終配置のために利用可能であるか
を制御する。例えば、圧縮システムをHMAにロード
し、一方で、そのスタブ部分を通常メモリに残し、また
はUMBに移動することができる。また、選択的に、H
MAが利用可能でない場合には、圧縮システムをUMB
または通常メモリにロードすることもできる。好ましい
実施例では、圧縮システムの圧縮/伸張エンジンを、メ
モリの一部に記憶し、圧縮システムのファイル・システ
ムをメモリの異なる部分に記憶することができる。DBLS
PACE.SYSファイルのコードは、圧縮コードを配置する関
数InquireResidentImageSizeとPerformFinalPlacement
を呼び出す。上記コマンドは、様々なメモリ・マネージ
ャの構文と適合するように変更することができる。メモ
リ・マネージャがインストールされない場合には、圧縮
システムが最終配置を選択することが好ましい。
【0069】データを圧縮および伸張する好ましい方法
が、米国特許出願「データ圧縮システムおよび方法(ME
THOD AND SYSTEM FOR DATA COMPRESSION)」(出願番号
08/031,189)に示されている。
【0070】この発明による方法およびシステムが、好
ましい実施例により説明されてきたが、この発明がこの
実施例に制限されるものでないことはいうまでもない。
この発明の思想内における変更が、この技術分野の専門
家ならば明らかであろう。例えば、この技術分野の専門
家ならば、圧縮システムと異なる他のシステム(例え
ば、暗号システム)のデバイス・ドライバがこの発明に
従ってインストールされることも可能であることを知る
であろう。この発明の範囲は、特許請求の範囲により定
義される。
【図面の簡単な説明】
【図1】従来のコンピュータ・システムのブロック図で
ある。
【図2】従来技術における圧縮ボリューム・ファイル
(CVF)およびそのホスト・ボリュームのブロック図
である。
【図3】圧縮システムの様々な要素を示すブロック図で
ある。
【図4】関数FirstTime の処理の流れを示すフローチャ
ートである。
【図5】圧縮ボリューム用に予約されるドライブ文字の
個数を決定するルーチンの処理の流れを示すフローチャ
ートである。
【図6】圧縮ボリューム用に予約されるドライブ文字の
個数を決定するルーチンの処理の流れを示すフローチャ
ートである。
【図7】関数TryToSwap の処理の流れを示すフローチャ
ートである。
【図8】ROMBoot ルーチンの処理の流れを示すフローチ
ャートである。
【図9】DiskBootSectorルーチンの処理の流れを示すフ
ローチャートである。
【図10】SYSINIT ルーチンの処理の流れを示すフロー
チャートである。
【図11】SYSINIT ルーチンの処理の流れを示すフロー
チャートである。
【図12】関数ProcessConfig の処理の流れを示すフロ
ーチャートである。
【図13】初期化処理中のドライブ文字の割り当てを示
すブロック図である。
【図14】初期化処理中のドライブ文字の割り当てを示
すブロック図である。
【図15】初期化処理中のドライブ文字の割り当てを示
すブロック図である。
【図16】この発明の好ましい実施例を実現するコンピ
ュータ・システムのブロック図である。
【図17】固定ボリューム上に記憶された好ましい圧縮
ボリューム・ファイルのブロック図である。
【図18】コンピュータ・システムのRAMのメモリ・
マップである。
【図19】圧縮システムの初期配置、一時的配置、およ
び3つの可能な最終(常駐)配置を示すRAMのメモリ
・マップである。
【図20】FindINI ルーチンの処理の流れを示すフロー
チャートである。
【符号の説明】
300 関数TryToSwap 301 DBLSPACE.BINファイル 302 関数FirstTime 304 関数InquireInitSize 305 関数MoveToInitTimeLocation 306 関数Hooks 307 関数PerformFinalPlacement 309 圧縮/伸張エンジン 310 ファイル・システム 1401 ROM 1402 ブート・プログラム 1403 BIOS 1404 CPU 1405、1408 取り外し可能ボリューム 1406 固定ボリューム 1407 RAM 1410 オペレーティング/圧縮システム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チャールズ エイ ストルース ザ サー ド アメリカ合衆国 ワシントン州 98053 レッドモンド トゥーハンドレッドアンド フォーティフォース アベニュー ノース イースト 4610 (72)発明者 スコット ディー クウィン アメリカ合衆国 ワシントン州 98027 イサカ トゥーハンドレッドアンドフィフ ティセカンド アベニュー サウスイース ト 13310

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 標準デバイス・ドライバおよび非標準デ
    バイス・ドライバを有するオペレーティング・システム
    を備え、かつ、前記標準デバイス・ドライバにはドライ
    ブ文字が割り当てられたコンピュータ・システムのデバ
    イス・ドライバであって、 前記オペレーティング・システムからのリクエストに応
    じて、前記デバイス・ドライバにドライブ文字を割り当
    てる手段を含む前記デバイス・ドライバを初期化する初
    期化手段、および非標準デバイス・ドライバへのドライ
    ブ文字の割り当てに応じて、前記デバイス・ドライバお
    よび前記非標準デバイス・ドライバに割り当てられたド
    ライブ文字を交換する交換手段、 を含むデバイス・ドライバ。
  2. 【請求項2】 前記非標準デバイス・ドライバのロード
    に先立つ前記オペレーティング・システムからのリクエ
    ストに応じて、前記オペレーティング・システムによっ
    て指定されるメモリ配置に前記デバイス・ドライバの一
    部を記憶する手段、 を含む請求項1に記載のデバイス・ドライバ。
  3. 【請求項3】 前記非標準デバイス・ドライバをロード
    した後の前記オペレーティング・システムからのリクエ
    ストに応じて、前記オペレーティング・システムによっ
    て指定されるメモリ配置に前記デバイス・ドライバの一
    部を記憶する手段、 を含む請求項1に記載のデバイス・ドライバ。
  4. 【請求項4】 前記デバイス・ドライバを識別する識別
    手段、 を含む請求項1に記載のデバイス・ドライバ。
  5. 【請求項5】 前記識別手段は、前記デバイス・ドライ
    バ内の配置12hに記憶されたアスキー文字“,.”を含む
    ものである、 請求項4に記載のデバイス・ドライバ。
  6. 【請求項6】 前記初期化手段は、前記デバイス・ドラ
    イバの配置14hのエントリ・ポイントを通じてオペレー
    ティング・システムにより呼び出し可能なものである、 請求項1に記載のデバイス・ドライバ。
  7. 【請求項7】 前記初期化手段および交換手段は、“DB
    LSPACE.BIN”という名前をもつファイルのコンピュータ
    ・プログラムとして記憶されているものである、 請求項1に記載のデバイス・ドライバ。
  8. 【請求項8】 圧縮システムを含み、固定ボリュームお
    よび取外し可能ボリュームを備えたコンピュータ・シス
    テムを初期化するための方法であって、 前記取外し可能ボリュームが、前記コンピュータ・シス
    テムをブートするブート・ボリュームであるかどうかを
    判定し、ならびに前記取外し可能ボリュームがブート・
    ボリュームであるときには、 前記取外し可能ボリュームから前記圧縮システムをロー
    ドし、および前記圧縮システムの構成情報が前記取外し
    可能ボリュームに存在する場合には、前記圧縮システム
    が、取外し可能ボリュームの構成情報に従って初期化さ
    れ、前記圧縮システムの構成情報が前記取外し可能ボリ
    ュームに存在しない場合には、前記圧縮システムが、固
    定ボリュームに存在する構成情報に従って初期化され
    る、前記ロードされた圧縮システムの初期化関数を実行
    するステップ、 を含む方法。
  9. 【請求項9】 前記構成情報が、前記圧縮ボリューム・
    ファイルの名前および前記圧縮ボリューム・ファイルに
    割り当てられるドライブ文字の指示を含むものである、 請求項8に記載の方法。
  10. 【請求項10】 サブシステムを含み、固定ボリューム
    および取外し可能ボリュームを備えたコンピュータ・シ
    ステムを初期化するための方法であって、 前記取外し可能ボリュームがブート・ボリュームである
    ときには、前記取外し可能ボリュームから前記サブシス
    テムをロードし、および前記サブシステムの構成情報が
    取外し可能ボリュームに存在するときには、前記サブシ
    ステムを前記取外し可能ボリュームの構成情報に従って
    初期化し、前記サブシステムの構成情報が取外し可能ボ
    リュームに存在しないときには、前記サブシステムを前
    記固定ボリュームに存在する構成情報に従って初期化す
    る、このような前記ロードされたサブシステムの初期化
    関数を実行するステップ、 を含む方法。
  11. 【請求項11】 オペレーティング・システムの圧縮シ
    ステムをインストールするコンピュータ・システムにお
    ける方法であって、 前記コンピュータ・システムのメモリに、前記圧縮シス
    テムの初期化関数をロードし、 圧縮ボリューム用に予約されたドライブ文字の個数の決
    定と前記圧縮システムのどのボリュームが搭載されるか
    の決定を行う初期化関数を実行し、 前記決定された圧縮システム用のドライブ文字の個数を
    予約し、 標準システム・デバイス・ドライバのインストールに基
    づいて搭載することができる前記決定された圧縮ボリュ
    ームを搭載し、および各非標準デバイス・ドライバのイ
    ンストール後に、前記非標準デバイス・ドライバのイン
    ストールに基づいて搭載することができる前記決定され
    た圧縮ボリュームを搭載するステップ、 を含む方法。
  12. 【請求項12】 前記初期化関数の実行後に、前記オペ
    レーティング・システムによって決定されるメモリ配置
    へ初期化コードを再配置するように、前記圧縮システム
    に指示するステップ、 を含む請求項11に記載の方法。
  13. 【請求項13】 非標準デバイス・ドライバのロードの
    完了後に、前記オペレーティング・システムによって決
    定されるメモリ配置に、前記圧縮システムの常駐部を配
    置するように、前記圧縮システムを指示するステップ、 を含む請求項11に記載の方法。
  14. 【請求項14】 前記オペレーティング・システムによ
    ってインストールされるメモリ・マネージャによって決
    定されたメモリ配置に、前記圧縮システムの常駐部を配
    置するように、前記圧縮システムを指示するステップ、 を含む請求項11に記載の方法。
  15. 【請求項15】 標準および非標準デバイス・ドライバ
    を有するオペレーティング・システムを備えたコンピュ
    ータ・システムに圧縮システムをインストールするため
    の、圧縮システムにおける方法であって、 圧縮ボリューム用に予約するドライブ文字の個数を決定
    し、 どの圧縮ボリュームが搭載されるかを決定し、 標準システム・デバイス・ドライバのインストールに基
    づいて搭載することができる前記決定された圧縮ボリュ
    ームを搭載し、および非標準デバイス・ドライバのイン
    ストール後に、前記非標準デバイス・ドライバのインス
    トールに基づいて搭載することができる前記決定された
    圧縮ボリュームを搭載するステップ、 を含む方法。
  16. 【請求項16】 前記オペレーティング・システムによ
    って指定されたメモリ配置に前記圧縮システムの一部を
    再配置するステップ、 を含む請求項15に記載の方法。
  17. 【請求項17】 コンピュータ・システムの初期化を指
    示するオペレーティング・システムを有するコンピュー
    タ・システムにおける、圧縮システム用に予約されたド
    ライブ文字と非標準デバイス・ドライバにより予定され
    るドライブ文字との競合を解消するための方法であっ
    て、 最初のドライブ文字から予約されたドライブ文字の個数
    までのドライブ文字の範囲を、圧縮システム用に予約
    し、 非標準デバイス・ドライバにドライブ文字を割り当て、 前記最初のドライブ文字の後のドライブ文字から前記予
    約されたドライブ文字の範囲を調整し、および前記最初
    のドライブ文字を前記非標準デバイス・ドライバに再割
    り当てするステップ、 を含む方法。
  18. 【請求項18】 前記最初のドライブ文字を前もって割
    り当てられたボリュームを、前記調整された予約範囲の
    最後のドライブ文字に再割り当てするステップ、 を含む請求項17に記載の方法。
  19. 【請求項19】 デバイス・ドライバをインストールす
    るためのコンピュータ・システムにおける方法であっ
    て、 標準デバイス・ドライバを前記コンピュータ・システム
    にインストールし、 前記標準デバイス・ドライバのインストール後に、予め
    定められたファイル名をもち、かつ、初期化関数と交換
    関数を有するファイルからロードされるデバイス・ドラ
    イバを、前記コンピュータ・システムのメモリにロード
    し、 前記デバイス・ドライバ用のドライブ文字を割り当てる
    前記初期化関数を呼び出し、 ドライブ文字を割り当てられる非標準デバイス・ドライ
    バをコンピュータ・システムにインストールし、および
    前記デバイス・ドライバと前記非標準デバイス・ドライ
    バとに割り当てられたドライブ文字を交換する前記交換
    関数を呼び出すステップ、 を含む方法。
  20. 【請求項20】 標準デバイス・ドライバおよび予め定
    められたドライブ文字の割り当てを予定するように構成
    されている非標準のデバイス・ドライバを備えたコンピ
    ュータ・システムにおける、圧縮システムをインストー
    ルするための方法であって、 圧縮システムのデバイス・ドライバをロードし、 前記圧縮システムのデバイス・ドライバに予め定められ
    たドライブ文字を割り当て、 前記非標準デバイス・ドライバをインストールし、前記
    非標準デバイスに前記予め定められたドライブ文字とは
    異なるドライブ文字を割り当て、および前記非標準デバ
    イス・ドライバが前記予め定められたドライブ文字に割
    り当てられるように、前記非標準デバイス・ドライバと
    前期圧縮システムのデバイス・ドライバとに割り当てら
    れたドライブ文字を交換するステップ、 を含む方法。
  21. 【請求項21】 標準デバイス・ドライバ、圧縮システ
    ムのデバイス・ドライバおよび非標準デバイス・ドライ
    バを有するコンピュータ・システムを初期化するための
    方法であって、 前記標準デバイス・ドライバをコンピュータ・システム
    にインストールし、 前記圧縮システムのデバイス・ドライバをコンピュータ
    ・システムにインストールし、 前記圧縮システムのデバイス・ドライバのインストール
    後に、前記非標準デバイス・ドライバが前記コンピュー
    タ・システムにインストールされることを指定する構成
    情報を読み出し、 前記非標準デバイス・ドライバをコンピュータ・システ
    ムにインストールするステップ、 を含む方法。
  22. 【請求項22】 前記非標準デバイス・ドライバをイン
    ストールするステップが、圧縮システムのデバイス・ド
    ライバを介して圧縮システムにアクセスするステップを
    含むものである、 請求項21に記載の方法。
JP25563494A 1993-10-21 1994-10-20 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム Expired - Fee Related JP3993648B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/140,753 US6453363B1 (en) 1993-10-21 1993-10-21 Method and computer system for integrating a compression system with an operating system
US08/140753 1993-10-21

Related Child Applications (3)

Application Number Title Priority Date Filing Date
JP2004234626A Division JP3917612B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234624A Division JP3920882B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234625A Division JP3833677B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム

Publications (2)

Publication Number Publication Date
JPH07160622A true JPH07160622A (ja) 1995-06-23
JP3993648B2 JP3993648B2 (ja) 2007-10-17

Family

ID=22492657

Family Applications (4)

Application Number Title Priority Date Filing Date
JP25563494A Expired - Fee Related JP3993648B2 (ja) 1993-10-21 1994-10-20 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234626A Expired - Fee Related JP3917612B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234624A Expired - Fee Related JP3920882B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234625A Expired - Fee Related JP3833677B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2004234626A Expired - Fee Related JP3917612B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234624A Expired - Fee Related JP3920882B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234625A Expired - Fee Related JP3833677B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム

Country Status (5)

Country Link
US (3) US6453363B1 (ja)
EP (1) EP0650120B1 (ja)
JP (4) JP3993648B2 (ja)
CA (1) CA2117845C (ja)
DE (1) DE69425937T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988174B1 (en) 1999-03-18 2006-01-17 Matsushita Electric Industrial Co., Ltd. Method of creating a plurality of partitions on removable device

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907703A (en) * 1996-05-08 1999-05-25 Mijenix Corporation Device driver for accessing computer files
US5787019A (en) * 1996-05-10 1998-07-28 Apple Computer, Inc. System and method for handling dynamic changes in device states
US5835737A (en) * 1996-05-10 1998-11-10 Apple Computer, Inc. Method and apparatus for arbitrating access to selected computer system devices
US5822582A (en) * 1996-07-19 1998-10-13 Compaq Computer Corporation Boot drive selection and hibernation file detection
US6442753B1 (en) * 1997-08-28 2002-08-27 International Business Machines Corporation Apparatus and method for checking dependencies among classes in an object-oriented program
US6370641B1 (en) * 1999-01-26 2002-04-09 Dell Usa, L.P. Method and apparatus for determining the drive letter assignment of a CD-ROM drive during initial system setup of a computer system
US6493822B1 (en) * 1999-09-16 2002-12-10 International Business Machines Corporation Foreign drive determination and drive letter conflict resolution
US6751719B1 (en) 2000-10-26 2004-06-15 International Business Machines Corporation Method and an apparatus to dynamically order features and to resolve conflicts in a multiple-layer logical volume management environment
US7120786B2 (en) * 2002-06-17 2006-10-10 Microsoft Corporation Booting from a compressed image
US7743102B1 (en) 2002-11-15 2010-06-22 Stampede Technologies, Inc. System for selectively and automatically compressing and decompressing data and enabling compressed data to be rendered in a pseudo-native form
US7266679B2 (en) * 2003-05-01 2007-09-04 Dell Products L.P. System and method for reducing instability in an information handling system
US8701023B1 (en) * 2006-02-16 2014-04-15 Cypress Semiconductor Corporation Global parameter management graphical user interface (GUI) for embedded application design
KR20080072202A (ko) * 2007-02-01 2008-08-06 삼성전자주식회사 데이터 처리 방법 및 데이터 처리 장치
FR2923924B1 (fr) * 2007-11-15 2011-01-07 Oberthur Card Syst Sa Procede et dispositif de detection et de resolution d'un conflit dans la gestion des peripheriques d'un ordinateur.
US20110047614A1 (en) * 2009-08-19 2011-02-24 Chi-Feng Huang Permission management system for data accessing and method thereof
US9582513B2 (en) 2013-12-08 2017-02-28 Microsoft Technology Licensing, Llc Accessing data in a compressed container through dynamic redirection

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH056268A (ja) * 1991-06-28 1993-01-14 Toshiba Corp コンピユータシステム
JPH05100827A (ja) * 1991-10-09 1993-04-23 Kyocera Corp パーソナルコンピユータ

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210875A (en) 1989-08-25 1993-05-11 International Business Machines Corporation Initial bios load for a personal computer system
US5136713A (en) 1989-08-25 1992-08-04 International Business Machines Corporation Apparatus and method for decreasing the memory requirements for bios in a personal computer system
GB9012949D0 (en) 1989-08-25 1990-08-01 Ibm An apparatus and method for loading bios from a diskette in a personal computer system
US5557799A (en) * 1990-03-22 1996-09-17 International Business Machines Computer determination of operating system or data
US5136711A (en) 1990-10-17 1992-08-04 Ast Research System for multiple access hard disk partitioning
EP0483865A3 (en) * 1990-11-02 1992-09-02 Kabushiki Kaisha Toshiba Personal computer capable of changing boot priority
EP0489227B1 (en) * 1990-12-06 1998-12-23 Tandberg Data Asa Data storage system having removable media and equipped to download a control program from the removable media
US5265252A (en) * 1991-03-26 1993-11-23 International Business Machines Corporation Device driver system having generic operating system interface
US5291585A (en) * 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
US5414850A (en) * 1991-08-23 1995-05-09 Stac Electronics, Inc. System for transparently compressing data files in a computer system
US5355498A (en) 1992-02-25 1994-10-11 Sun Microsystems, Inc. Method and apparatus for booting a computer system without loading a device driver into memory
US5455577A (en) 1993-03-12 1995-10-03 Microsoft Corporation Method and system for data compression
US5418918A (en) 1993-09-10 1995-05-23 Compaq Computer Corp. Scanning initial CD-ROM sectors for a boot record and executing said boot record to load and execute floppy disk image corresponding to the existing floppy drive

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH056268A (ja) * 1991-06-28 1993-01-14 Toshiba Corp コンピユータシステム
JPH05100827A (ja) * 1991-10-09 1993-04-23 Kyocera Corp パーソナルコンピユータ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988174B1 (en) 1999-03-18 2006-01-17 Matsushita Electric Industrial Co., Ltd. Method of creating a plurality of partitions on removable device

Also Published As

Publication number Publication date
CA2117845C (en) 2004-12-14
JP2005050359A (ja) 2005-02-24
JP3993648B2 (ja) 2007-10-17
DE69425937T2 (de) 2001-01-18
US5815705A (en) 1998-09-29
CA2117845A1 (en) 1995-04-22
US6453363B1 (en) 2002-09-17
US20030023772A1 (en) 2003-01-30
JP2005011371A (ja) 2005-01-13
JP3920882B2 (ja) 2007-05-30
DE69425937D1 (de) 2000-10-26
EP0650120A3 (en) 1997-10-01
EP0650120A2 (en) 1995-04-26
JP3833677B2 (ja) 2006-10-18
US6618768B2 (en) 2003-09-09
EP0650120B1 (en) 2000-09-20
JP3917612B2 (ja) 2007-05-23
JP2005011370A (ja) 2005-01-13

Similar Documents

Publication Publication Date Title
JPH07160622A (ja) 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
US5933846A (en) Rewritable ROM file device having read/write buffer access control via copy of rewritable area
JP4689828B2 (ja) ブート可能記憶媒体を作成する方法、複数のエミュレーションを有するブート可能記憶媒体を含むコンピュータ・システム、およびコンピュータ使用可能媒体
US6308264B1 (en) Dual use master boot record
US6282647B1 (en) Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
US5136711A (en) System for multiple access hard disk partitioning
KR101121641B1 (ko) 시스템 동작 제어 장치 및 방법
KR19990036566A (ko) 컴퓨터기억장치의논리적드라이브의파티션맵핑갱신시스템 및 방법
EP1378830B1 (en) Operating system selector and data storage drive
US6718373B1 (en) Method and system for installing files in a computing system
US6658563B1 (en) Virtual floppy diskette image within a primary partition in a hard disk drive and method for booting system with virtual diskette
JP2000207176A (ja) 手近にない読取り/書込みハ―ドドライブ区分を有する図形のユ―ザインタ―フェイス(gui)を起動しかつ実行するコンピュ―タシステムおよび操作方法
JPH11175378A (ja) Ramディスクを使用するためのシステムおよび方法
US6785787B2 (en) Computing system and method for preparing a computer-readable medium
KR100637983B1 (ko) 컴퓨터시스템 및 컴퓨터판독가능매체의 제조방법
JPH06202944A (ja) データ処理システムにおけるメモリの拡張方法及びシステム
JP2000163255A (ja) コンピュ―タ読取り可能媒体にアクセスするためのコンピュ―タシステムおよび方法
KR940005773B1 (ko) Rom 디스크와 ram 디스크가 기능적으로 결합된 디스크 화일을 제어하기 위한 메모리 액세스 제어장치 및 방법
JP2002024024A (ja) 異なる操作モードを利用してアダプタ構成ルーチンを実行する方法およびシステム
JPH08263377A (ja) キャッシュメモリ管理方式
JP2002259201A (ja) 計算機システムの起動方法
JPH08263364A (ja) メモリ管理方法及びメモリ管理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040824

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040830

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040924

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20061108

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070727

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100803

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110803

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110803

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120803

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130803

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees