2011-06-09 1 views
0

私はthis very interesting q/a about how computers rebootを読んでいますが、OSの開発についてはあまりよく分かりませんが、部分的にシステムをシャットダウンしてから、その時点から起動することができますか?OSを部分的にシャットダウンしてから、起動して機能している状態に戻ることは可能でしょうか?

私はシャットダウン時に出力を正しく読んでいる場合たとえば、Linux上で、それは少しこのように書きます:

  1. は、すべてのプロセスにKILL /終了送信します。
  2. シャットダウンサービス/デーモン
  3. パワーオフ。

そして、起動シーケンスビットのようになります:[スタート]だから

を処理

    1. BIOS、ブートローダ
    2. ロードカーネルとモジュール
    3. スタートサービス/デーモンを2時に終了するまでシャットダウンしてから、3時以降にバックアップを開始できますか?基本的に私はこれがプロセスとデーモンをリセットして、カーネルをメモリに保持して、通常の(再)ブート時のカーネルのロード時間を節約すると考えています。

  • 答えて

    3

    Linuxにinitと入力します。 /sbin/initの目的は、システムV init、upstartまたはsystemdであり、これらのプロセスのすべてを正確に起動しています。これらのinitユーティリティには、それらの下で実行するサービスを管理する機能があります。

    さて、Linuxシステムはまた、すなわち、ランレベルの概念を持っています

    0 = shutdown 
    1 = single user recovery mode, no networking 
    2 = ? 
    3 = multi user networking no X 
    4 = ? 
    5 = multi user networking X 
    

    ? 1つは厳密に定義されていません。とにかくrootにsuを入力して今すぐinit 3と入力すると、Linuxを使用していると仮定すると、Xとすべてのクライアントが終了します。もちろん、特定のランレベルで何かが許可されていると、それは強制終了されませんが、特定のプロセスがリブートするだけの場合は、これは非常にうまくいきます。システムデーモンを再起動するためのユースケースは、アップデートに対応しており、最近ほとんどのパッケージマネージャは、あなたのinitscriptツールを使ってこれを実際に実行します。

    GUI全体を再起動できるので、すべてのデーモンを再起動できます。私たちは他のプロセスも殺すことができます。ハードウェアドライバのリロード?私はすでにmodprobe経由でそれを行うことができます。そのため、グラフィックスドライバの更新を飾るならば、私はinit 3を削除し、古いものを削除し、新しいものを挿入して持ち運びます。

    あなたのパッケージマネージャーはシステムデーモンを再起動する方法を知っています。あなたはいつでもログアウトして元に戻すことができます。したがって、Linuxは既にアップデートの再起動を避けるという点でかなり効率的です。カーネル

    を「再起動」

    だから基本的に、私は、Linuxのほとんどは、実際に再起動せずに「再起動」することができると思いたいです。今は何が残っていますか?

    1. カーネルを再ロードできません。
    2. 私は簡単にルートファイルシステムをアンマウントできません。私はその新たに読み込まれたユーザー空間に頼っています。免責事項:カーネルの "reload"中にinitramfsをリロードするだけでいいので、ここでは1に依存しています。

    ここで、どのようにカーネルをリロードするのですか?まあカーネルは実際に特別な魔法ではありません。メモリにコピーされた別のコンピュータプログラムなので、カーネルを書き込んで実行に渡すことができます。

    これは、そうでないと、kexecと呼ばれます。私はそれで問題を要約するwikipedia pageを残しておきます:

    ながら実現可能な、kexecを、2つの大きな課題提起などのメカニズムを実装:

    1. は、新しいカーネルが現在実行中のメモリを上書きされます1つはまだ実行中です
    2. 新しいカーネルでは、通常、すべての物理デバイスがシステムの再起動後、BIOS(またはファームウェア)が「正常」状態にリセットされたときと同様に、 )。実際の再起動をバイパスすると、デバイスは未知の状態になる可能性があり、新しいカーネルはそれを回復する必要があります。

    kexecでは、システムシャットダウンとは異なり、自動的にファイルシステムやプロセスを停止します。あなたはそれを担当しています。

    あなたはそれを持っています。リロードする必要がある部分に応じて、Linux上ではほとんどが可能です。

    0

    ほとんどのプロセッサ/コンピュータメーカーには、コンピュータが搭載できるいくつかの異なる電源状態があります。インテルは、多分汎用コンピュータのように聞こえるでしょう。

    All about System Power States (S0-S5)

    電力状態は、インテルのためにどのように機能するかについての詳細を学ぶために、どのようなシステムコンテキストは一般的になど、それぞれの状態で保存され、高いS-状態あなたに:このリンクをチェックアウト入力すると、保存する必要のあるシステムコンテキストが少なくなるため、システムがその状態を終了してS0(完全に動作可能)に戻るまでの時間が長くなります。

    「再起動」ユーザー空間(およびいくつかのハードウェア部品)

    あなたはこれらのサービスは、デーモンとプログラムが開始されているかという点でブートシーケンスから何かが欠けている:ここでのLinuxを中心に

    +0

    SU q/aは実際に私にそれに関する情報をたくさん与えてくれました。その点では大丈夫です。 –