猿问

追求 1.10 和 Windows XP 的支持

首先:我知道 Windows XP 已过时,极其不安全,存在巨大风险,而且仍在使用它的每个人都注定永远失败。尽管如此,我必须提供一个也可以在 Windows XP 上运行的应用程序,并且我使用 Go 来实现。在 1.10 中宣布不再支持 XP,1.11 在发行说明中确认了这一点:

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

我用 1.11 编译我的应用程序并尝试在 Windows XP SP3 虚拟机上执行它。可以执行成功!然后我认为取消对 Windows XP 的支持仅适用于开发工具链,但即使这样仍然可以在 Windows XP 上执行:

如您所见,主要的 go 二进制文件也在 XP 上运行。是否已经知道何时由于技术限制而无法在 Windows XP 上运行 golang 编译的 exes,或者某些方法是否会失败,因为它们由于在 XP 上缺少 API 而无法再工作?



杨魅力
浏览 244回答 1
1回答

翻翻过去那场雪

Issue #23380是相关的讨论。简而言之:请注意,即使 1.10 是支持 XP 的最后一个版本,您也会在 1.11 发布之前获得错误修复向后移植,并在 1.12 发布之前获得安全向后移植。这意味着直到 2019 年 1 月 <...>至于支持Windows XP,既有技术上的原因,也有非技术上的原因。支持平台需要:有权访问它的人,以及对其工作的激励(有偿或无偿)。最活跃的 Go-on-Windows 开发人员 Alex Brainman 似乎对 XP 不再感兴趣。该平台必须在作为 Go 发布/QA 流程一部分的自动构建器上得到支持。汽车制造商必须有人支持。必须修复和测试特定于平台的错误。例如,该问题涉及#23375,它只发生在 Windows XP (SP3) 上。但是,即使一个错误通常是 Windows 特有的——与 Windows XP 不同,它的修复也必须在 XP 上进行测试。因此,不幸的是,如果某些“强大的实体”(例如公司)对 Windows XP 上受支持的 Go 没有兴趣,那么您能做的最好的事情就是真正努力自己仍然支持它,FWIW。另请注意,即使在支持正式结束后,您仍然可以从源代码构建更新的 Go 版本(这相当简单,因为 Go 1.5 现在是使用(旧版本的)Go 构建的)。因此,真正的阻碍将是 Go 团队遇到一些障碍,这只需要一些 Windows XP 中不存在的内核功能。一个很好的例子是在 Windows 2000 上处理 SEH 时遇到一些困难,最终导致放弃对该操作系统的支持。
随时随地看视频慕课网APP

相关分类

Go
我要回答