如果您构建的可执行文件可在当前版本的 Windows 上运行,则该可执行文件可能会在较新版本的 Windows 上运行多年。微软非常努力地确保这一点。
对于 Linux,人们期望您拥有正在使用的软件的源代码,因此只要您保持源代码兼容性,就可以破坏二进制兼容性。这导致发行版逐步淘汰旧的库版本,并定期破坏曾经可用的东西。
对于使用 Linux 作为游戏平台的人来说,这是一个问题,因为游戏往往仅以二进制形式分发。它使 Linux 端口在损坏时看起来很糟糕,但我感觉通常尝试解决这个问题会更有效率,而不是期望每个人都更新他们的端口。
是否有任何发行版试图保持二进制兼容性,不一定要保留所有旧版本,但至少保留旧的 sonames,以便与版本 n 一起使用的二进制文件也应与版本 n+1 一起使用?
我能找到的最接近的是 Valve 的“Steam Runtime”,这是一个二进制兼容层,仅适用于通过 Steam 分发的程序。