![Linux 重启时神奇数字的用途是什么?](https://linux22.com/image/1376514/Linux%20%E9%87%8D%E5%90%AF%E6%97%B6%E7%A5%9E%E5%A5%87%E6%95%B0%E5%AD%97%E7%9A%84%E7%94%A8%E9%80%94%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
在Linus Torvalds 的维基百科页面,其中规定:
Linux 内核的重启系统调用接受他们的出生日期(以十六进制表示)作为魔法值。
Linux 函数的文档reboot()
显示它需要两个神奇数字,magic
然后magic2
重新启动。
谷歌搜索揭示了大量有关魔法数字的信息,但没有具体说明它们的用途是什么,以及为什么函数需要传递这些值才能运行。
我真的很难解决这个问题。在我看来,魔法值只是为了传递而传递的。
任何提供的信息都值得赞赏...
答案1
魔法数字是这样的,如果内存错误会翻转系统调用号中的位,从而导致重新启动系统调用号,但不会重新启动机器,除非内存错误也恰好将参数更改为魔法数字。
虽然我没有提供任何证据,但我认为先前的解释即使不真实也是合理的。