good02xaut 发表于 2006-1-12 17:28:12

内核,bin,mod,lib

升级内核后,好多程序用不了了,那不是内核的问题。

1。首先就是bin和sbin里面的工具,如ld,ps,cp等等linux常用的命令。这些软件不是和内核一起发布的,因此当内核升级后,有时候就用不成了。建议这些程序使用静态编译,不要和库再有任何联系。
2。其次就是模块了,内核提供对模块的支持,个人觉得不怎么好。内核允许模块动态加载,可没有提供任何模块工具如modprobe,insmod等。内核升级后,这些软件与内核的接口变了,必然要跟着升级。
3。就是lib的问题了。内核是不需要库支持的,而且所有静态编译的程序也是不要库支持的。然而许多应用程序采用动态编译,如果编译时采用的库版本比较低,后来升级内核后,库也升级,而应用程序没有升级,同样存在无法使用的问题。而且有些应用程序如果不提供新版本,在新库面前是无法编译通过的。
4。软件本身的与内核的不配套。

前2个问题解决比较容易,如果使用busybox,升级一次就搞定所有问题。
关于lib,应用程序只要重新编译一次即可。当然gcc的版本也要跟着更新。

软件本身的问题就要升级软件了。比如有些软件要求访问/dev目录下的设备。2.6内核和2.4内核相比,做了很大变动,应用程序根本就找不到设备了。最好的办法就是修改软件的源码,获取2.6内核版本的。通过对设备做链接虽然可以在2.6内核下继续运行2.4板的程序,也不好。
页: [1]
查看完整版本: 内核,bin,mod,lib