linux重启中的幻数的目的是什么



在Linus Torvalds的维基百科页面上,它指出:

"Linux内核的重启系统调用接受它们的出生日期(用十六进制写成)作为神奇的值"。

Linux重新启动功能的文档显示,它需要两个神奇的数字,"magic"one_answers"magic2"也需要重新启动。

这些神奇数字的目的是什么?为什么没有它们功能就无法运行?

感谢

快速搜索问题即可得到答案;

http://www.eeggs.com/items/44291.html

为了防止重新启动()系统调用在无意中调用时,必须在前两个参数中给它传递一对魔术值。第一个魔术值是0xfee1dead。第二个神奇的价值是其中之一:

$ grep LINUX_REBOOT_MAGIC include/linux/*.h
include/linux/reboot.h:#define LINUX_REBOOT_MAGIC1 0xfee1dead
include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2 672274793
include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2A 85072278
include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2B 369367448
include/linux/reboot.h:#define LINUX_REBOOT_MAGIC2C 537993216

这些日期对莱纳斯来说意义重大;暗示您可以使用perl将它们转换为日期:

$ perl -e 'print localtime(672274793). "n";'

1991年4月21日星期日18:59:53

这是Linus第一次开始编写Linux的日期。其他日期的重要性留给读者练习;-)

最新更新