Windows Phone 8 和 Windows 8:亲兄弟还是表兄弟
最近关于Windows Phone 8(WP8)有一些传言,说是 WP8 将会基于 Windows NT kernel(WinNTk) 开发。知名博客 MS Nerd 宣称完全是谣言,但是个人认为WP8完全应该基于WinNT内核开发。
首先需要澄清的一点是:WP8基于Windows 8开发与WP8基于WinNT内核开发是完全不同的两件事情。说 WP8基于 Windows 8开发意味着将会给WP8带来Windows 8的操作界面和用户体验,而微软表示目前会持续对现有WP系统进行优化,无意在短时间内引入Windows 8的用户体验。但是这与WP8是继续使用WinCE内核还是WinNT内核无关,内核所关注的是进程结构、内存管理、任务调度以及设备驱动等等,与用户体验关系不大。所以当我们耳边充斥着这些围绕着WP8,Windows 8和WinNT内核传言的时候,有一个要点需要记住就是:WP8会不会基于WinNT 内核开发。
为什么微软应当改变WP8的内核哪?从技术层面和实践操作层面上来讲都应该改变,而且长期来看收益会更多。原因在于你不可能在同样的时间内做好两件几乎相同的事情,而且还要做到相互兼容,质量相当。同时资源的消耗也是巨大的,即使是微软这样的公司也会不堪重负。还有??
Windows CE内核缺少很多现代操作系统的特性,例如SMP(多处理器支持),虽然最新的Windows CE号称支持SMP,但是这将牵涉到底层的开发,需要多个版本才能运行良好。而Windows NT内核已经可以完美支持多处理器。
在其他一些地方也是一样的,Windows NT内核已经做了很多的安全性的工作,而Windows CE从一开始被定为嵌入式系统,安全性考虑到不是很多,可以想象 如果需要持续提高Windows CE的安全性,还需要很大的代价。你还可以看到Windows Phone没有完整的磁盘加密支持,而且也没有文档的加密和解密功能,你还可能希望能加入计算机域的支持,确实基于Windows CE内核的Windows Phone也能做到,但是需要时间和资源。
再回到.NET Compact Framework,基于Windows Phone的需求,.NET Compact Framework还有很多的工作要做,例如GC回收需要大的重构,性能也需要全面调整。日前微软的研究部门已经做了一个将完整的CLR移植到ARM架构上的原型,这才是Window Phone需要的,微软不应该在Compact Framework上继续投资。如果Windows Phone 8基于WinNT 内核开发,将会有一个完整的CLR,而Compact Framework的工作仅仅只是维护。Windows 8引入了许多新的API,微软会继 续迁移这些API到Compact Framework,然后继续维护下去吗?
我们再讨论一些非常有可能在Windows Phone 8中添加的功能。首先肯定是双核支持,目前 Windows CE内核已经有了双核支持,那么为什么微软不将新的CE内核迁移到 Mango上哪?我认为有以下几个原因,第一当前CE内核的多核支持还不够好,相对于IOS和Android没有优势,而且内核的迁移还会带来非常多的不稳定因素,但是我觉得最可能的原因在于与其投入巨大资源在Windows CE内核 上下打磨,还不如利用现有的Windows NT 内核。
另外Windows Phone最大的一个抱怨是不支持第三方的原生应用程序开发,只有Silverlight和XNA。要解决这个问题,迁移至NT内核,是一个很好的选择。
将Windows Phone内核迁移至WinNT内核,另外一个重要的因素就是系统功耗与性能。长期给人的印象是Windows NT非常臃肿,而 Windows CE则非常精简,但是在过去的几年里,微软做了很多努力来重构代码,未来的 Windows 8 将会非常重视低功耗和低资源占用。具体到数字上,用 Windows NT 做内核的 WP8 可以跑在 1GHz CPU 和512 MB 内存上吗?当然可以!那么 800MHz 呢?几乎可以,而这就是 2012 年低端智能手机的硬件标准了。配置越往上走,对 Windows NT 内核就越有利。
总之,我认为Windows Phone 8应当基于Windows NT内核开发,对于微软来讲利远大于弊。但是未来到底会如何,我也不知道,但是肯定会有很 多微软人希望这样做。我唯一可以确定的是两年前原来WinNT内核的一部 分人调入了Windows Phone团 队,也许这不能说明什么,但是他们的专业知识将会有助于内核的迁移。也 许我们不需要等多久,在2012年微软的开发者大会(Mix 12)上Windows Phone 8就会被公布,所以你只需要等待4到5个月就可以知道答案了。
原文:http://hal2020.com/2011/11/04/windows-phone-8-and-windows-8-cousins-or-siblings/