一个糟糕的USB设备是否能够崩溃无错误的Linux内核?
我知道,我的问题相当广泛,但很长一段时间我一直在想这个问题. 一点背景.我在物理实验室工作,所有实验室计算机都运行Debian(旧版本和Lenny的混合)或最近的Ubuntu 10.4 LTS.我们编写了许多自定义软件来与实验硬件和其他计算机连接. 我们有很多FPGA板可以控制实验的各个部分,它们通过USB连接到不同的计算机.在升级控制实验的计算机之后,我们开始看到运行所有激光器的计算机的崩溃/锁定.这曾经是完全稳定的. 我的问题是:如果整个计算机由于问题而锁定 即使我在软件/硬件实现中出错,要求linux内核不要惊慌是不公平的. 我自己的猜测:任何用户级应用程序都不应该崩溃整个系统,因为他们应该只能访问自己的东西. 任何设备驱动程序都成为内核本身的一部分,因此可以使其崩溃.我的推理是否合理? 奖金问题:有没有办法以某种方式隔离设备和内核,这样无论硬件出现什么愚蠢的错误,Linux都会保持愉快的运行.由于两个原因,这将非常有用: 有关此主题的任何链接和阅读材料将不胜感激.谢谢. 最佳答案
你是对的,没有特权的代码不应该关闭系统,除非有内核错误.然而,非特权和特权之间的界限与用户空间和内核不完全相同.如果用户帐户具有超级用户权限,则用户模式程序可以打开/ dev / kmem并删除操作系统的内部数据结构.
要将主内核与设备驱动程序问题隔离,请在虚拟机中运行设备驱动程序. 几个流行的VM系统,包括VMWare Workstation,支持将任意USB设备从主机转发到guest虚拟机,而无需在主机上使用特定于设备的驱动程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |