linux重新启动中的神奇数字的用途是什么?

linux重新启动中的神奇数字的用途是什么?,linux,reboot,Linux,Reboot,在Linus Torvalds的维基百科页面上,它指出: 'Linux内核的重新启动系统调用接受它们的出生日期(十六进制)作为神奇值' Linux重新启动功能的文档显示,它也需要两个神奇的数字,“magic”和“magic2” 这些神奇数字的目的是什么?为什么没有它们功能就不能运行 谢谢快速搜索一下你的问题就会得到答案 为了防止重新启动()系统调用 无意中调用时,必须在前两个参数中传递一对魔术值。第一个魔法值是0xfee1dead。第二个魔法值 是以下各项之一: $ grep LINUX_RE

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

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

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

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


谢谢

快速搜索一下你的问题就会得到答案

为了防止重新启动()系统调用 无意中调用时,必须在前两个参数中传递一对魔术值。第一个魔法值是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的日期。其他日期的重要性留给读者作为练习;-)

“这是Linus第一次开始编写Linux的日期。”哦,真的吗??没有一个头脑正常的人会认真对待这件事!你还记得你开始编写你所写的任何一个程序时的任何一次吗?我对此表示怀疑。您的程序可能没有Linux那么重要,但Linus最初并没有打算编写操作系统内核;起初,这不是一个特别重要的项目,因此他不太可能注意到他“开始编写Linux”的确切时间(精确到第二点)。这些数字的含义更为平淡。以十六进制数字表示时,它们分别等于
28121969
05121996
16041998
20112000
;第一个是莱纳斯·托瓦尔兹本人的出生日期,后三个分别是他的女儿帕特里夏、丹妮拉和塞莱斯特的出生日期。