doqw89029 2018-09-02 12:37
浏览 166
已采纳

1.10及更高版本开始支持Windows XP

First of all: I know that Windows XP is end of life, insanely insecure, a big risk and that everyone still using it will be doomed for ever. Nonetheless I have to provide an application that can also run on Windows XP and I do so using Go. In 1.10 it was announced that XP will no longer be supported and 1.11 confirms this in the release notes:

As announced in the Go 1.10 release notes, Go 1.11 now requires OpenBSD 6.2 or later, macOS 10.10 Yosemite or later, or Windows 7 or later; support for previous versions of these operating systems has been removed.

I compiled my application with 1.11 and tried to execute it on a Windows XP SP3 virtual machine. It could be executed successfully ! Then I thought that the revoked support for Windows XP only applies to the development toolchain but even that can still be executed on Windows XP: enter image description here

As you can see the main go binary still runs on XP too. Is it already known when it will no longer be possible to run golang compiled exes on Windows XP because of technical limitations or if certain methods will fail because they can no longer work because of missing APIs on XP ?

  • 写回答

1条回答 默认 最新

  • duan00529 2018-09-02 13:56
    关注

    Issue #23380 is the relevant discussion.

    In short:

    Note that even if 1.10 is the last version to support XP, you'd get bugfix backports until 1.11 is out, and security backports until 1.12 is out. That means until January 2019 <…>


    As to supporting Windows XP, there are both technical and non-technical reasons. Supporting a platform requires:

    • Someone who has access to it, and an incentive to work on it (either paid or unpaid).

      The most active Go-on-Windows developer, Alex Brainman, seems to have no interest in XP anymore.

    • This platform must be supported on autobuilders which are part of the Go release / QA process.

      An autobuilder must be supported by someone.

    • Bugs specific to a platform must be fixed and tested.

      For instance, that issue refers to #23375 which happens only on Windows XP (SP3). But even if a bug was specific to Windows in general—as opposed to Windows XP, a fix for it would have to be tested on XP anyway.

    Hence, unfortunately, if there is no interest in supported Go on Windows XP coming from some "powerful entities"—such as corporations—the best you can do is to actually work towards still supporting this by yourself, FWIW.


    Also note that even after the support is officially ended, you still might have success building newer Go releases from the source (which is reasonably simple since Go 1.5 as Go is now built using (an older release of) Go).

    Hence a real show-stopper would be the Go team hitting some roadblock which would just require some kernel feature not present in Windows XP. A good example was some difficulty with SEH handling on Windows 2000 which eventually led to dropping support for that OS.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!