Windows 10源代码泄露风波(中)

    昨日在从合肥回上海的高铁上,写了《Windows 10源代码泄露风波》的第一部分,晚上发布后,伏在书桌上竟睡着了,朦朦胧胧间,有人轻拍我肩膀,回头一看,竟是多年未见的一位好友,我赶紧请他坐下,倒一杯刚从庐山带回来的云雾茶给他喝。

    一番寒暄后,我问他可否知道近日的源代码泄露风波,他点头称是。我接着追问:“仁兄可知泄露代码到底几何?”他先伸出两根手指,又把整个手掌张开。我说:“250M?”他轻轻点头。

    我给他加了茶水后继续询问他可否见过泄露的文件,他从背包中掏出一本小册子,放到桌面,然后推到我面前,我见封面上写着两行字,第一行是Windows 10 Shared Source Kit(SSK),第二行是Microsoft Confidential。

    我如获至宝,赶紧翻开,第一页是SSK子目录列表,分别是:

    Audio

    avcore

    base

    drivers

    minkernel

    nethlk

    network

    Tests

    wlanouterloop

    在The Register的报道中,作者Chris用下面这段文字描述泄露源文件的内容:    

    “The leaked code is Microsoft's Shared Source Kit: according to people who have seen its contents, it includes the source to the base Windows 10 hardware drivers plus Redmond's PnP code, its USB and Wi-Fi stacks, its storage drivers, and ARM-specific OneCore kernel code.” 

    解释和归纳如下:

  •     PnP代码,即Plug and Play,I/O管理的核心逻辑之一。

  •     USB和Wi-Fi设备栈。

  •     存储驱动。

  •     ARM处理器相关的内核代码。

    结合Chris的描述看上面的目录列表,二者基本相合,而且互相补充。

    我继续翻看小册子,接下来是使用tree命令产生的每个目录的详情。我先翻到minkernel部分,它是从Windows 7开始使用内核分支,字面意思是小内核,是为了解决Vista内核过度膨胀而特别裁剪的版本。从微软的公开调试符号可以看出,Windows 8和Windows 10也都是使用这个分支。因此,minkernel已经成为NT内核的别称。

    在minkernel目录下,有两个子目录,分别为:

    boot

    ntos

    浏览boot目录下的内容,可以看到著名的bootmgr和osloader,后者应该就是著名的winload的源代码。看到这些内容,我不由得发出惊叹,“这一次确实还是泄露了很重要的内容啊!”在此前泄露的NT4和Windows 2000源代码里根本没有这两部分内容,因为它们是在Vista时引入的。启动部分一向敏感,boot loader虽小,但是五脏俱全,里面仿佛一个小的操作系统。微软在这方面一直保持着比较大的领先,单凭支持双机交互式调试就足以让众多开源的boot loader无地自容。

    继续看ntos部分,里面也是有两个子目录:

    io

    ke

    第一个是著名的I/O管理器,NT内核中最复杂和最有特色的部分,著名的WDM驱动模型就在其中。第二个是内核(kernel),微观意义的内核,内核中的内核。观察这个目录中的文件清单,好多熟悉的名字,ipi(处理器间通信),trap(陷阱),callout(神秘的外调机制),cxtswap(线程切换),idle(空闲线程),flushtlb(刷新页表缓存)......里面的文件有一半是.asm后缀,明显是和硬件密切相关的汇编语言部分。

    看到如此多承载底层机制的核心文件,我兴奋不已,禁不住猛拍桌子,只听哐当一响,茶杯被我打翻在地,茶水一半洒在地上,一半洒在桌子上,原来刚才做了一个梦。略微定了定神,便听老婆大喊,“把什么打翻了?这么晚了,还不睡觉?”我赶紧说没啥没啥,就来就来。

    本部分到此打住,未完待续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值