IBMBIO.COM

IBMBIO.COM( COM ファイルのリストの先頭) IBM PC DOS 1.0 の場合。

IBMBIO.COM は、多くのDOSオペレーティングシステムに含まれるシステムファイルです。システム初期化コードとすべての組み込みデバイスドライバが含まれています。また、DOS カーネル ( IBMDOS.COM ) とオプションの事前ロード可能なシステムコンポーネント (ディスク圧縮やセキュリティ用など) をロードし、 [ 1 ] [ 2 ]ブートメニューを表示し、設定ファイル ( CONFIG.SYSなど) を処理し、シェル ( COMMAND.COMなど) を起動します。

このファイルはIBMPC DOS(すべてのバージョン)およびDR DOS 5.0以降( DR-DOS 7.06を除く)の一部です。[ 2 ] [ 3 ]これは、 MS-DOSIO.SYSファイル、またはDR DOS 3.31から3.41DRBIOS.SYSファイルと同じ目的を果たします。[ 2 ] [ 3 ](一部のDOSアプリケーションとの互換性のため、IBMBIO.COMファイル名はIBMバージョンのOS/2 1.0でも短期間使用されていました。これはMicrosoftで使用されるOS2BIO.COMファイルに似ていました。)

ファイルは、起動可能なFATフォーマットのドライブ/パーティションのルート ディレクトリ(通常は C:\) にあり、通常はシステム隠し、(DOS 2.0 以降では)読み取り専用ファイル属性が設定されています。[ 4 ] [ 5 ] [ 6 ] [ 2 ] [ 3 ] DR-DOS では、ファイルはオプションでパスワードで保護することもできます。[ 3 ] [注 1 ] PC DOS では、ファイルを移動不可としてマークするためにシステム属性が設定されていますが、この制限は DR-DOS では技術的には必要ありません。 [ 7 ] [ 5 ] [ 6 ] [ 8 ] [ 3 ] IBMBIO.COMは、真のCOMスタイルのプログラムではなく実行可能コードを含むバイナリ イメージであるため、ファイルがコマンド プロンプトで誤って呼び出されてクラッシュするのを防ぐために隠し属性が設定されています。 [ 5 ] DR-DOS 7.02以降では、この処理は不要になりました。これらのシステムでは、ファイルはファットバイナリであり、バージョン情報を表示し、ブートセクターにロードされていない場合は正常に終了する小さなCOMスタイルのスタブも含まれているためです。[ 2 ] [ 5 ] [ 9 ]

PC の起動シーケンスでは、ブート ボリュームの最初のセクターにボリューム ブート レコード(VBR)と呼ばれるブート ローダーが含まれており、メモリに読み込まれて実行されます。

これが3.3より前のPC DOSのVBRであれば、両方のシステムファイルを自身でメモリにロードする。[ 4 ] [ 10 ] PC DOSのVBRはFATファイルシステムをマウントできないため、システムファイルはディスク上の最初のディレクトリエントリに格納され、連続したセクターに格納されたディスク上の固定された物理位置に配置する必要があり、この条件はSYSユーティリティが処理する必要がある。[ 4 ] [ 10 ]

ロードされたブートセクターがPC DOS 3.3(またはそれ以降)のVBRである場合、要件は若干緩和されます。システムファイルは依然としてディスク上の最初の2つのルートディレクトリエントリに格納されている必要がありますが、VBRは最初のエントリのみを使用してIBMBIO.COMの最初の3つのセクターをメモリにロードし、制御をそこに移します。[ 10 ] [注2 ] IBMBIO.COMのこの部分には、以下の機能を持つ、やや大きなブートローダーが含まれます。

  1. 残りの部分をメモリにロードします。PC DOS 5.0より前は、システムファイルはディスク上の固定された物理位置に格納され、連続したセクターに格納される必要がありました。PC DOS 5.0(およびそれ以降)では、この要件はIBMBIO.COMの最初の3セクターのみに削減されました。[ 10 ] [注2 ]
  2. DOSカーネルをロードします。カーネルはIBMDOS.COMに保存されています。
  3. 各デフォルトデバイスドライバ(コンソール、ディスク、シリアルポートなど)を順番に初期化します。この時点で、デフォルトデバイスが利用可能になります。
  4. DOS カーネルの初期化ルーチンを呼び出します。

