アクティブなカーネルを「削除」すると、潜在的な欠点は何ですか?

アクティブなカーネルを「削除」すると、潜在的な欠点は何ですか?

私は最近アクティブなLinuxカーネルを削除し、何も起こらなかったかのようにシステムを使い続けています。現在使用しているLinuxカーネルを削除すると副作用はありますか? Windows以外のカーネルはどうですか?

答え1

Linuxカーネルは起動時にRAMに完全にロードされます。システムが起動した後は決して返されず、そのファイルから何も読み取ろうとしません。カーネルにロードされると、ドライバもロードされます。

ディスクから唯一のカーネルイメージを削除する場合、唯一の結果は、再起動する前に代替カーネルイメージをインストールしないとシステムを正常に再起動できないことです。

他のオペレーティングシステムも同じように見えますが、それはオペレーティングシステムカーネルの性質によるものです。これは意図的に常に実行される小さなコードスニペットであるため、コードを再度「表示」するためにディスクに戻り続ける理由はありません。それは記憶の中で生き続けています。 (RAMまたは仮想マシン。)

答え2

さて、適切なアクセス権があれば、皮肉なことに、カーネルは/dev/kmemRAMで実行されているカーネルを上書きするのに役立ちます。ddまたはを使用して完全に実行できますcat。カーネルパニックやシステムロックが発生する可能性があります。

特定のアドレス範囲(PCIアドレス空間など)にのみアクセスを許可するカーネルオプション「netuers」があります/dev/kmem。これはほとんどのディストリビューションのデフォルトカーネルで有効になっているため、実際のシステムではこれを実行できない可能性があります。カーネルを直接コンパイルしない限り。しかし...これを試してください。ブラウザで完全にJavascriptで実行されるLinuxインスタンスcat /dev/zero > /dev/ram- 実際のシステムでも同様のことが起こります。

kexecただし、Linuxでは、別のカーネルにロードしてから実行して、現在実行中のカーネルを上書きする(オプション)という機能を提供しています。これを安全に行うには、ドライバ/デバイス/ファイルがアクティブでない間に実行する必要があります。つまり、システムは「スイッチ」の前にシャットダウンしたかのようにシャットダウン手順を実行し、すべてのディスクをマウント解除する必要があります。 BIOSを介さずにシステムを再起動するために使用できます。実行中のシステムを好む場合は、これらのすべての予防措置だけでなく、kexecカーネルまたはコードを完全に無視することもできます。正しくシャットダウンせずに電源を切るのと同様の損傷の危険があります。

関連情報