使用虚拟机开发/测试 linux 模块是否安全?

ent*_*iac 22 linux virtual-machine kernel-modules

我在一个操作系统类。接下来,我们必须做一些修改内核代码的工作。我们被建议不要使用个人机器进行测试(我想这意味着安装它),因为我们可能会写出错误的代码并在我们不应该写的地方重写。为了安全起见,我们可以使用实验室中的机器。

如果我要使用 VM 进行测试,是否可以保护主机系统免受潜在不安全代码的影响?我真的不想被困在学校的系统中,快照会很有用。

如果它仍然是高风险,关于我需要考虑什么来安全测试的任何建议?

我们将使用 linuxmint 之类的东西开始。如果有人想查看当前项目中的内容:http : //www.cs.fsu.edu/~cop4610t/assignments/project2/writeup/specification.pdf

小智 30

开发内核模块的主要风险是,与使用常规代码相比,您的系统更容易崩溃,而且您可能会发现有时会创建无法卸载的模块,这意味着您必须重新启动才能重新加载在你解决问题之后。

是的,VM 非常适合这种开发,而且我在处理内核模块时使用它。VM 很好地将您的测试环境与正在运行的系统隔离开来。

如果您要拍摄和恢复快照,您应该将源代码签入到VM外部的版本控制存储库中,这样在丢弃 VM 的当前状态时就不会意外丢失最新代码。

  • 或者可能只对 VM 的某些方面进行快照。例如,将源代码保存在单独的虚拟磁盘上。当然,无论如何,您可以定期检入代码的 VM 外源代码存储库是个好主意;它可以使您免于许多令人尴尬的错误,并且可以教授良好的编码实践。 (4认同)

Hac*_*Saw 14

假设您没有尝试为实际硬件编写驱动程序,这是处理模块的好方法。你可以对工作系统进行快照,如果你搞砸了,就回到快照。

如果可以的话,制作一个完整的 VM 副本,以防万一快照系统比我想象的更奇怪。:)