LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: youbest

[原创]换个角度看LFS——反向分析LFS

[复制链接]
发表于 2007-12-11 01:00:35 | 显示全部楼层
学习中...............真是好文章
回复 支持 反对

使用道具 举报

发表于 2007-12-11 01:18:04 | 显示全部楼层
我觉得linux 真实非常的复杂这么多工具包 为什么不综合为1个 程序库呢  毕竟统一才是王道
回复 支持 反对

使用道具 举报

发表于 2007-12-11 12:04:32 | 显示全部楼层
Post by biosxjj;1794091
我觉得linux 真实非常的复杂这么多工具包 为什么不综合为1个 程序库呢  毕竟统一才是王道


Linux不是一个公司在维护,所以不象你想象的WINXP那么统一

我想LINUX就象是玩具,别人都给你把部件做好了,就看你怎么玩
回复 支持 反对

使用道具 举报

发表于 2007-12-11 13:35:34 | 显示全部楼层
当一个已经完成的LFS系统需要进行 glibc 的主要版本升级,过程会是怎么样的?我觉得这个问题更有意义。
回复 支持 反对

使用道具 举报

发表于 2007-12-11 18:42:20 | 显示全部楼层
Post by linux001;1794246
当一个已经完成的LFS系统需要进行 glibc 的主要版本升级,过程会是怎么样的?我觉得这个问题更有意义。
讨论过了,但如果你未试过的话,这是很有风险的,找找以往的帖子或看看精华帖就知道了
回复 支持 反对

使用道具 举报

发表于 2008-3-23 11:05:21 | 显示全部楼层
编译了一次LFS, 以前都没有不大明白,  编来编去, 反复的编 工具链 有什么用, 手册上是说了 要编译个存净的系统, 但还是不大理解, 看了这篇以后 豁然开朗, 但是 还是有一点疑惑, 望各位解答一下, 谢谢了.

我的疑惑是, 编译一套纯净的系统, 所以要编译   预工具链 , 再编译 工具链, 最后用完全用工具链, 但是, 我疑惑的是, 你编译的工具链 终归揭底都是 用 主系统的 gcc binutils等工具编译的, 还是依赖于主系统的阿, 那 我何不 别编译 预工具链 工具链了, 而是直接 编译最后的运行环境 如图中的 内核 readline vim, 这样难道脱离了 主系统 就不能运行了吗?
回复 支持 反对

使用道具 举报

发表于 2008-3-23 13:40:30 | 显示全部楼层
简单的答案是:是的,这样的编译法要是脱离了主系统,很可能就不能运行了。
内核:应该可以运行,但是它是用宿主机的编译器编译的,而不是LFS中的版本,可能优化得就没那么好了。
readline vim等等,如果用静态方式编译,应该也可以运行。不过正如前述,它不是用LFS中的版本。要是动态编译,一般来说没戏。因为它会依赖于宿主机的动态库,一旦找不到了或者版本错误,就会拒绝运行。

另外,你还是没有看懂LFS的步骤。一套纯净的系统意味着:所有的代码都是用系统中安装的GCC版本编译出来的,所依赖的库全部都在系统内部。

这意味着,一个纯净的系统至少要编译两次工具链:首先用宿主系统中的版本来编译目标版本的工具链,然后再用目标版本的工具链来编译系统。至于LFS的三次编译,目的是为了尽量隔离主系统的影响以免无意中使编译出来的东西依赖于主系统。

编译两次的方法也有,那叫CLFS-SYSROOT。请参考楼主的专门文章。
回复 支持 反对

使用道具 举报

发表于 2008-3-23 16:05:18 | 显示全部楼层
Post by 地球发动机;1829904
简单的答案是:是的,这样的编译法要是脱离了主系统,很可能就不能运行了。
内核:应该可以运行,但是它是用宿主机的编译器编译的,而不是LFS中的版本,可能优化得就没那么好了。
readline vim等等,如果用静态方式编译,应该也可以运行。不过正如前述,它不是用LFS中的版本。要是动态编译,一般来说没戏。因为它会依赖于宿主机的动态库,一旦找不到了或者版本错误,就会拒绝运行。

另外,你还是没有看懂LFS的步骤。一套纯净的系统意味着:所有的代码都是用系统中安装的GCC版本编译出来的,所依赖的库全部都在系统内部。

这意味着,一个纯净的系统至少要编译两次工具链:首先用宿主系统中的版本来编译目标版本的工具链,然后再用目标版本的工具链来编译系统。至于LFS的三次编译,目的是为了尽量隔离主系统的影响以免无意中使编译出来的东西依赖于主系统。

编译两次的方法也有,那叫CLFS-SYSROOT。请参考楼主的专门文章。


谢谢了, 但是我想, 我要是不求纯净的话, 先编译个 GLIBC出来, 然后所有的 动态库 都链接在 它的上面, 这样脱离主系统应该可以运行吧
回复 支持 反对

使用道具 举报

发表于 2008-4-22 19:29:10 | 显示全部楼层
原谅我挖坟把,  真的很好很强大。
佩服啊!!!
其实各个distribution的朋友都可以来看看lfs,对linux分析的很深入啊。很漂亮,虽然我很菜。
顶。
回复 支持 反对

使用道具 举报

发表于 2008-5-3 14:39:08 | 显示全部楼层
关于为什么这样制作LFS的好文章!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表