听上去很傻,但重启电脑还真就是最好的办法

知乎日报 vczh;Xi Yang 283℃ 评论

听上去很傻,但重启电脑还真就是最好的办法

图片:Yestone.com 版权图片库

为什么重启是最管用的电脑维修招数?

vczh,专业造轮子 www.gaclib.net

其实这是因为软件写得不够好。软件是很难跟人一样可以应付所有突发事件的,所以为了让软件内部的状态恢复到正确的状态,最简单的做法就是关掉重启,因为刚刚初始化后的状态肯定是正确的吧(除非程序员太……)。等到哪一天,大家的软件都可以在任何出错的时刻无痛恢复到正确的状态的时候,就不用重启了。

为什么状态还有分正确和错误呢?这是因为写软件的人为了提高运算速度,总是要用缓存(cache)的。最简单的例子就是你有三个变量 a, b, c,要时时刻刻保证 c==a+b,c 就是 cache。哪天 c!=a+b 了,这就是你的软件(几乎都是因为写得不好,少数情况下是因为宇宙射线和谐了你的 CPU)进入了错误的状态。想把它恢复到正确的状态就要重新计算 a+b 然后保存到 c。cache 一个状态都这么麻烦,更何况是几个 G 那么大的状态?

人类的软件开发技术到达这种理想的状态有两个方法。第一个就是等谁发明一个牛逼的语言可以自动处理这些事情,第二个就是等外星人来提高我们的智商了。

Xi Yang

补充一下 vczh 的答案。

对于现代操作系统,理论上一般的软件错误是不需要重启的,因为软件运行在自己的空间,崩了也只会把自己搞砸,而不会影响周围环境。

但是,很多软件都弄个内核态的模块,有很高的权限。这个要是崩了,有的时候会把 Windows 的关键进程卡死(比如窗口管理器),有的时候干脆来个蓝屏什么的。

或者软件写的跟病毒似的,弄一群服务、进程相互监视,你杀一个它就从另外活着服务或进程重新再开一个,砍都砍不干净。

转载请注明:微图摘 » 听上去很傻,但重启电脑还真就是最好的办法

喜欢 (0)or分享 (0)
发表我的评论