魔数的由来

a.out格式的魔数为0x010x07,为什么会规定这个魔数呢?

Unix早年是在PDP小型机上诞生的,当时的系统在加载一个可执行文件后直接从文件的第一个字节开始执行,人们一般在文件的最开始位置放一条跳转(jump)指令,这条指令负责跳过接下来的7个机器字的头文件到可执行文件的真正入口。而0x01 0x07这两个字节刚好是当时PDP-11的机器的跳转7个机器字的指令。为了跟以前的系统保持兼容性,这条跳转指令被当作魔数一直保留到了几十年后的今天。