为什么Microsoft需要让Windows运行Linux软件
上周微软Build开发者大会的最大惊喜可能是Windows的Solaris子系统(WSL)。该系统将作为今年夏天Windows10周年更新的一部分发布.WSL有两个部分;核心子系统已经包含在操作系统的InsiderPreview版本中,然后是Canonical将提供的软件包。核心子系统是在Windows上提供LinuxAPI的,包括本机加载Linux可执行文件和库的能力。Canonical将提供bashLinux环境中预期的所有其他命令行工具。Microsoft将WSL严格定位为开发人员的工具,特别是支持Web开发人员和他们所依赖的开源软件堆栈。许多开发人员都非常熟悉的bash外壳,采用建筑软件make和gcc,并在编辑文字vi或emacs。WSL将为这些开发人员提供这些工具的版本,这些工具几乎与Linux上的工具相同,因为它们将是您在Linux上未经修改的Linux上运行的工具。以开发人员为重点,Microsoft不支持WSL作为部署平台。例如,可以在WSL下运行ApacheWeb服务器,对于开发来说甚至可能是有用的,但目的不是使用此配置在生产中运行应用程序。
WSL源自ProjectAstoria,旨在使Android应用程序能够在Windows10Mobile上运行;我们预计,至少在起初,它对Android所需的API的支持最强,而在其他领域则更弱。这意味着虽然应用程序支持应该是广泛的,但Windows将无法在阳光下运行每个Linux程序。这里没有Linux内核,因此不会将对ZFS或btrfs等文件系统的支持带到Windows。要求对硬件设备进行低级访问的应用程序(如Wireshark)似乎同样不太可能运行,并且将继续需要Windows端口。WSL也不包括XWindows或任何其他图形子系统;它仅适用于命令行应用程序。
微软决定在Windows上支持Linux软件是一个令人惊讶的举动,显而易见的问题是,为什么?从表面上看,答案很容易-开发人员喜欢这些工具,所以支持他们会让开发人员感到高兴-但故事的运行情况要比这更深入。在Windows中支持Linux应用程序对于花费数十年推广其自己的API和应用程序平台的公司来说是一个重大举措,而且该公司不太可能采取这样的举措只是为开发人员提供一些生物舒适。需要比这更深入。让时光倒流15年,Windows是软件开发人员唯一认真的平台。Linux已经成为服务器的一个重要考虑因素,但桌面上的问题比现在更少,仅限于大多数铁杆粉丝。OSX还处于起步阶段,只能运行在奇怪,昂贵,动力不足的PowerPC硬件上。这使Windows成为默认选择的开发平台。根本没有任何好的选择。
这反过来会对软件产生影响,其中可靠的Windows支持可能会推动服务器端的使用。一个主要的例子是MySQL数据库服务器。虽然今天比以前更好,但在涉及技术功能和数据完整性等重要考虑因素时,MySQL一直被认为是次优的,而PostgreSQL通常被认为是更好的数据库。尽管如此,MySQL仍然赢得了相当大的市场和思想共享,因为它是一个更好的开发平台。它有一个简单的Windows安装程序,它有很好的Windows软件来管理数据库和编写查询,它有很好的ODBC驱动程序。另一方面,PostgreSQL的开发人员似乎没有优先考虑任何这些事情,虽然在Windows上运行数据库并非不可能,但这样做意味着放弃MySQL提供的生物舒适。因此,MySQL以PostgreSQL没有的方式扩散,这并不奇怪。
但是事情不再那样了。在Windows上设置Ruby开发环境是一种悲惨的经历。让Ruby运行良好在任何平台上都很尴尬,但Windows可能是最糟糕的。流行的node.js环境诞生于OSX和Linux上,很长一段时间都无法在Windows上有效运行。顶级NoSQL数据存储redis的开发者SalvatoreSanfilippo拒绝接受修补程序以使软件在Windows上运行,而不是出于对微软的任何特殊敌意,而是因为他认为不需要它。他支持支持Windows的软件分叉的想法,但没有什么会阻碍核心产品的开发。以上就是小编对于miscrosoft为什么需要让Windows运行Linux软件的一些看法,如果您也有相关的看法欢迎前来和小编交流探讨。