Linux下的软件为什么不能通用?菜鸟提问!

Linux下的软件为什么不能通用?菜鸟提问!

1.是因为 内核版本不同吗? 那么是不是相同内核版本的 Linux 之间可以通用?
2.内核升级后是否所有的软件都的做相应的升级?
3.有一些老版本的Linux 速度很让人满意,就是硬件驱动不够好,新版本的硬件支持很好,但速度又不满意,如何能在老的版本上只是升级驱动部分呢?

我是个多年Windows 程序员,现在希望能转向Linux,所以思维方式还是WIndows 式的,请各位原谅!
“Linux下的软件”指的是应用软件?我也想知道
有些是要求依赖包的,就像电脑必需要有电才能启动,仅是内核升级,跟软件无关
新版本要求的硬件配置要高些,要升级可升级内核
2.6.x 的内核可以運行 2.4.x   2.2.x  頭文件編譯的程序
2.4.x 不一定能運行 2.6.x 頭文件編譯的程序,只要程序沒有 用到 2.6.x 内核中的一些擴展還是可以在 2.4.x 上運行的。(外國的很多程序用的 是 2.2.5 的頭文件編譯的,這樣就可以兼容現在的大部分 發行版),控制這些應用程序的 abi 還涉及到/usr/lib/crt1.o 文件。

内核升级后,能運行當前内核的程序

linux 中的驱动 就是 linux 的内核模塊,一般 内核模塊 對應當前的内核,新内核的模塊可能不能用於當前内核 ,當前内核如果從新配置再編譯得出的模塊也不一定能用於當前的内核 ,因爲符號的增減
谢谢 Power_By_RTL 的热心帮助!
请问这样的知识应该看那些书籍,再谢谢!