DR DOS 5.0以降では、最初のステップは省略されます。DR-DOS VBR は FAT ファイル システムをマウントし、ルート ディレクトリの任意の場所にあるIBMBIO.COM (またはDRBIOS.SYS ) ファイルを見つけて、それを自動的にメモリにロードできるためです。[ 7 ] [ 2 ] [ 5 ] [ 11 ] [ 8 ] [ 3 ] [ nb 3 ] [ nb 4 ]ブート セクタによってロードされるIBMBIO.COMファイルのファイル名は、必ずしも最初のルート ディレクトリ エントリではなく、ブート セクタに格納されます。同様に、 IBMBIO.COMによってロードされるIBMDOS.COMファイルのファイル名は、必ずしもディスクの 2 番目のディレクトリ エントリではなく、IBMBIO.COM自体に格納されます。 [ 12 ] [ 2 ] [ 5 ] [ 3 ]また、 VBRのIBMBIO.COMローダーと同様に、 IBMBIO.COMIBMDOS.COMローダーもファイルシステムを基礎的にマウントできるため、システムファイルを最初の2つのディレクトリエントリに格納したり、固定の物理位置に配置したり、連続したセクターに格納したりする必要がなくなりました。したがって、システム属性を設定する必要もありません。[ 7 ] [ 5 ] [ 6 ] [ 8 ] [ 3 ]代わりに、DR-DOSブートセクターが既にディスク上に存在している場合は、システムファイルをSYSなしでディスクにコピーするだけで済みます。[ 5 ] [ 6 ] [ 2 ] [ 8 ] [ 3 ]

マイクロソフトはこのコンポーネントをI/Oシステムと呼ぶこともありますが[ 4 ] [ 13 ] [ 14 ] 、一般的にはDOS BIOS( Basic Input/Output SystemのDOS関連部分)として知られています。BIOSという用語は、 1975年にゲイリー・キルドールがCP/M用に造語したものですが[ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] 、Digital Research、IBM、マイクロソフトなど他の多くのオペレーティングシステムでも同様のコンポーネントやレイヤーを指すために使用されています

より一般的な意味では、一部のベンダーは、この部分をDOSCP/MなどのオペレーティングシステムのRAM BIOSと呼び、マシンに組み込まれたROM BIOSと対比させています。[ 21 ]

参照

注記

  1. ^読み取り専用属性の設定に加えて、 DR-DOSではPASSWORDコマンドまたはSYSコマンドの一部のバージョンで利用可能なオプションを使用して、システムファイルをパスワードで保護することもできます。 [a]ブートローダーはファイルの読み込み時に設定されたファイルパスワードを無視しますが、システムの起動後はパスワードを知らないとシステムファイルにアクセスできなくなります。これにより、システムファイルの偶発的な削除や変更に対する保護が強化されます。(このファイルパスワード機能は、DR-DOSの特定の構成で提供されるボリュームパスワードやブートパスワードとは独立しています。)/R[:password]
  2. ^ a b PC DOS 5.0のマニュアルには、システムファイルが連続している必要がなくなったと誤って記載されています。しかし、ブートプロセスが機能するには、システムファイルが最初の2つのディレクトリエントリを占め、IBMBIO.COMの最初の3つのセクターが連続して保存されている必要があります。[b] SYSは引き続きこれらの要件を満たしています。
  3. ^ DR-DOS VBR がIBMBIO.COMファイル全体をメモリにという規則には例外が 1 つありますファイルが 29 KB より大きい場合、ファイル全体をメモリにロードしようとすると、ブートローダがスタックと再配置されたディスクパラメータテーブル (DPT/FDPB) を上書きすることになりますそのため DR - DOS 7.07 VBRはファイルの最初の 29 KB のみをメモリにロードし、 IBMBIO.COMの最初の部分に埋め込まれた別のローダがこの状態をチェックし、必要に応じてファイルの残りの部分をメモリにロードします。これにより互換性の問題は発生しません。内部圧縮[c] [d]により、IBMBIO.COMのサイズがこの制限を超えることはなかったからです。デュアルエントリ構造と組み合わせると、ファイルの最初の 3 つのセクターのみをメモリにロードする PC DOS VBR でシステムをロードすることもできます
  4. ^ CHSを介してFAT12およびFAT16ファイル システムをマウントし、ブート ファイルIBMBIO.COMを検索して、固定位置および連続するセクターに格納されていない場合でもメモリに全体をロードするDR-DOSボリューム ブート レコードの拡張機能[e] [f] [g] [h] [i] [j]は、 8088/8086プロセッサのみで 32 KB メモリ システムの最小要件を維持し、より大きなセクター サイズとマルチ ブート機能を引き続きサポートしながらも、アセンブリ言語7.05までの従来のコード最適化手法。 [f]代替ブートユニット、 LBA FAT32、およびDR-DOSに加えてPC DOS / MS-DOSもブートするオプション機能をさらに追加するために、 7.07セクターは、512バイトの単一物理セクター内のコードに使用可能な423バイトにすべてを詰め込むために、自己変更コードマシン語でのオペコードレベルのプログラミング、(文書化された)副作用の制御された利用、マルチレベルのデータ/コードオーバーラップ、およびアルゴリズムの折りたたみ手法に頼る必要がありました。これは、マルチブートおよびチェーンロードシナリオで他のオペレーティングシステムとの下位互換性と相互互換性を確保。SYS /DR:ext

