和这个问题相关的,Linus 有个讲 ABI 兼容性的帖子,里面的观点就挺有意思的(而且在我看来也挺有道理的),里面说到内核的情形是:“One of the core kernel rules has always been that we never ever break any external interfaces. That rule has been there since day one, although it's gotten much more explicit only in the last few years. The fact that we break internal interfaces that are not visible to userland is totally irrelevant, and a total red herring.” 而桌面项目里面似乎没有有能做到这点的。