这称为二进制水平上的不兼容。甚至有些软件作者自己的同一软件的不同版本之间也是互不兼容的,例如 automake 各个版本之间就是互不兼容的。好在多数 linux 发行版在源代码级别上是互相兼容的。事实上,没有任何两个 linux 发行版是绝对兼容的。同样,win98 和 winxp 也是如此,不过 MS 由于是大型商业软件公司,有能力做到大致兼容,否则就是自己找麻烦。反倒是苦了那些程序员,要经过反复调试才能使自己的软件适应 windows 的多个版本,甚至被迫发布针对不同操作系统版本的版本。
linux 和 unix 由于开发者众多,同样是藩镇割据,四分五裂。这就是极度自由散漫的不良后果,尽管自由有它积极的一面。很多作者甚至不关心你能不能用、是否支持用户的语言、用户能否看懂他的说明,他们只是自我欣赏,或是自愉自乐,他们也不可能有足够的时间做自己感觉不重要的事情。SUN 可能公开 java 的源代码,但却禁止人们修改它,就是担心 java 四分五裂,互不兼容。用户群广泛的软件都有这种担忧,多个不同的派生产品也会使最终用户手足无措。
LSB (linux standard base,linux 标准基)标准试图规范开发者行为,解决二进制水平上的不兼容。不幸的是,几乎没有人真正遵守这一冗长、复杂的规范。