追求1.10并支持Windows XP

问题描述 投票:3回答:1

首先:我知道Windows XP是生命的终结,疯狂的不安全,一个很大的风险,每个人仍在使用它将永远注定失败。尽管如此,我必须提供一个也可以在Windows XP上运行的应用程序,我使用Go来实现。在1.10中宣布XP将不再受支持,1.11在release notes中证实了这一点:

正如Go 1.10发行说明中所述,Go 1.11现在需要OpenBSD 6.2或更高版本,macOS 10.10 Yosemite或更高版本,或Windows 7或更高版本;已删除对以前版本的这些操作系统的支持。

我用1.11编译了我的应用程序,并尝试在Windows XP SP3虚拟机上执行它。它可以成功执行!然后我认为对Windows XP的撤销支持仅适用于开发工具链,但即便如此仍可在Windows XP上执行:enter image description here

正如您所看到的那样,主要的二进制文件仍然在XP上运行。是否已经知道什么时候由于技术限制或某些方法因为缺少XP上的API而无法再运行,因此无法再在Windows XP上运行golang编译的exes?

go windows-xp
1个回答
4
投票

Issue #23380是相关的讨论。

简而言之:

请注意,即使1.10是支持XP的最后一个版本,你也会得到bugfix backports,直到1.11结束,并且安全性向后移动直到1.12结束。这意味着直到2019年1月<...>


至于支持Windows XP,有技术和非技术原因。支持平台需要:

  • 有权使用它的人,并有动力去做(有偿或无偿)。 最活跃的Go-on-Windows开发人员Alex Brainman似乎对XP不再感兴趣了。
  • 此平台必须在作为Go版本/ QA流程一部分的autobuilder上受支持。 必须由某人支持autobuilder。
  • 必须修复和测试特定于平台的错误。 例如,该问题涉及仅在Windows XP(SP3)上发生的#23375。但是,即使一个特定于Windows的错误 - 而不是Windows XP,也必须在XP上对其进行修复。

因此,不幸的是,如果没有兴趣支持Go on Windows XP来自一些“强大的实体” - 比如公司 - 你能做的最好的事情就是真正努力为自己提供支持,FWIW。


还要注意,即使在支持正式结束之后,您仍然可以成功地从源代码构建更新的Go版本(这非常简单,因为Go 1.5现在使用Go(旧版本)构建Go)。

因此,一个真正的显示阻止是Go团队遇到一些障碍,这只需要Windows XP中不存在的某些内核功能。一个很好的例子是some difficulty with SEH handling on Windows 2000,最终导致对该操作系统的支持率下降。

© www.soinside.com 2019 - 2024. All rights reserved.