这个问题的动机是一个我梦寐以求的梦想,在nix平台上有很多优秀的软件可以被平凡地移植到Windows上。 微软最近采取了不同的方式来开放源代码和开放,所以我真的很想知道,如果微软如此倾向,这样的事情会是多么可行。 我很好奇的一些更具体的事情是,如果可以做到不破坏向后兼容性,也许某种程度上会涉及的努力量。 如果有任何具体的技术例子会突出特定的困难做这样的事情,这也将不胜感激。
Windows已经是这样了。 NT内核本身从一开始就支持“个性”(在NT层上的API层)概念,至少支持Win32 API,POSIX API和OS / 2 API的设计。
POSIX层在高端SKU(通常是与服务器有关的)上以不同名称(Microsoft POSIX子系统/ SFU / SUA)流传很长时间,但它从未真正被非专业用途所吸引,因为它不是普遍可用的(微软从来没有真正推动它,可能出于商业原因),因为其他解决方案变得普遍(想想Cygwin / MSYS / MinGW)。
请注意,虽然“个性化API”是一个有趣的概念(也许是实现多API操作系统的最简洁的方法之一),但它受到“深层隔离”问题的困扰 – 也就是说,您可以访问内核对象,但通过Win32接口构建的所有服务(如Windows,GDI&co。)不易获得; 除此之外,界面可能还是不错的,还有一些细节(比如路径的格式)不能被削弱,所以一个POSIX应用程序总会看起来有点不合适。