前言

前言

魔数,对于大部分人都是魔法!
打开网易新闻 查看精彩图片
魔数,对于大部分人都是魔法!

在编程的世界里,有很多很神奇的数字,比如PE的23117(0x5A4D),除法中的1717986918.4(0x66666667)等,很多业内人士叫他们魔数。之所以叫魔数,是因为这些数字的确像有魔法一样,在一些算法和校验领域,发挥着至关重要的作用,却又不可言说。

魔数因其难以理解的作用和高效,常被程序员用于标榜和巩固自己在项目甚至单位中的地位。传说中的祖先代码里,便充斥着各种魔,在与老板斗智斗勇的故事里,常常扮演着崖洞秘诀的角色。

其实很多时候,魔数的本质是代码优化的结果,一定程度上能够代表技术的段位。但也不乏一些伟大的程序员,在自己的作品中标上『谁谁谁到此一游』或『谁谁谁乃XXX之父』的畅快。

比如著名的ZIP压缩格式,就是由Phil Katz创建,其格式签名符"PK"即为该作者名字的缩写。那本文要讲的“MZ”其实也一样,是另一个伟大程序员的名字,他就是Mark Zbikowski,让我们一起来围观背后的故事吧。

一、系统和应用程序都是由可执行文件构建起来的

一、系统和应用程序都是由可执行文件构建起来的

没有EXE,双击个什么鬼?
打开网易新闻 查看精彩图片
没有EXE,双击个什么鬼?

1、双击运行,对于每一个使用 PC的人来说,都已经形成了肌肉记忆。对于非编程的普通用户而言,可执行文件和非可执行文件,并没有什么区别,也不需要关心它们之间的区别。但对编程用户而言,可执行文件才是眼里的光。

还记得《办公想转国产货,二开双管齐下,奈何WPS实力劝退啊》和《WPS二次开发逻辑,及其版本选择》中曾提到的安装选项么?安装了WPS后,WPS就接管了Office,成为默认打开程序。很多用户对此大为困惑,以为WPS与Office不兼容,只能二选一。其实,就是覆盖了相关关联设置而已。

因为,利用注册表,就可以将文件扩展名与指定应用程序关联。普通用户在非可执行文件上双击,就会自动关联到可执行文件,并启用其载入打开相应的文件。关注BtOfficer,来一键兼容,既能Office,也能WPS,VB/VBA可以通吃啦。

所以,无论是否为程序员,其实利用计算机工作,实质上都是依靠可执行文件,提供的交互功能来进行的。

记事本能开万物,EXE必以MZ开头
打开网易新闻 查看精彩图片
记事本能开万物,EXE必以MZ开头

2、双击后,系统是怎么知道指定的文件可以装载运行呢?这就需要到可执行文件内部去看看了,怎么看呢?在Windows系统中,记事本作为一款纯文本编辑器,虽然没啥卵用,但能打开任何格式的文件。正因为如此,历代Windows中,记事本的地位雷打不动。

用记事本打开任何一个可执行文件(不仅exe,dll、ocx、sys等扩展名对应的都是可执行文件,都遵循PE格式),我们看到前两个字符都是"MZ"。系统便可以通过该特征来初步判断文件是否为1个可执行文件。

"MZ"(23117或0x5A4D)便是被称为可执行文件的MagicNumber,也即魔数。

二、MZ何许人也?难道比盖茨还能耐?为何独占可执行文件中的前两字节?

二、MZ何许人也?难道比盖茨还能耐?为何独占可执行文件中的前两字节?

既然可执行文件是系统的重要组成,那就不得不回到系统的历史上来,尤其是Windows这种以兼容著称的通用系统。在《VB前传,从教学到游戏,再到系统,似乎每步都是精心设计》中,重提那段被尘封的历史,有BASIC,更有DOS系统。

"MZ"这个魔数便是PE之DOS_HEADER的首成员,与DOS系统兼容密切相关。在DOS系统十多年的历史上,有两位突出的贡献者,MZ便是其中之一。

Tim Paterson,初代DOS的缔造者!
打开网易新闻 查看精彩图片
Tim Paterson,初代DOS的缔造者!

说起DOS,就不得不说另一位开创人,Tim Paterson,就图上这位。

Tim Paterson的历史地位
打开网易新闻 查看精彩图片
Tim Paterson的历史地位

Tim Paterson不仅奠定了MSDOS的初始模样,更主要的贡献是为微软榜上IBM这棵大树提供了物件基础。

唯有左边这位的大名,配得上在Win里无处不在!
打开网易新闻 查看精彩图片
唯有左边这位的大名,配得上在Win里无处不在!

真正让DOS走向成熟和强大的,让微软走上PC系统霸主的,正是图上左边的这位。他便是Mark Zbikowski(MZ),一个真正低调的王者,低调到甚至都搜索不到他更多的照片,他的名号却在PC中无处不在。

MZ,于1981年加入微软,是微软第55号员工。与鲍尔默是老相识,在哈弗与盖茨是同学。在1982年,便取代Tim Paterson,成为MSDOS2.0-4.0的开发经理。在微软和IBM的合作时期起到过重要作用。

MZ,主要技术贡献:参与并主导了DOS分级文件系统OS/2可安装文件系统的开发,主导了Cairo及OFS文件系统的开发,其中很多模块在Windows 2000和其他产品中得到保留。他更是Windows NT内核的开发成员之一,还主导开发了NTFS

2006年6月,MZ从微软退休,是除创办人盖茨和鲍尔默外首个服务满25年的员工。对微软有如此重要的贡献,当然值得放在首位予以纪念!

欢迎关注BtOfficer,让我们一起挖掘更多有意思的技术内幕!