虚拟化足够快吗?

虚拟化足够快吗?

我想进入内核开发,第一个实际步骤显然是运行 Linux 内核进行开发。

我认为对我来说最好的解决方案是双启动 Windows 和 Linux,将 Linux 作为日常驱动程序和内核开发环境/测试床。我会保留 Windows 作为备份选项,看看上次运行此设置时,当我尝试安装视频驱动程序时,我如何成功地破坏了我的 Linux 系统...我希望避免从 Windows 运行 Linux,因为我不确定我有足够的处理能力来运行这两者,特别是如果我想在 Linux 中使用 IDE...

我对此设置的疑问如下:

我是否遗漏了一个根本问题:如果出现问题,Linux 可能会损坏我的 Windows 系统?我将运行我自己编辑的内核版本,我担心特别不稳定的更改可能会导致磁盘损坏,但我不知道这是否是一个相关的问题。

是否有用于在同一设备上恢复 Linux 系统的 Windows 本机工具?

如果不是,那么如果我出于恢复目的同时运行第三个操作系统,哪些 Linux 工具可用于恢复?

编辑:对于背景,我有 CS 学位(有一门操作系统课程,包括 IPC 内核模块),但我正在做恶意软件分析/RE,我想进入开发领域,主线内核开发会给我一个有竞争力的机会边缘。我想进入一些低级别的内容,其中正确性/优化被视为业务问题。安全性/速度/功效/多线程/多处理或其他形式的优化,我可以在其中运用我的低水平经验/热情。

答案1

也许您对“组合”不同操作系统(例如 Windows 和 Linux)时的不同可能性感到有点困惑。

“双启动”或“多重启动”是您和许多其他人所需要的,即使他们只启动到同一操作系统的不同版本。

使用虚拟机是有意义的,但只有在稍后,当您开始测试大量新内核和模块时才有意义。您可以启动到稳定的 Linux,然后虚拟地启动到一个或多个测试版本——甚至可以同时启动。

但第一个问题是将正在运行的 Windows 与任何其他安装分开,反之亦然。

您甚至不需要第二个磁盘,但您需要一个空闲分区,至少有几个 GB。

“(多)引导”、“引导加载程序”(grub)和“分区”是首先要在维基百科中查找的内容,然后,根据是否有 UEFI 之类的内容,您可以制定计划。


当您必须在系统上安装第二个操作系统并且必须安装新的引导加载程序时,可能会出现很多问题。但是一旦你的“grub”开始工作,你就不必担心linux和windows的干扰。

这是分区的主要思想之一:分离块设备。内核崩溃加上任何文件系统损坏都只会发生在已安装的分区上。 (你也安装 Windows 分区,但随后你就不会使用它了。)。


“恢复”主要意味着准备好可启动 USB 驱动器,以修复启动加载程序。


“如果不是,那么如果我出于恢复目的同时运行第三个操作系统,那么哪些 Linux 工具可用于恢复?”

你是什​​么意思?通常(在虚拟机之外)操作系统是一个接一个地运行的。

可启动 USB 既是“第三操作系统”,又是用于恢复目的的 Linux(或 Windows)工具。


答案2

虚拟化足够快吗?

您的机器有多旧了,它有什么处理器?:虚拟化(例如虚拟盒不会明显降低性能)。过去 10 到 20 年间几乎所有制造的处理器都有硬件支持。

我对虚拟盒子的经验是,微软Windows中虚拟盒子中的Gnu/Linux比微软Windows更快。即使在没有硬件支持的旧 CPU 上(只要我不做任何需要多个内核的事情:您需要多个内核的硬件支持。)

双启动的危险

是的,双启动可能会给其他操作系统带来问题。特别是如果您正在处理内核。

Linux 是什么,不是什么

你知道什么是什么吗?

  • 整个操作系统是Gnu/Linux(名为Linux的内核,加上操作系统的Gnu非内核部分)。然而人们通常将整个系统称为Linux。这会导致很多混乱。
  • 内核是中间的小部分(实际上是在底部,但名字的意思是中间)。这是最难的部分:你必须用 C 语言编程,任何错误都可能导致机器崩溃,停止启动,并扰乱硬盘的内容。

结束语

我建议在虚拟机中安装 Gnu/Linux。使用一下,学习命令行(shell),学习编写基本的shell脚本,学习一种对初学者有好处的语言(python相当不错),学习另一种,学习C和编写用户模式程序,开始学习内核,进行更改并测试它。

相关内容