私はカーネルの開発を始めたかったのですが、最初の実際のステップは明らかにLinuxカーネルを実行して開発することでした。
私の考えの最善の解決策は、Linuxを毎日のドライバとカーネル開発環境/テストベッドとして使用して、WindowsとLinuxをデュアルブートすることです。 Windowsをバックアップオプションとして保持し、最後にこの設定を実行したときにビデオドライバをインストールしようとしたときにLinuxシステムがどのように破損したかを見てみましょう。 WindowsでLinuxを実行していないため、両方を実行するのに十分な処理能力があるかどうかはわかりません。特にLinuxでIDEを使用したい場合...
この設定に関する私の質問は次のとおりです。
私は根本的な質問を逃していますか?問題が発生した場合、LinuxはWindowsシステムを損傷する可能性がありますか?私はカーネルの編集版を直接実行する予定です。
同じデバイスからLinuxシステムを復元するためのWindowsの基本ツールはありますか?
そうでない場合、回復目的で同時に実行されている3番目のオペレーティングシステムがある場合は、回復に使用できるLinuxツールは何ですか?
編集:背景知識にはCSの学位(IPCカーネルモジュールを含むOSコースを含む)がありますが、マルウェア分析/REを実行しており、開発を開始したいと思います。メインラインカーネルの開発は競争の機会優位性を提供します。 。正確性/最適化がビジネス上の問題として扱われる低レベルの作業について学びたいです。セキュリティ/スピード/効率/マルチスレッド/マルチプロセッシングまたは低レベルの経験/情熱を適用できる他の形式の最適化。
答え1
WindowsやLinuxなどのさまざまなオペレーティングシステムを「結合」するとき、さまざまな可能性について少し混乱する可能性があります。
「デュアルブート」または「マルチブート」は、同じオペレーティングシステムの異なるバージョンでのみブートしても、あなたや他の多くの人に必要なものです。
仮想マシンの使用は合理的ですが、後で多くの新しいカーネルとモジュールのテストを開始したときにのみ可能です。安定したLinuxで起動し、同時に1つ以上のテストビルドで仮想起動できます。
ただし、最初の問題は、実行中のWindowsを他のインストールから切り離すか、その逆にすることです。
2番目のディスクも必要ありませんが、少なくとも数GBの空きパーティションが必要です。
「(マルチ)ブート」、「ブートローダー」(grub)、および「パーティション」は、ウィキペディアで最初に検索してから、UEFIのようなものがあるかどうかに基づいて計画を立てることができます。
システムに2番目のオペレーティングシステムをインストールし、新しいブートローダをインストールする必要があると、多くの問題が発生する可能性があります。しかし、「グルーブ」が機能し始めたら、LinuxとWindowsの干渉を心配する必要はありません。
これはパーティショニングの主なアイデアの1つです。分離ブロックデバイス。カーネルパニックとファイルシステムの破損は、マウントされたパーティションでのみ発生します。 (あなたできるまた、Windowsパーティションをマウントしますが、使用しません。 )。
「回復」とは、基本的にブートローダを回復するために起動可能なUSBドライブを準備することを意味します。
「そうでない場合は、回復目的で同時に実行されている3番目のオペレーティングシステムがある場合、どのLinuxツールを回復に使用できますか?」
どういう意味ですか?通常、(仮想マシンの外側)オペレーティングシステムは順番に実行されます。
起動可能なUSBは、回復目的のための「3番目のオペレーティングシステム」であり、Linux(またはWindows)ツールです。
答え2
仮想化は十分速いですか?
お使いのコンピュータはどれくらい古く、どのプロセッサを装備していますか? :仮想化(たとえば、仮想ボックスはパフォーマンスを大幅に低下させません)。過去10〜20年間製造されたほぼすべてのプロセッサにはハードウェアサポートが含まれています。
Virtual Boxの私の経験によると、Virtual BoxのGnu / LinuxはMicrosoft Windowsよりも高速です。ハードウェアサポートのない古いCPUでも(マルチコアが必要な作業を行わない限り、マルチコアのハードウェアサポートが必要です。)
デュアルブートの危険性
はい、デュアルブートは他のオペレーティングシステムで問題を引き起こす可能性があります。特にカーネルを扱う場合にはさらにそうです。
Linuxとは何ですか?Linuxとは何ですか?
何が何なのかご存知ですか?
- 完全なオペレーティングシステムはGnu / Linux(LinuxというカーネルとオペレーティングシステムのGnu非カーネル部分)です。しかし、人々は通常、システム全体をLinuxと呼びます。これは多くの混乱を招く可能性があります。
- カーネルは中央の小さな部分です(実際には一番下にありますが、名前は中央を意味します)。これが最も難しい部分です。 Cでプログラムする必要があり、誤ってコンピュータがクラッシュし、起動が中断され、ハードドライブの内容が歪む可能性があります。
結論
仮想マシンにGnu / Linuxをインストールすることをお勧めします。それを使って、コマンドライン(シェル)を学び、基本的なシェルスクリプトを書くことを学び、初心者に良い言語を学び(Pythonはかなり良い)、他のものを学び、Cを学び、ユーザーモードプログラムを書いて、カーネル学習を始めるして、変更してテストしてみてください。