![为什么 ubuntu 不能保护自己免受内存不足的影响](https://linux22.com/image/1103058/%E4%B8%BA%E4%BB%80%E4%B9%88%20ubuntu%20%E4%B8%8D%E8%83%BD%E4%BF%9D%E6%8A%A4%E8%87%AA%E5%B7%B1%E5%85%8D%E5%8F%97%E5%86%85%E5%AD%98%E4%B8%8D%E8%B6%B3%E7%9A%84%E5%BD%B1%E5%93%8D.png)
如果你创建一个非常简单的脚本,只需指向它自己,即:
/home/用户/loop.sh
然后在终端中执行脚本(以普通用户身份),它开始消耗越来越多的内存,直到用户会话崩溃。会话使用的所有内存都将丢失,并且 lightdm 会重新启动。
为什么 ubuntu 不能保护自己免受试图占用超过系统所能提供的内存的应用程序的侵害?
(14.04 64 位)
答案1
因为没有好的办法来做到这一点。考虑一下:
- Ubuntu 如何知道某物应该或不应该有多少内存?
- 应该预留多少呢?
- 我们首先要终止哪些应用程序?
- 如果终止应用程序意味着丢失数据怎么办?
你可以设定自己的限制有很多方法,但是对于 Ubuntu 来说,没有一个好的方法可以知道™什么你认为这是明智的行为。考虑到这可能意味着您会丢失数据,Ubuntu 会让您做出这些决定。
一般来说,如果您编写的脚本消耗了所有 RAM,那是您的责任。