参考文献

  1. ^シュルマン, アンドリュー;ブラウン, ラルフ D. ; マクシー, デイビッド; ミシェルズ, レイモンド J.; カイル, ジム (1994) [1993年11月]. 『Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - extending to include MS-DOS 6, Novell DOS and Windows 3.1 (第2版)』 マサチューセッツ州レディング:アディソン・ウェスリー. ISBN 0-201-63287-X(xviii+856+viページ、3.5インチフロッピーディスク) 正誤表: [1] [2]
  2. ^ a b c d e f g hPaul, Matthias R. (1997-10-02) [1997-09-29]. 「Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM - README.TXT および BOOT.TXT - OpenDOS の起動方法に関する簡単な説明」 2003-10-04 にオリジナルからアーカイブ。2009-03-29閲覧[3]
  3. ^ a b c d e f g h i Paul, Matthias R. (2017-08-14) [2017-08-07]. 「OmniBook 300 における拡張モードの Windows 3.1 の継続的な物語」 . MoHPC - HP 電卓博物館. 2017-10-06にオリジナルからアーカイブ。2017-10-06 に取得[…] DR-DOS FDISK はディスクのパーティション分割だけでなく、新規に作成されたボリュームのフォーマットとブートセクターの初期化を一度に実行できるため、誤ってボリュームを壊してしまうリスクがなく、FORMAT /S やSYSも必要ありません。その後は、システムファイルを含む残りの DR-DOS ファイルをコピーするだけで済みます。 MS-DOS/PC DOSとは異なり、DR-DOSには「スマート」なブートセクターが搭載されており、システムファイルが特定の場所に配置されていることを前提とするのではなく、ファイルシステムを実際に「マウント」してルートディレクトリ内のシステムファイルを検索・読み込みます。物理的には、システムファイルはどこにでも配置でき、断片化される可能性もあります。[…]
  4. ^ a b c d Zbikowski, Mark ; Allen, Paul ; Ballmer, Steve ; Borman, Reuben; Borman, Rob; Butler, John; Carroll, Chuck; Chamberlain, Mark; Chell, David; Colee, Mike; Courtney, Mike; Dryfoos, Mike; Duncan, Rachel; Eckhardt, Kurt; Evans, Eric; Farmer, Rick; Gates, Bill ; Geary, Michael; Griffin, Bob; Hogarth, Doug; Johnson, James W.; Kermaani, Kaamel; King, Adrian; Koch, Reed; Landowski, James; Larson, Chris; Lennon, Thomas; Lipkie, Dan; McDonald, Marc ; McKinney, Bruce; Martin, Pascal; Mathers, Estelle; Matthews, Bob; Melin, David; Mergentime, Charles; Nevin, Randy; Newell, Dan; Newell, Tani; Norris, David; O'Leary, Mike; O'Rear, Bob ; Olsson, Mike; Osterman, Larry; Ostling, Ridge; Pai, Sunil; Paterson, Tim ; Perez, Gary; Peters, Chris; Petzold, Charles ; Pollock, John; Reynolds, Aaron ; Rubin, Darryl; Ryan, Ralph; Schulmeisters, Karl; Shah, Rajen; Shaw, Barry; Short, Anthony; Slivka, Ben; Smirl, Jon; Stillmaker, Betty; Stoddard, John; Tillman, Dennis; Whitten, Greg; Yount, Natalie; Zeck, Steve (1988). 「技術アドバイザー」. MS-DOS 百科事典: バージョン 1.0 から 3.2 . 著者: Duncan, Ray; Bostwick, Steve; Burgoyne, Keith; Byers, Robert A.; Hogan, Thom; Kyle, Jim; Letwin, Gordon ; Petzold, Charles ; Rabinowitz, Chip; Tomlin, Jim; Wilton, Richard; Wolverton, Van; Wong , William; Woodcock, JoAnne(完全改訂版)。米国ワシントン州レドモンド:Microsoft Press。ISBN 1-55615-049-0. LCCN  87-21452 . OCLC  16581341 .(xix+1570ページ; 26cm) (注: この版は、撤回された1986年の初版を別の著者チームによって大幅に改訂した後、1988年に出版されました。[4] )
  5. ^ a b c d e f g hポール、マティアス R. (1997-07-30) [1994-05-01]。NWDOS-TIP — Novell DOS 7 に関するヒントとコツ、詳細、バグ、回避策を含む Blick です。 MPDOSTIP (ドイツ語) (第 3 版)。2016-11-05 のオリジナルからアーカイブ2012 年 1 月 11 日に取得(注:これはNovell DOS 7OpenDOS 7.01NWDOSTIP.TXTに関する包括的な著作であり、多くの未文書化の機能と内部構造の説明が含まれています。これは著者が2001年まで維持し、当時多くのサイトで配布していた大規模なコレクションの一部です。提供されているリンクは、HTMLに変換された古いバージョンのファイルを指しています。)[5]MPDOSTIP.ZIP
  6. ^ a b c dポール、マティアス R. (2001-04-09)。NWDOS-TIP — Novell DOS 7 に関するヒントとコツ、詳細、バグ、回避策を含む Blick です。 MPDOSTIP (ドイツ語) (第 3 版)。
  7. ^ a b c Rosch, Winn L. (1991-02-12). 「DR DOS 5.0 - より優れたオペレーティングシステムか?」 . PC Magazine . 第10巻、第3号。pp.  241– 246, 257, 264, 266. 2019年7月25日時点のオリジナルからのアーカイブ。 2019年7月26日閲覧[…] DR DOS 5.0ではSYSが改良されたため、起動可能にしたいディスクの最初のクラスターを空けておく必要はありません。DR DOSのシステムファイルはディスク上の任意の場所に配置できるため、十分な空き容量があればどのディスクでもシステムの起動先として設定できます。[…](注: ソースではこれをSYSユーティリティによるものとしていますが、実際にはこれはブート セクター内の高度なブートストラップ ローダーの機能です。SYS は単にこのセクターをディスクに植え付けるだけです。)
  8. ^ a b c dPaul, Matthias R. (2002-02-20). 「コピーできません」 . opendos@delorie .オリジナルから2017年10月6日にアーカイブ。 2017年10月6日閲覧[…] DR-DOSブートセクターは、IBMBIO.COMファイルを実行する前に、それをメモリに読み込みます。IBMBIO.COMによって読み込まれるIBMDOS.COMファイルについては全く考慮しません。[…] DR-DOSブートセクターは[…]カーネルファイルが論理的にルートディレクトリに格納されている限り、[…]カーネルファイルを見つけます。ディスク上の物理的な位置や、断片化されているかどうかは、DR-DOSブートセクターにとって重要ではありません。したがって、カーネルファイルをディスクにコピーするだけで(単純なCOPYコマンドでも)、ブートセクターがDR-DOSセクターであれば、カーネルファイルを見つけて読み込みます。もちろん、これらすべてを512バイト(1セクター分)に収めるのは難しいですが、DR-DOSシステムをセットアップする際には利便性が大幅に向上します。また、DR-DOSマルチOS LOADERユーティリティが動作するための鍵でもあります。MS -DOSカーネルファイルは特定の場所に配置する必要がありますが、DR-DOSファイルはどこにでも配置できるため、他のOSを起動するたびに物理的にファイルを交換する必要はありません。また、DR-DOSシステムをアップグレードする場合は、カーネルファイルを古いファイルにコピーするだけで済みます。SYSは不要で MS-DOS/PC DOSのような複雑なセットアップ手順も必要ありません。同じドライブに複数のDR-DOSカーネルファイルを異なるファイル名で保存することもでき、LOADERはBOOT.LSTファイルにリストされているファイル名に基づいてそれらを切り替えます。[…]
  9. ^ DR-DOS 7.03 WHATSNEW.TXT - DR-DOS 7.02 から DR-DOS 7.03 への変更点。Caldera , Inc. 1998年12月24日。2019年4月8日にオリジナルからアーカイブ2019年4月8日閲覧。[…] COUNTRY.SYS が誤ってデバイスドライバー (DEVICE=COUNTRY.SYS) と判断された場合にビルド情報を表示するスタブを追加しました。.COM プログラムとして起動された場合にも同じ情報を表示します。[…] IBMBIO.COM のサイズをさらに縮小するための2つ目の圧縮方法を追加しました。[…]
  10. ^ a b c d Chappell, Geoff (1994年1月). 「第2章 システムフットプリント」. Schulman, Andrew; Pedersen, Amorette (編). DOS Internals . The Andrew Schulman Programming Series (第1刷, 第1版). Addison Wesley Publishing Company . ISBN 978-0-201-60835-9(xxvi+738+ivページ、3.5インチフロッピーディスク[6] [7])訂正:[8] [9] [10]
  11. ^Paul, Matthias R. (2001-01-17). 「DR-DOSにおけるFAT32」 . opendos@delorie .オリジナルから2017年10月6日にアーカイブ. 2017年10月6日閲覧. […] DR-DOSブートセクターは […] IBMBIO.COM (DRBIOS.SYS) ファイルを検索し、そのファイル全体をメモリにロードしてから制御を渡します。 […]
  12. ^ Poarch, Mad (1993年4月). 「DR Multiuser DOS LOADERユーティリティによる複数のオペレーティングシステムの起動」 . Developer Support Bullets . 5 (4). Novell . 2012年3月22日時点のオリジナルよりアーカイブ。 2013年6月28日閲覧
  13. ^パターソン、ティム(1994年10月3日). 「DOSの起源:DOSの創始者がCP/MとMS-DOSの関係について語る」(PDF) .マイクロプロセッサレポート. 8 (13). MicroDesign Resources (MDR). ISSN 0899-9341 . 2012年5月31日時点のオリジナル(PDF)からのアーカイブ 
  14. ^ Paterson, Tim (2007年9月30日). 「DOSの設計」 . DosMan Drivel . 2013年1月20日時点のオリジナルよりアーカイブ。 2011年7月4日閲覧
  15. ^ Kildall, Gary Arlen (1975年6月). Lawrence Livermore Laboratories向けCP/M 1.1または1.2 BIOSおよびBDOS . Lawrence Livermore Laboratories (LLL)向けCP/M 1.1またはCP/M 1.2PL/Mソースコードに含まれるBDOS.PLMファイルヘッダーの抜粋
    […] /* CP / MBASICI / OSYSTEM (BIOS) 著作権 (C) ゲイリー・A・キルダル 1975年6月 */ […] /* 基本ディスクオペレーティングシステム (BDOS) 著作権 (C) ゲイリー・A・キルダル 1975年6月 */ […]
  16. ^ Kildall, Gary Arlen (1980年1月). 「CP/Mの歴史、産業の進化:ある人物の視点」 . Dr. Dobb's Journal of Computer Calisthenics & Orthodontia . 5 (1): 6– 7. 2016年11月24日時点のオリジナルからのアーカイブ。 2013年6月3日閲覧。 […] CP/Mの最初の商用ライセンス供与は1975年に行われ、Digital SystemsOmron of Americaの間で、同社のインテリジェント端末への使用に関する契約と、Lawrence Livermore Laboratoriesとの間で、オクトパスネットワークのプログラム監視にCP/Mが使用された契約が締結されました。その後約1年間、CP/Mにはほとんど注目が集まりませんでした。余暇には、設備全体の改善に取り組みました[…] この時までに、CP/Mは4つの異なるコントローラに適応されていました。 […] 1976年、グレン・ユーイング氏が私に問題を持ちかけました。グレン氏がコンサルティングしていたImsai社は、オペレーティングシステムを後から追加するという約束で、多数のディスクサブシステムを出荷していました。私はCP/Mをさらに別のコントローラに適合させることに多少抵抗を感じていたため、独立した基本I/Oシステム(BIOS)という概念が生まれました。原則として、CP/Mのハードウェア依存部分はBIOSに集中していたため、グレン氏をはじめとする誰もがCP/MをImsaiの機器に適合させることができました。その後、ImsaiはCP/Mバージョン1.3の配布ライセンスを取得し、これは最終的にIMDOSと呼ばれるオペレーティングシステムへと進化しました。[…]
  17. ^ Shustek, Len (2016年8月2日). 「In His Own Words: Gary Kildall」 . Remarkable People . Computer History Museum . 2020年3月24日時点のオリジナルよりアーカイブ。 2020年2月24日閲覧
  18. ^ Kildall, Gary Arlen (2016-08-02) [1993]. Kildall, Scott ; Kildall, Kristin (編). Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry (Manuscript, part 1). Kildall Family. 2016年11月17日時点のオリジナルよりアーカイブ(PDF) . 2016年11月17日閲覧
  19. ^ Killian, A. Joseph "Joe" (2001). "Gary Kildall's CP/M: Some early CP/M history - 1976–1977" . Thomas "Todd" Fischer , IMSAI .オリジナルから2020年3月24日アーカイブ。 2013年6月3日閲覧[…]オペレーティングシステムをタイムリーに開発できなかったため、GlennはGaryとCPMについて話し始めました[…] Garyに8080への移植を納得させるまで、数ヶ月かけてGaryを説得しました。最終的に成功したのは、GlennがI/Oモジュールを他の部分から分離するようGaryを説得し、IMSAI 8080用にI/Oモジュールを書き直すことを約束した時でした(そして彼はそれを実行しました)。つまり、IMSAI上のCPMはGlennとGaryの共同作業でした[…]
  20. ^ Fraley, Bob; Spicer, Dag (2007年1月26日). 「ジョセフ・キリアンの口述歴史、インタビュー:ボブ・フレイリー、編集者:ダグ・スパイサー、録音:2007年1月26日」(PDF) . カリフォルニア州マウンテンビュー:コンピュータ歴史博物館. CHM参照番号:X3879.2007.オリジナル(PDF)から2014年7月14日にアーカイブ。 2013年6月3日閲覧キリアン: 「[…]グレン[…]はゲイリーと話していて、ゲイリーを説得し始めました。『おい、ゲイリー、なんでこれをIMSAIで動かせないんだ?』『I/Oが全部違うから動かないんだ』と」しかしグレンは諦めず、ついにゲイリーと交渉します。「わかった、ゲイリー。I/Oを分離してくれるなら、基本的なI/OシステムであるBIOSを書くよ」と言い、グレンはそれを「別々に分割しよう」と名付けました。 「その部分は私が書きます。プログラムに分割できるなら。」そして彼はゲイリーにそれをやらせ、グレンがその2つの部分を組み合わせて、ゲイリーのCP/MをIMSAIで動かしていました。グレンが私たちにそのことを知らせてから間もなく、ビルはゲイリー・キルドールとCP/Mのライセンス契約を交わしていました。[…] BIOSが分離されたので、8080ベースのマシンであれば誰でもBIOSを書いてこれを動かせます。そこで彼は、自ら設立したDigital Researchという会社でそれを別売りし始め、かなり成功しました。」
  21. ^ Apricot Portable - テクニカルリファレンスマニュアル. 第3巻 セクション3: ソフトウェア . ACT (International) Limited . 1984 . 2020年1月13日閲覧(228ページ)