オペレーティングシステムをロードする段階。 オペレーティングシステムの起動アルゴリズムコンピューター、POST、BootMonitorの電源を入れます
昔、私は幼い頃、研究所の研究室で大型のCM-3コンピューター(有名なPDP-11のようなもの)で働いていました。ブートストラップはこのように見えました。 ブートプログラムが打ち抜かれた短い紙テープがフォトリーダーに記入され、読み取りプロセスが開始され、そして...運が良ければ...
実は、紙テープがだんだんと古くなり、読みづらくなり、初めてコンピュータを起動できなくなったのです。 この場合、このプロセスを最後まで、時には数回繰り返す必要がありました。 リボンが完全に故障していて、マシンが「生き返る」ことを望まない場合は、フロントパネルにあるスイッチを使用して手動で一時的にブートプログラムに入る必要がありました。 ここで重要なことは、急いでミスをしないことでした。
最近のコンピューターでは、ダウンロードプロセスの大部分が自動化されていますが、それを導入する価値がないという意味ではありません。
オペレーティングシステムをロードする基本的な定義と段階
コンピューターの電源を入れる、POST、BootMonitor
コンピュータの電源を入れた後のオペレーティングシステムのロードの初期段階は、BIOS(基本入出力システム)で始まります。 BIOS設定では、優先度の高い順にブートデバイスまたは一連のブートデバイスを指定します。 ハードディスク、CD / DVD-ディスク、USB-フラッシュなど、さまざまな起動オプションとその組み合わせが可能です。
POST(電源投入時セルフテスト-電源投入後のセルフテスト)に合格するとすぐに、コンピューターのBIOSは、指定されたブートデバイスを1つずつ繰り返し、そのうちの1つに適切な特別なレコードが見つかるまで繰り返します。さらなるアクションに関する情報が含まれています。
レベル1ブートローダー。 マスターブートレコード
マスターブートレコード-マスターブートレコードは、ブートストレージデバイスの最初の物理セクターにあります。 パーティションテーブルと実行可能コードが含まれています。
MBRに格納されているプログラムの主なタスクは、ディスクのアクティブなシステムパーティションを見つけて、そのブートセクタに制御を移すことです。 したがって、OS自体がまだ直接ロードされていないため、この段階は準備段階と呼ぶことができます。
通常、システムパーティションは、OSのブートプロセスを担当するオペレーティングシステムファイルが配置されているディスク(ストレージデバイス)パーティションと呼ばれます(オペレーティングシステム自体は別のパーティションに配置できます)。 原則として、複数のシステムパーティションが存在する可能性があるため、そのうちの1つがアクティブとしてマークされます。 これは、MBRからロードされたプログラムが探しているものです。
レベル2ブートローダー。 パーティションブートセクタ
コンピューターの起動の次の段階は、PBSで記述された実行可能コード(パーティションブートセクター-アクティブパーティションのブートセクター)に制御を移すことです。 PBSは、対応するディスクパーティションの最初のセクターにあります。 PBSコードには、この段階で制御が転送されるオペレーティングシステムローダーファイルの名前が含まれています。
オペレーティングシステムをロードする初期段階。 OSブートマネージャー
元のLinuxローダーはLILO(Linuxローダー)でした。 Linuxで使用されているファイルシステムを理解できないことが主な欠点であったため、後にGRUB(GRand Unified Bootloader)ブートローダーが使用され始め、LILOの欠点が修正されました。
Windows XPなどのVistaより前のバージョンのWindowsの場合、Ntldrがロードされます。 次に、インストールされているオペレーティングシステムに関する情報を含むテキストファイルBoot.iniから情報を読み取ります。
オペレーティングシステムカーネルのロード
オペレーティングシステムをロードする最終段階は、OSカーネルをロードし、それに制御を移すことです。
数年前、私の練習でこんなに面白い事件がありました。
私は男性が自宅用のコンピューターを購入して片付けるのを手伝うように頼まれました。 当時のこの同志は引退したばかりで、その前に彼は首長として働き、ほとんどの場合、遠くから彼の秘書の机の上でコンピューターを見ました。 引退後、彼はコンピューターをマスターする時間と欲求を持っていました。 まあ、私の意見では、素晴らしい。 私たちは彼のために安価でありながら頑丈で、当時としては優れたモニターを備えたコンピューターを選びました。 私はいくつかのプログラムをインストールして構成し、それらの使用方法を示しました。 紳士はシリーズから本を手に入れました。 ダミーのためにそこに何か」そして私たちはお互いに完全に幸せに別れました。
約1週間後、病棟から電話があり、ほとんど泣きそうになり、すべてがなくなってコンピューターが機能しなくなったとのことでした。 幸いなことに、彼は自分自身を閉じ込めることはなく、正直にそれがどうだったかを話しました。 そして、こんな感じでした。 同志は彼のコンピューターの内容を調べるために登り、Cのルートで見つけました:\彼の意見では、いくつかの疑わしい「不必要な」ファイルを運転します。 彼はスペースを解放することに決め、単にこれらのファイルを削除しました。 これらはboot.ini、ntldr、ntdetectなどだと誰もがすでに推測していると思います。もう一度彼のところに行かなければならないことを除いて、状況を修正することは難しくありませんでした。
ちなみに、Windows XPの起動で問題が発生するようにするには、何も消去できませんでしたが、たとえばboot.iniのように少し「微調整」しました。
どうやらマイクロソフトはどういうわけかこのケースを発見し、そのOSの次のバージョンでブートローダーファイルをよりよく隠すことにしました。
オペレーティングシステムのロード機能WindowsVista / 7/8
WindowsVistaまたはWindows7 / 8では、ブートマネージャーはBootmgrと呼ばれます。 インストールされているオペレーティングシステムのリストは、boot.iniである単純なテキストファイルからではなく、特別なユーティリティbcdedit.exeを介してアクセスされるシステムストレージBCD(ブート構成データ)から読み取られます。
しかし、それだけではありません。 「コンピュータの管理」->「ディスクの管理」>を開きましょう。
Windows Vista / 7/8の標準インストールでは、ディスクの先頭に追加のシステム予約セクションが作成されます。 ドライブ文字は割り当てられていないため、追加の手順を実行しないと、パーティション自体とその内容がユーザーから非表示になります。 このメインセクションのステータスは「システム」と「アクティブ」であるため、削除することもできません。
Windows7ではこのようなパーティションのサイズは100MBで、そのうち約30 MBが使用されますが、Windows8ではすでに350MBであり、そのうち105MBが占有されています。 この違いは、Windows8では「リカバリ」フォルダがこのセクションに移動されたという事実によって説明されます。
「システムによって予約された」セクションの内容を見てみましょう。 これを行うには、ドライブ文字を割り当てます(例:「ディスク管理」の「W」)。 さらに、[コントロールパネル]-> [フォルダオプション]を開き、[表示]タブで、[保護されたシステムファイルを非表示にする]のチェックを外し、[隠しファイル、フォルダ、およびドライブを表示する]にチェックマークを付けます。
FAR Managerファイルマネージャーがシステムにインストールされている場合は、それを使用して表示でき、隠しファイルの表示を構成する必要はありません。
これは、「システム予約済み」セクションの内容がWindows8でどのように表示されるかです>
予想どおり、パーティションのルートにBootmgrブートローダーが表示されます。
そして、これは「ブート」フォルダの内容のどの部分がどのように見えるかです>
このフォルダーには、BCDブート構成データストアデータベースと、それに付随する言語およびフォントファイルを含むフォルダーがあります。
完全を期すために、どのパーティションがブータブルと呼ばれるかは言うまでもありません。 答えは、Windows 7のボリュームですでに図に示されています。明らかに、これはオペレーティングシステムのすべてのメインファイルが配置されているパーティションです。
まあ、ディスクパーティションの名前を覚えるのは「ずっと」の原則に従って非常に簡単です-システム1にはシステム(動作中)はありませんが、第3レベルのブートローダーがありますが、ブートローダーはありませんブートローダーがありますが、システム自体が配置されています。 当然、この「メモリ」は、いくつかのセクションがある場合にのみ機能します。 パーティションが1つしかない場合は、すぐにシステム、アクティブ、および起動可能になります。
OSのタイプ、Bootmgr、Ntldr、またはGRUBに応じて、第3レベルのブートローダーの主なタスクは、ブートディスクから読み取り、オペレーティングシステムのカーネルをロードすることです。 また、マルチブートの場合、複数のオペレーティングシステムがコンピュータにインストールされていると、第3レベルのブートローダーを使用して、コンピュータを起動するたびに必要なオペレーティングシステムを選択できます。
Microsoftが犯した典型的な間違いは、Windows Vista / 7/8の後にWindowsXPをインストールすることです。 Windows XPインストーラーは、そのパーティションをアクティブとしてマークします。その後、起動時に、MBRはこのパーティションのPBSに制御を転送し、次にNtldrに制御を転送します。 Windows XPブートローダーは、それ以降のバージョンのWindowsオペレーティングシステムについて何も認識せず、それらをロードできなくなります。 扱いは簡単ですが、この状況は経験の浅いユーザーにとっては混乱を招く可能性があります。
これに追加するものはほとんどなく、ブートメニューの編集に直接進むことができます。 から始めましょう。
コメント10件
ご意見ありがとうございます。 近い将来、特定の例を使用して、ブートエラーを修正する方法の説明を続ける予定です。 経験から、読んでいる間はすべてがはっきりしているように見えることを私は知っていますが、実際にはそれになると困難が始まります。
XPのロードに対する電源アダプタの影響については何も言いません-具体的なアイデアはありません。 Vistaのブートリカバリに関して、これが関連する場合は、投稿の最後に、このトピックに直接関連するMicrosoftサポート記事(919529)へのリンクがあります。 リカバリにはVistaインストールディスクが必要です。 管理者権限を持つコマンドラインで、以下を実行する必要があります。
X:\ boot \ bootsect.exe / nt60 all
ここで、X:はオプティカルドライブの文字です。
ただし、XPの負荷は、エディターを使用して手動で追加する必要があります。 コマンドのセットは次のようになります。
Bcdedit / create(ntldr)/ d "Microsoft Windows XP"
このコマンドが失敗した場合、次のようになります。
Bcdedit / set(ntldr)の説明「MicrosoftWindowsXP」
さらに:
bcdedit / set(ntldr)デバイスパーティション= X:
X:-XPブートローダーファイルが配置されているパーティションのドライブ文字とそのパス:
bcdedit / set(ntldr)path \ ntldr
bcdedit / displayorder(ntldr)/ addlast百合! ご提供いただいた情報は、お勧めには明らかに不十分です。 どのウィンドウとどの段階について話しているのですか? どうか明らかにしてください。
ウラジミール、こんにちは。 幸せな休日とすべての最高。
この状況では、あなたはすべてを正しく行いました-あなたは「行き詰まった」グリッチを落としました。
歌の中で歌われているように、「一枚の雨はまだ雨ではありません。 1つのスノーフレークはまだ雪ではありません」。 このようなことが二度と起こらない可能性があります。 さて、定期的な問題がローンチから始まる場合は、それを理解する必要があります。 一般に、Windows7以降は異常なシャットダウンに対して非常に耐性があります。
何をすべきか? あなた自身があなた自身の質問に答えました-定期的にデバイスの電源を切るようにしてください。 また、USB経由で外付けドライブを接続できる場合は、たとえばを使用して、システムのバックアップを確実に作成します(実際、私はかなり定期的に作成します)。
治療方法を正確に教えてください?:
「WindowsXPブートローダーは、Windowsオペレーティングシステムの新しいバージョンについて何も知らないため、それらをロードできなくなります。 治療は非常に簡単ですが、そのような状況は経験の浅いユーザーにとっては混乱を招く可能性があります。」
ラップトップでVistaの後にXPを配置しました。その結果、システムはXPの読み込みが開始され、すべてが再起動されるまで起動します。電源アダプターを(OSの読み込み中に)切断すると、すべてが正常に起動します。 セーフモードで起動する場合は、アダプタを切断する必要はありません。 それは何を打ち負かすことができ、どのように対処するのですか?
登録してください。 前もって感謝します。 ロマニーロシア人ごめんなさい。
私はラップトップを持っていて、ロードして再起動すると、Windowsがすぐにオンになりましたが、今は固定コンピューターを購入し、ダウンロードは3段階で行われます。 これらの段階を取り除く方法。 専門用語の非識字指定については申し訳ありません。
健康、アレクサンダー。
どのように理解し、防止し、そしてそれが再び起こるならば、どのようにそのような状況から正しく抜け出すか。
ノート。 Windows-7をインストールしました。 電源を入れてパスワードを入力すると、「オペレーティングシステムがありません」、つまり「オペレーティングシステムがありません」というメッセージが表示されました。 オフにしてから再びオンにすると、同じ結果が得られました。 バッテリーを取り外してしばらくすると挿入するだけで起動できました。
ただし、前夜には、誤ったシャットダウンが発生しました。フラッシュドライブとモデムは以前に切断されていませんでした。 以前は、そのような忘却も起こりましたが、そのような影響はありませんでした。
昔の「急須」に答えていただければ幸いです(おもしろい事件で紳士より10歳年上ですが、ほぼ同い年にKOMPを知りました)。
こんにちは。 私はそのような問題を抱えています、静止したコンピュータ、2台のハードドライブ、Windows10。BIOSスプラッシュ画面の後、歪んだウィンドウが表示され、コンピュータは起動しません。強制的に再起動した後、すべてが起動し、すべてが機能します。 つまり、BIOSとディスクの選択の間に何らかのエラーがあります。
オペレーティングシステムは外部メモリに保存されます。通常はハードディスクに保存されますが、フロッピーディスクに保存されることはあまりありません。 コンピュータの通常の操作では、オペレーティングシステムのメインモジュールがRAMにある必要があります。 したがって、コンピュータの電源を入れた後、ディスクからRAMへのオペレーティングシステムの自動書き換え(ロード)が組織されます。 このダウンロードの最も重要な側面は、図のフローチャートに示されています。 9.13。
米。 9.13。オペレーティングシステムをディスクからRAMにロードするためのアルゴリズム
コンピュータの電源を入れた後、画面上の数字の変化を観察します。 これらの数値は、BIOSプログラムでRAMをテストするプロセスを表しています。 RAMのセルで誤動作が検出されると、メッセージが表示されます。
機器のテストが正常に完了すると、フロッピーディスクドライブAにアクセスし、その横にある表示ランプが点灯します。 フロッピーディスクからオペレーティングシステムを起動する場合は、テスト前またはテスト中に、システムディスクをドライブAに挿入します。それ以外の場合、ディスクAにオペレーティングシステムがない場合は、次のインジケータライトで示されるように、ハードディスクにアクセスします。それに。
ブートローダーが配置されているディスクの0番目の側の0番目のセクターのRAMへの読み取り(BOOT RECORD)が開始されます。 制御はローダーに転送され、ローダーはシステムディスク上のIO.SYS拡張モジュールとMSDOS.SYSベースモジュールの存在を確認します。 指定された場所にいる場合 (CM。ご飯。 9.10)次に、それらをRAMにロードします。そうでない場合、それらが存在しないことを示すメッセージが表示されます。 この場合、再起動することをお勧めします。 再起動信号は制御を永続BIOSモジュールに移し、永続BIOSモジュールはブートブロックをディスクからRAMに書き換えます。
覚えて!にとって オペレーティングシステムの再起動メモリ内で、同時にキーを押します .
IO.SYSエクスパンダとMSDOS.SYSベースモジュールをRAMに正常にロードした後、COMMAND.COMコマンドプロセッサがロードされ、必要なドライバを接続するためのコマンドを含むCONFIG.SYS構成ファイルが処理されます。 オペレーティングシステムのベースバージョンに満足している場合は、このファイルが存在しない可能性があります。
次に、バッチファイルAUTOEXEC.BATが処理されます。 このファイルを使用して、オペレーティング環境のパラメータを設定できます。 たとえば、仮想ディスクの作成、印刷モードの変更の提供、補助プログラムのロードなどです。
注意!拡張子が.BATのファイルは、システム環境で作業するときに特別な役割を果たします。 これらには、オペレーティングシステムコマンドまたは実行可能ファイル名のコレクションが含まれています。 拡張子が.BATのファイルを起動すると、記録されているすべてのコマンドが次々と自動的に実行されます。
標準名AUTOEXEC.BATのファイルは、オペレーティングシステムがロードされた直後に、そこに配置されたコマンドの実行が自動的に開始されるという点で、.BATタイプの他のファイルとは異なります。
AUTOEXEC.BATファイルがない場合は、日付と時刻を入力するように求められます。
エンターキーを押すと、コンピューターのタイマーによって決定されるいわゆるシステムパラメーターが現在の日付と時刻として使用されます。
システムの日付と時刻をリセットする場合は、プロンプトに応答して、提供されているフォームの1つに値を入力します(例:
1997年10月25日(月日年)
7:30:10.00 RUB(時:分:秒)
AUTOEXEC.BATファイルが終了した後、このファイルが見つからない場合は、たとえば、システムディスクプロンプトが表示画面に表示されます。 C:\>。これは、ブートプロセスが正常に完了したことを示しており、アプリケーションプログラムの名前またはオペレーティングシステムコマンドを入力することで作業を開始できます。
ノート。 CONFIG.SYSファイルとAUTOEXEC.BATファイルが欠落している可能性があります。 この場合、動作環境設定はデフォルトで設定されます。
覚えて!オペレーティングシステムは、ハードディスクに永続的に保存する必要があります。
コンピュータの電源を入れるときは、すべてのフロッピードライブが開いている必要があります。
ダウンロードが完了したら、アプリケーションプログラムを含むフロッピーディスクをフロッピードライブに挿入します。
ブートローダーは、ブートストラップを実行するシステムプログラムです。多くのブートローダーは、移動とリンクも提供します。 一部のシステムでは、リンク機能を移動機能およびロード機能から分離しています。 リンクは特別なリンクプログラム(またはリンクエディタ)によって行われ、移動とロードはローダーによって行われます。
リンクは、2つ以上の別々の翻訳されたプログラムのリンクです。
再配置は、別のアドレスからロードできるようにオブジェクトプログラムを変更したものです。
ブートローダー機能:
- OPの配布;
- プログラムの移動。
- モジュールのリンク;
EP配布
プログラムの移動
モジュールの先頭から計算されるモジュール内のアドレス定数がある場合、アドレスはベースを基準にして修正されます。
モジュールのリンク
ローダーの種類
コンパイラー実行ローダー
ローダー機能を実行するための可能な方法の1つは、メモリの一部で動作するアセンブラが、割り当てられたメモリセルに直接アセンブルされるときに、マシン命令とデータを配置するアセンブラの作業の編成です。 コンパイルが完了すると、アセンブラは制御を結果のプログラムのエントリポイントに移します。 これは非常にシンプルなソリューションであり、追加の手順は不要です。 これはコンパイル実行と呼ばれ、ローダーは、アセンブルされたプログラムに制御を移す単一の命令で構成されます。
アブソリュートローダーは実装が簡単ですが、いくつかの機能があります。
- OPを配布するタスクは、プログラマーによって実行されます(OPの初期値を設定するディレクティブを使用)。
- プログラムを移動するタスクはコンパイラーによって実行されます。
- モジュールのリンク-プログラマーが決定します(600を呼び出します)。
- プログラムをOPにロードし、実行のために起動します。
利点:
- 小さいブートローダーサイズ(メモリサイズの観点から);
- コンパイルフェーズとロードフェーズの分離。これにより、モジュールの処理時間が短縮されます。
- いくつかのプログラミング言語を使用する能力。 生成されたオブジェクトモジュールの構造は同じです。
短所:
大量の作業がプログラマーにかかります。 モジュールを変更するときは、開始アドレスの変更を常に監視する必要があります。 それらの長さが変わります。
絶対ローダーオブジェクトファイルの構造
情報レコードは次のもので構成されます。
- サイン;
- 情報を転送できるOPの絶対アドレス。
- メッセージ内の情報バイト数。
- 情報のバイト;
- チェックサム;
- ナンバリング。
制御レコードは次のもので構成されます。
- サイン;
- エントリポイントアドレス。
単純なアブソリュートローダーのしくみ:
- このプログラムに十分なメモリがあるかどうかを確認します(最初のレコードを表示します)。
- プログラム本体の順次読み取りと指定されたアドレスへの配置。
- プログラム実行用のアドレスへの制御の転送。
カスタムブートローダー
サブルーチンの1つに変更が加えられたときにすべてのサブルーチンを再構築する必要をなくし、プログラマーをメモリー割り当てとサブルーチンの通信のタスクから解放するために、いわゆるローダーが開発されました。 このローダーを使用すると、複数のプログラムセグメントと1つのデータセグメント(共通セグメント)をプログラムに含めることができます。 アセンブラは各セグメントを個別に翻訳し、ローダーにセグメント間の移動と相互参照に関するテキストと情報を提供します。
このようなスキームを使用したアセンブラの出力は、オブジェクトプログラムと、このプログラムで呼び出される他のすべてのプログラムに関する情報です。 さらに、ロード中に変更する必要がある場所に関する情報(移動に関する情報)があります。 セルについて。その内容は、メモリ内のプログラムの場所によって異なります。
ソースプログラムごとに、アセンブラは出力情報としてテキスト(翻訳結果)を生成し、その前にソースプログラムでアクセスされるサブルーチンの名前のアドレスを含む分岐ベクトルが続きます。 たとえば、SQRTルーチンが最初に呼び出されるルーチンである場合、分岐ベクトルの最初のセルには記号名SQRTが含まれます。 SQRTサブルーチンへの呼び出しを含む文は、SQRTに関連付けられた分岐ベクトル要素のアドレスを示す分岐命令に変換されます。 アセンブラは、プログラムの全長や分岐ベクトルの長さなどの追加情報も渡します。 プログラムテキストと分岐ベクトルをメモリにロードした後、ローダーはベクトルで指定された各サブルーチンをロードします。 次に、ベクトルの各要素の対応するサブルーチンに移動するコマンドを入力します。 したがって、SQRTサブルーチンを呼び出すと、ジャンプベクトルの最初のセルへのジャンプコマンドが実行されます。このセルには、呼び出されたサブルーチンへのジャンプコマンドが含まれます。
2段階の制御転送を使用するこのようなロード方式は、固定コマンド形式と直接アドレス指定を備えたコンピューターでよく使用されます。
このローダーにはいくつかの欠点があります。
- 遷移ベクトルは、(別のプログラムセグメントにある)外部データのロードと保存にはあまり便利ではありません。
- 分岐ベクトルは、オブジェクトプログラムの長さを増やします。
- ローダーはプログラムセグメントで動作しますが、複数のルーチンで共有できるデータセグメントへのアクセスを容易にしません。
ブートローダーを直接リンクする
直接リンクローダーは、メモリ内のプログラムとデータを移動するための最も完全な機能を提供し、現在最も一般的です。 このようなローダーには、プログラムセグメントとデータセグメントの両方を多数使用できるという利点があり、プログラマーは他のセグメントにあるデータに完全に自由にアクセスできると同時に、個別の変換が可能です。
アセンブラ(トランスレータ)は、各プログラムおよびデータセグメントとともに次の情報をローダーに渡す必要があります。
- セグメントの長さ;
- 他のセグメントからアクセスできるすべてのセグメントシンボルとそれらの相対アドレスのリスト。
- このセグメントでアクセスされる、このセグメントで定義されていないすべての文字のリスト。
- セグメント内のアドレス定数の場所に関する情報と、それらの値を変更する方法の説明;
- 変換の結果として取得され、相対アドレスが割り当てられたマシンコード。
最も単純な形式の直接リンクローダーの欠点の1つは、プログラムが実行されるたびに、メモリの割り当て、移動、リンク、および必要なすべてのサブルーチンのロードの機能を再実行する必要があることです。 これらの問題は、コンバイナーとモジュールローダーの2つの別々のプログラムでロードを実行することで解決できます。 コンバイナの出力は、プログラムをメモリにロードできる形式のデータセットであり、ロードモジュールと呼ばれます。コンバイナにはいくつかの種類があります。 1つは、モジュール全体を構成して任意のメモリ位置にロードできるように、モジュールをメモリに移動するために必要な情報を格納する、いわゆるリンカです。 この場合、モジュールローダーはメモリの割り当てと移動の機能を実行する必要がありますが、オブジェクトモジュールとサブルーチンをリンクするという複雑な問題を解決することはできません。
ダイナミックローダー
検討した各スキームでは、必要なすべてのサブルーチンが同時にメモリにロードされると想定されていました。 ルーチンに必要なメモリの総量がマシンで使用可能なメモリより少ない場合、それは困難になります。 これらの問題は、シーケンシャルコンバイナーとローダーを使用した動的ローディングスキームを適用することで克服されます。 このスキームは、通常、異なるサブルーチンが異なる時間に必要であり、相互に排他的である可能性があるという事実に基づいています。 どのサブルーチンに他のサブルーチンへの呼び出しが含まれるかを明示的に定義することにより、相互に排他的なサブルーチンを指定する、いわゆるオーバーラップ構造(オーバーレイ構造)を定義できます。
ローディングモジュールが形成されています。 再配置可能であり、再配置テーブルが含まれている必要があります。 また、ロードモジュールの構造には、リンクに関する情報が含まれている必要があります。 ローダーにはオーバーレイマネージャーなどのパーツが含まれている必要があります。ローダーはロードモジュールから開始モジュールを正確に選択し、作業の過程で必要なモジュールのOPへのロードを整理します。
ダイナミックリンク
機械のメモリを効率的に使用するために、プログラムの実行中にサブルーチンの動的リンクがすでに実行されている場合があります。 つまり、サブルーチンは呼び出されたときにのみメモリにロードされます。 これは有益な場合があります プログラムの特定の条件下では、一部のサブルーチンはまったく必要ない場合があります。 例を考えてみましょう:
if(条件1)サブルーチン呼び出し1
if(条件2)
サブルーチン呼び出し2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
if(条件m)
サブルーチン呼び出しm
ブランチの多くはスキップされ、条件2が満たされない場合はサブルーチン2などのOPにロードする必要はありません。この場合、ローダーはプログラムと同時に動作し、リンクとリンクの機能を実行する必要があります。サブルーチンのロード。
ナレッジベースであなたの良い仕事を送るのは簡単です。 以下のフォームを使用してください
知識ベースを研究や仕事に利用している学生、大学院生、若手研究者はあなたにとても感謝しています。
V. N.Tatishchevにちなんで名付けられたVolga大学
情報通信学部
情報制御システム学科
コースワーク
分野別:「システムソフトウェア」
テーマ: " ローダ”
学生によって行われます。 IS-303
Krasnoseltsev V. NS.
先生:Trubacheva S.I.
トリヤッチ
序章
1.理論的部分
2.設計部分
2.1問題の説明
2.2問題を解決するためのアルゴリズムの開発
2.3アプリケーションプログラムをロードするためのアルゴリズムの説明
2.4OSブートアルゴリズムの説明
2.5LILOブートローダーを使用したUnixブートアルゴリズムの説明
結論
参考文献
序章
私のコースワークの関連性は、コンピューターとそのオペレーティングシステムの開発が、さまざまなブートローダープログラムの開発と並行して行われたという事実にあります。 特定のオペレーティングシステムでは、起動するために異なるブートローダーが必要です。 たとえば、マルチユーザーUnixオペレーティングシステムには、LILOローダーとさまざまなユーティリティが必要です。 オペレーティングシステムのロードはRAMに影響し、プライマリローダーとセカンダリローダーの両方が動作します。 ロード時に、ローダーがロードプロセスをバイパスまたは完了する(情報メッセージを表示する)さまざまなタイプのエラーが発生します。
ブートローダーは、複数のコンピューターと複数のオペレーティングシステムがなければ実行できないプログラムです。
1 . 理論的部分
MicrosoftOSの起動プロセス
検討しているオペレーティングシステムが何であれ、OSがコンピューターの制御を開始するには、RAMにロードする必要があります。 したがって、さまざまなOSをロードするプロセスがどのように発生するかを検討します。 ハードドライブからの起動のみに関心があるため、フロッピーディスク、CD-ROM、およびネットワーク経由での起動の詳細については考慮しません。 MS-DOSとMSWindowsから始めましょう。
ご存知のように、コンピューターの電源を入れると、POST(電源投入時自己診断)プログラムが最初に開始されます。 使用可能なメモリの量を決定し、それをテストし、他のコンポーネント(キーボード、ハードドライブなど)の存在を決定し、アダプタカードを初期化します。 画面には通常、メモリの量、テスト、検出されたデバイス(フロッピーとハードディスク、プロセッサ、COMポートなど)のリストに関するメッセージが表示されます。
テストが完了すると、POSTはInt 19hを呼び出し、ブートデバイスを見つけようとします。 検索は、セットアップBIOSで定義された順序で実行され、対応するデバイスのゼロセクターをポーリングすることによって実行されます。 ディスクが起動可能である場合、そのゼロセクターにはマスターブートレコード(MBR)が含まれます。 MBRの最後の2バイトは「マジックナンバー」です。これは、このセクターがMBRであることを示しているため、ディスクは起動可能です。 「マジックナンバー」に加えて、MBRには、すでに前述したディスクパーティションテーブルと、わずか446(0 * 1BE)バイトのボリュームを持つ小さなプログラム(プライマリローダー)が含まれています。
表2.1に、Windowsのインストール時に作成されるマスターブートセクターの構造を示します。
表2.1マスターブートセクターの構造
割り込み19hBIOSは、プライマリブートローダーをコンピュータメモリにロードし、このプログラムに制御を移します。 しかし、そのような小さなプログラムはOSをロードできません。 それができるのは、より強力なプログラム、つまりセカンダリローダーをメモリにロードすることだけです。
これを行うために、パーティションテーブルでアクティブなパーティションを探し、アクティブなパーティションの最初の論理セクターから始まるメモリにセカンダリローダーを読み込みます。 「開始」という言葉に注意してください。 重要なのは、セカンダリブートローダーの長さがシステムによって異なるということです。
セカンダリローダーは、OSの起動に必要なプログラムの最初のレイヤーをロードします。 MS-DOSの場合、ローダープログラムは700hでIO.SYSをロードし、次にMSDOS.SYSをロードして、IO.SYSモジュールのSYSINITセクションに制御を移します。
何らかの理由でディスク上にアクティブなパーティションが見つからない場合、ブートプロセスは割り込み18hを処理することによって続行されます。 このブランチ全体が使用されることはめったにありませんが、状況によっては非常に役立つ場合があります。 リモートブートでは、OSがサーバーからブートされると、この割り込みはPOSTプログラムによってネットワークカードのROMにリダイレクトされます。
大型ドライブの問題
MS-DOSおよびWindowsの最初のバージョンでは、ディスクへのアクセスは割り込み13(Int 13h)BIOSを介して編成されていました。 この場合、ディスク上のセクターのアドレス指定は、トラック上のシリンダー、ヘッド、およびセクターの番号(C / H / S)の表示に基づいて使用されました。 より正確に:
1)AH-操作の選択。
2)СР-シリンダー番号の下位8ビット。
3)CL-ビット7〜6はシリンダー番号の最上位ビットに対応し、ビット5〜0はセクター番号に対応します。
4)DH-読み取りヘッドの番号。
5)DL-ディスク番号(80hまたは81h)。
Linux自体と最新バージョンのWindowsはディスクの操作時にBIOS割り込み13を使用せず、ディスクの操作に独自のドライバーを使用するため、上記のすべての制限はOSの起動段階でのみ重要であることに注意してください。 ただし、システムが独自のドライバーを使用する前に、少なくともそれをロードする必要があります。 したがって、起動段階では、すべてのシステムがBIOSの使用を強制されます。 これにより、8 GBを超える多くのシステムの配置に制限が生じ、そこから起動することはできませんが、正常に起動した後は、はるかに大きなディスクで動作できます。 これらの制限を回避する方法を理解するには、Linuxの起動方法に関する知識が必要です。
LinuxディストリビューションのLILOブートローダー
2番目のOSのインストールを続行する前に、コンピューターの起動段階でOSの選択を整理する方法を選択する必要があります。 ダウンローダープログラムはこの問題を解決します。 この種のプログラムはいくつかあります。 Linuxについて話しているので、最初に言及するのは、Linuxディストリビューションに含まれているLILOプログラムです。
LILOは、いくつかのプログラムのセットです。ブートローダー自体、ブートローダーのインストールと構成に使用されるプログラム、およびサービスファイルです。
Linuxで実行される/ sbin / liloプログラムは、起動時に必要なすべての情報を適切な場所に書き込むために使用されます。 カーネルまたはLILO構成ファイルに変更が加えられるたびに再起動する必要があります。
LILOが起動時に必要とするさまざまなサービスファイル。 これらのファイルは通常、/ bootディレクトリにあります。 これらの中で最も重要なのは、ブートローダー自体と、カーネルの場所を指定するマップファイル(/ boot / map)です。 もう1つの重要なファイルは、LILO構成ファイルです。これは通常/etc/lilo.confです。
ブートローダー自体は、BIOS割り込みを介して最初にメモリにロードされ、Linuxカーネルまたは別のOSのブートセクターをロードするLILOの一部です。 ローダーにも2つの部分があります。 最初の部分はブートセクターに書き込み、サイズがはるかに大きい2番目の部分をロードするのに役立ちます。 両方の部分は通常、ディスクの/boot/boot.bファイルに保存されます。
LILOブートセクターは、システムのインストール中に次の場所に配置できます。
Linux形式のフロッピーディスクのブートセクタ(/ dev / fd0、...);
最初のハードディスクのMBR(/ dev / had、/ dev / sda、...);
最初のハードディスク上のLinuxファイルシステムのプライマリパーティションのブートセクタ(/ dev / hda1、/ dev / hda2、...);
最初のハードディスクの拡張パーティションにある論理パーティションのブートセクタ(/ dev / hda5、...)。 確かに、fdiskのようなほとんどのプログラムは、拡張パーティションから起動できるとは想定しておらず、アクティブであると宣言することを拒否します。 したがって、LILOには、この制限を回避するための特別なプログラム(アクティブ化)が含まれています。 ただし、Linuxディストリビューションのfdiskプログラムは、拡張パーティションをアクティブ化する機能をサポートしています。 これを行うには、-bオプションまたはBOOT変数のいずれかを使用する必要があります。
LILOブートセクターは、次の場所には配置できません。
他のファイルシステムでフォーマットされたフロッピーディスクまたはプライマリパーティションのブートセクタ。
Linuxスワップパーティションの場合。
LILOには、起動時に次のファイルも必要であるという事実に加えて、次のようになります。
-/ boot / map(/ sbin / liloの開始時に作成されます);
すべての起動可能なカーネルバージョン(起動時にカーネルバージョンを選択した場合)。
LILOを介してロードされる他のオペレーティングシステムのブートセクタ。
ロード時に発行されるメッセージ(存在する場合)
LILOが起動すると、ディスプレイに「LILO」という文字が表示されます。 この場合、各文字の出力は、LILOブートの特定のアクションまたはフェーズの完了を示します。 ダウンロードに失敗した場合は、表示されている文字数で問題の原因を判断できます。
何も出力されません-LILOのどの部分もロードされていません。 LILOがインストールされていないか、LILOが存在するパーティションがアクティブではありません
L [エラーコード]-プライマリローダーがロードされて開始されました(制御が転送されました)が、セカンダリローダーのロードに失敗しました。 2桁のエラーコードは、問題の具体的な原因を示しています。 これは通常、メディアの欠陥またはディスクジオメトリの誤った設定が原因です。 LILOがこの時点でエラーコードの無限の文字列で停止していない限り、問題は通常簡単に修正できます。
LI-プライマリローダーはセカンダリローダーをロードできましたが、実行のために起動できませんでした。 これは、ディスクジオメトリの設定エラー、または/ boot /boot.bファイルが/ sbin / liloを再起動せずに移動されたことが原因である可能性があります。
LIL-セカンダリローダーが起動しましたが、マップファイルから記述子テーブルを起動できませんでした。 これは通常、ディスクの欠陥またはディスクの形状が正しくないことが原因です。
LIL? -セカンダリブートローダーが間違ったアドレスにロードされました。 通常、ディスクジオメトリの設定エラー、または/ sbin / liloを再起動せずに/boot/boot.bを移動したことが原因で発生します。
LIL--記述子テーブルが破棄されました。 通常、ディスクジオメトリの設定エラー、または/ sbin / liloを再起動せずに/boot/boot.bを移動したことが原因で発生します。
LILO-すべてのLILOパーツが正常にロードされました。
initプロセスおよび/ etc / inittabファイル
ご存知のように、コンピューターの電源を入れてハードウェアのテストを完了した後、BIOSはブートディスクの最初のセクター(プログラムはブートローダー)から読み取られます。 このプログラムは、メインブートローダー(LILOなど)を起動します。メインブートローダーは、システムカーネルをメモリにロードします。メモリは通常、vmlinuz-x.y.z- / bootディレクトリのファイルに保存されます。
起動するとすぐに、カーネルはルートファイルシステムをマウントし、initプロセスを開始します。 initプロセスは、ブートプロセスを継続し、カーネルのブート後の初期状態から、多くのユーザーからの要求を処理するための標準状態にシステムを戻す役割を担うプログラムです。
これらの操作の正確なリストは、実行レベルと呼ばれるものによって異なります。 ランレベルは、initプロセスによって実行されるアクションのリストと、起動後のシステムの状態を定義します。 実行中のプロセスの構成。 ランレベルは単一の文字で識別されます。 LinuxOSには8つの主要なランレベルがあります。
1)システムを停止します。
2)シングルユーザーモード(特別な管理の場合)。
3)NFSを使用しないマルチユーザーモード(コンピューターがネットワークで動作していない場合は3と同じ)。
4)フルマルチプレイヤーモード。
5)使用は規制されていません。
6)通常、システムをグラフィカルモードで起動するために使用されます。
S)(またはs)-シングルユーザーモードとほぼ同じですが、Sとsは主にスクリプトで使用されます。
まず、開始後、initプロセスは/ etc / inittab構成ファイルを読み取ります。 このファイルは別々の行で構成されています。 行が#記号で始まるか空の場合、無視されます。 他のすべての行は、コロンで区切られた4つのフィールドで構成されています。
id : ランレベル : アクション : 処理する
id-行識別子。
ランレベル-ランレベル;
プロセス-プロセス;
アクション-アクション;
アクションフィールドには、プロセスフィールドで指定されたコマンドの追加条件を定義するキーワードが含まれています。 アクションフィールドの有効な値:
respawn-プロセスが終了した場合はプロセスを再開します。
1回-指定されたレベルに移動するときに、プロセスを1回だけ実行します。
待機-指定されたレベルに到達すると、プロセスが1回起動されます。
sysinit-このキーワードは、ランレベルに関係なく、システムの起動中に実行されるアクションを示します(idフィールドは無視されます)。
ブート-プロセスは、ランレベルからのシステムロードの段階で起動されます。
bootwait-プロセスはランレベルからのシステムブートの段階で起動され、initはそれが完了するのを待ちます。
initdefault-この単語がアクションフィールドに表示される行は、システムがデフォルトで実行されるランレベルを定義します。
off-この要素を無視します。
powerwait-電源が失われたときに、initプロセスがシステムを停止できるようにします。
Ctrlaltdel-ユーザーがキーの組み合わせを押したときにinitがシステムを再起動できるようにします キーボードで。
このリストは網羅的ではありません。 inittabファイルの詳細については、init(8)、inittab(5)、およびgetty(8)のマニュアルページを参照してください。
2 . プロジェクトパート
2.1問題の説明
選択したトピックに関する理論的資料を研究し、メソッドを実装するときにブートローダーのアルゴリズムを開発し(ブロック図の形式で表示)、アルゴリズムを説明する必要があります。
2.2問題を解決するためのアルゴリズムの開発
入力:ユニプロセッサシステム、アプリケーションプログラム、LILOローダー、POSTプログラム、相互排除。
図1に、「アプリケーションプログラムのロード」のアルゴリズムを示します。
図2は、「オペレーティングシステムのロード」のアルゴリズムを示しています。
2.3 アプリケーションプログラムをロードするためのアルゴリズムの説明
1)アプリケーションプログラムが起動されて実行されます。 その後、システムプログラム「ローダー」が起動します。
2)アクティベーション後、RAMのスキャンを開始して空き領域を見つけます。
3)そのようなエリアが見つかった場合、空きエリア割り当てのアドレスの開始の決定が開始されます。 次に、このアドレスに移動して、空き領域のサイズを決定します。
4)その後、実行のために起動されるアプリケーションプログラムのコードのサイズが決定されます。
5)コードのサイズとRAMの空き領域のサイズを比較します。
6)RAMにアプリケーションプログラムコードをコピーするのに十分なスペースがある場合、物理ページの仮想ページ数がページテーブルにインストールされます。 次に、アプリケーションコードがRAMにコピーされます。 そして、プロセスの終わり。
7)それ以外の場合は、アプリケーションプログラムコードの一部のためにRAMに十分なスペースがあるかどうかを確認します。 その場合、アプリケーションプログラムの完全なコードに十分なスペースがあるときに、手順を繰り返します。 ただし、コードをRAMにコピーした後、コードの一部がスワップ領域にコピーされます。
8)コードの一部に十分なスペースがない場合は、RAMをスキャンして空き領域を見つける段階に移行します。
2.4 OSブートアルゴリズムの説明(オペレーティングシステム)
1)POSTプログラムが起動します。 このプログラムの助けを借りて、使用可能なメモリがテストされ、他のコンポーネント(キーボード、ハードドライブなどのさまざまなPCデバイス)の存在が判断され、アダプタカードが初期化されます。
2)POSTプログラムの実行後、作業の結果が表示されます。
3)プログラムを19Hと呼び、ブートデバイスを見つけようとします。
4)割り込み19H BIOSはプライマリブートローダーをコンピュータメモリにロードし、このプログラムに制御を移します
5)このプログラムの能力が不足しているため、OSをロードします。 したがって、彼女はこれを実行できるより強力なプログラム、つまりセカンダリローダーを探しています。 これを行うために、パーティションテーブルでアクティブなパーティションを探し、セカンダリローダーをメモリに読み込みます。
6)セカンダリローダーは、OSの起動に必要なプログラムの最初のレイヤーをロードします。 ローダープログラムは700hにIO.SYSモジュールをロードし、MSDOS.SYSはIO.SYSモジュールのSYSINITセクションに制御を移します。
7)何らかの理由で、パーティションテーブルのディスクにアクティブなパーティションが見つからなかった場合、ブートプロセスは割り込み18hを処理することによって続行されます。
2.5ダウンロードアルゴリズムの説明Unixブートローダーの使用LILO
1)プログラム/ sbin / liloを実行して、起動段階で必要なすべての情報を適切な場所に書き込みます。 起動時にLILOに必要なサービスファイルを検索します。
2)ファイルが見つからない場合は、ダウンロードの終了に関するメッセージが表示されます。
4)プライマリローダーがセカンダリローダーのロードに失敗した場合、ロード中のエラーに関する情報メッセージが画面に表示されます。
6)プライマリローダーがセカンダリローダーを正常にロードしたが、起動に失敗した場合、ロード中のエラーに関する情報メッセージが表示されます。
7)それ以外の場合は、セカンダリブートローダーが起動します。
8)セカンダリブートローダーが正しいアドレスにロードされていることを確認します。
9)そうでない場合は、ロード中のエラーに関する情報メッセージが表示されます。
10)記述子テーブルが破損していないかどうかを確認します。 はいの場合、ロード中のエラーに関する情報メッセージが表示されます。 そうでない場合は、記述子テーブルがマップファイルからロードされます。
11)記述子テーブルの起動が成功したかどうかを確認します。 そうでない場合は、起動時に情報エラーメッセージを出力します。
12)それ以外の場合は、LILOの正常なロードに関する情報メッセージを出力します。
結論
このコース作業では、プログラムのロードのいくつかの側面が考慮されます。 ローダーの種類:移動、一次、二次など。 さまざまな動作環境でブートローダーを使用する必要性が証明されています。 アプリケーションのロード、LILOローダーを使用したブート、OSのブートなど、さまざまなブート方法について説明します。 このトピックに関する理論的資料が研究され、メソッドを実装するときにブートローダー操作のアルゴリズムが開発されました(ブロック図の形式で表示されます)。
参考文献
1.タネンバウムアンドリュー。 現代のオペレーティングシステム/タネンバウムアンドリュー。 -第2版 --SPB。:Peter、2002 .-- 1037s .:病気。 -(クラシックコンピュータサイエンス)。 -ISBN 5-318-00299-4
2. Partyka、T.L。 オペレーティングシステム、環境、およびシェル:環境のチュートリアル 教授 到着 河川。 MO / Partyka、T.L、Popov、I.I.-M。:FORUM:INFRA-M、2006.-399s。:ill。 - (専門教育)。 -ISBN 5-8199-0072-5-16-001355-5
3.オリファー、V.G。 ネットワークオペレーティングシステム:教科書。 河川大学のマニュアル。 MO / Olifer、V.G.、Olifer、N.A。 --SPb。:Peter、2003 .-- 538s .:病気。 -ISBN 5-272-00120-6
4. Trubacheva、S.I。 オペレーティングシステムでのプログラミング:方法論ガイド/ Trubacheva、S.I。 -トリアッティ:VUiT、2006年.-- 44p。
5.テレンスちゃん。 Unix / Ed用のC ++でのシステムプログラミング。 コロミツェフ。 -キエフ、2004年。
6.タケットD.、バーネットS.特別版。 LINUX / Perを使用します。 英語から -第4版 SPb 。:ウィリアムズ、2003年。
7. Ivanova G.S. C ++プログラミング/教科書。 エド。 M。:MGTU、2002年。
同様の文書
Androidシステムの一般的な特徴、その類似物の概要。 Androidを使い始めるための前提条件。 Ubuntu構成のセットアップ。 Linuxの生成を簡素化するスクリプトを作成します。 フリースケールi.MX53ボードでのプログラムのデバッグとテスト。
タームペーパー、2012年10月12日追加
ダウンロードマネージャーの特性の考察。 ダウンロードアクセラレータプラス、ダウンロードマスター、FlashGet、GetRight、ReGet、Go!Zillaの説明。 Windowsブートマネージャーの比較特性。 Unix、Linux、Macオペレーティングシステム用のプログラム。
要約追加2014年9月6日
Linuxディストリビューションの概念と構造、その起源の歴史、および主な開発者。 組み立てと設置の性質によるディストリビューションの分類、完成したバージョンの改訂。 独自のディストリビューションを作成する方法の説明。
タームペーパー、2014年4月2日追加
ロードプロセスの一般的な図、その主な段階と特徴的な機能。 一次および二次ローダー、それらの機能およびアクションの方向。 ブートセクタの可能な場所。 ディスク容量の要件。
2013年12月20日にプレゼンテーションが追加されました
オペレーティングシステムMandrivaLinuxの技術的機能の分析-フランスの会社Mandrivaによって開発されたGNU / Linuxディストリビューションキットで、ディストリビューションキットの無料の商用バージョンと企業バージョンをリリースします。 Linuxシェルのインストール手順。
2010年5月23日にプレゼンテーションが追加されました
ハードウェアとアプリケーションプログラムをリンクするオペレーティングシステムの歴史のハイライト。 Microsoft Windows Sevenオペレーティングシステムの特性、Linuxオペレーティングシステムの分析。 各オペレーティングシステムの長所と短所。
2011年5月7日に追加されたタームペーパー
ディストリビューションのインストールプログラムを開発するためのツールの選択。 そのシステムのユーザーズマニュアルに従って機能する、Gentooディストリビューション用のモジュールの実装。 さまざまなアーキテクチャでインストーラをテストします。
論文、2013年7月18日追加
Linuxシステムのロードの段階、登録。 ユーザーアカウント管理。 デバイスの命名の原則、特別なファイルの目的と使用。 ファイル管理、ファイルシステムへのアクセス、ジョブ。 基本的なLinuxファイル構造。
マニュアル、2014年11月15日追加
オペレーティングシステムのさまざまな分布の検討。 データ交換プロトコルと物理データストレージのフォーマットの研究。 StarNASネットワークストレージの一部として機能するためのLinuxベースの配布キットの開発。
2015年11月5日に追加されたタームペーパー
Linuxオペレーティングシステムをターミナルモードでロードし、ログインしてユーザーを登録する機能。 ファイルの再割り当てを実行し、それを使用してオペレーティングシステムのコマンドを操作します。 プログラムチャネル(パイプライン)の適用。
オペレーティングシステムの起動アルゴリズム
オペレーティングシステムは外部メモリに保存されます。通常はハードディスクに保存されますが、フロッピーディスクに保存されることはあまりありません。
コンピュータの通常の操作では、オペレーティングシステムのメインモジュールがRAMにあることが非常に重要であることは言うまでもありません。 このため、コンピュータの電源を入れた後、オペレーティングシステムはディスクからRAMに自動的に上書き(ロード)されます。
-オペレーティングシステムをディスク(ハードまたはフロッピー)からRAMに上書きします。コンピュータの電源を入れた後、画面に数字の変化が見られます。 これらの図は、BIOSプログラムによるRAMのテストプロセスを反映しています。 RAMのセルで誤動作が検出されると、メッセージが表示されます。
機器のテストが正常に完了すると、フロッピーディスクドライブAにアクセスし、その横にある表示ランプが点灯します。 オペレーティングシステムがフロッピーディスクから起動されている場合は、テスト前またはテスト中に、システムディスクをドライブAに挿入します。それ以外の場合、ディスクAにオペレーティングシステムがない場合は、次のインジケータライトで示されるように、ハードディスクにアクセスします。それに。
ローダーが配置されているディスクの0番目の側の0番目のセクターのRAMへの読み取り(BOOT RECORD)が開始されます。 制御はローダーに転送され、ローダーはシステムディスク上のIO.SYS拡張モジュールとMSDOS.SYSベースモジュールの存在を確認します。 それらが予約された場所にある場合は、RAMにロードされます。そうでない場合は、それらがないことを示すメッセージが表示されます。 この場合、再起動することをお勧めします。 再起動信号は制御を永続BIOSモジュールに移し、永続BIOSモジュールはブートブロックをディスクからRAMに書き換えます。
ノート!にとって オペレーティングシステムの再起動メモリ内で、同時にキーを押します<Сtгl> <АLT>
IO.SYSエクスパンダとMSDOS.SYSベースモジュールをRAMに正常にロードした後、COMMAND.COMコマンドプロセッサがロードされ、必要なドライバを接続するためのコマンドを含むCONFIG.SYS構成ファイルが処理されます。 ユーザーがオペレーティングシステムのベースバージョンに満足している場合、このファイルは存在しない可能性があります。
次に、バッチファイルAUTOEXEC.BATが処理されます。 このファイルは、オペレーティング環境のパラメーターを構成するために使用されます。 たとえば、仮想ディスクの作成、印刷モードの変更、補助プログラムのロードなどです。
ノート!拡張子が.BATのファイルは、システム環境で作業するときに特別な役割を果たします。 Οʜᴎには、オペレーティングシステムコマンドのコレクションまたは実行可能ファイルの名前が含まれています。 拡張子が.BATのファイルを起動すると、そこに書き込まれたすべてのコマンドが次々と自動的に実行されます。
標準名AUTOEXEC.BATのファイルは、オペレーティングシステムがロードされた直後に、そこに配置されたコマンドの実行が自動的に開始されるという点で、.BATタイプの他のファイルとは異なります。
AUTOEXEC.BATファイルがない場合は、日付と時刻を入力するように求められます。
エンターキーを押すと、コンピューターのタイマーによって決定されるいわゆるシステムパラメーターが現在の日付と時刻として使用されます。
システムの日付と時刻をリセットする場合は、プロンプトに応答して、提供されているフォームの1つに値を入力します(例:
1997年10月25日(月日年)
7:30:10.00 RUB(時:分:秒)
AUTOEXEC.BATファイルが終了した後、このファイルが見つからない場合は、たとえば、システムディスクプロンプトが表示画面に表示されます。 C:\>。これは、起動プロセスが正常に完了したことを示しており、アプリケーション名またはオペレーティングシステムコマンドを入力して開始できます。
ノート。 CONFIG.SYSファイルとAUTOEXEC.BATファイルが欠落している可能性があります。 この場合、動作環境設定はデフォルトで設定されます。
覚えて!オペレーティングシステムをハードドライブに永続的に保持することは非常に重要です。 コンピュータの電源を入れるときは、すべてのフロッピードライブが開いている必要があります。
起動が完了したら、アプリケーションプログラムを含むフロッピーディスクをフロッピードライブに挿入する必要があります。
プログラムによるテスト
ダウンロード 無負荷
柔軟なハードに
ディスクドライブ
読み出す フロッピーディスクから ジェスチャーで。 ディスク
ブートセクタのIO.SYS、MSDOS.SYS "
ダウンロード メッセージなし
正しい? 「システムファイルがありません」
指示。 Com「システムファイルなし」
およびCONFIG.SYSファイル