【华为云技术分享】Linux内核的分布式编译(1)

上一期中我们介绍了Linux内核模块依赖图的绘制方法,这一期中我们将介绍Linux内核的分布式编译方法和分布式编译工具distcc的安装过程。

一、Linux内核的分布式编译

分布式编译是指将源程序通过网络中的多台计算机的协同编译过程编译成目标程序的技术。分布式编译一般通过TCP或SSH等协议将编译任务分配至网络中不同的计算机上,使这些计算机协同完成编译工作。Linux内核可以使用distcc[1]进行分布式编译。

distcc是一个通过网络中的多台计算机对C、C++、Objective C或ObjectiveC++代码进行分布式编译的程序。distcc是一款编译速度快且容易安装的分布式编译工具,它能产生和本地编译一致的编译结果。理论上使用distcc进行分布式编译相对于本地编译的最大加速比为3.0x,但在实际使用中加速比会低于这一理论值。

distcc并不要求所有的机器共享一个文件系统或有同步的时钟,也不要求它们有相同的library或头文件。当安装了交叉编译器时,distcc甚至不需要这些机器有相同的处理器或操作系统。

为了搭建基于distcc的Linux内核分布式编译环境,我们在Ubuntu 18.04环境下首先使用命令下载distcc  v3.3.3版:

然后解压源码包:

进入distcc-3.3.3目录后,有一个INSTALL文件。打开INSTALL文件,文件里面记录了distcc-3.3.3的安装和配置过程。

在安装distcc-3.3.3之前,我们首先要安装一些依赖项:

然后进行配置:

接着进行编译:

使用make check命令可以看到哪些功能被编译了而哪些没有:

安装相关的软件可以使与相关功能有关的选项由NOTRUN变为OK。例如,若发现Gdb_Case选项由于GDB没有安装而为NOTRUN,则可以安装GDB,之后再次运行make  check该选项会变为OK。

然后就可以安装了:

当安装或卸载编译器时需要再次运行最后一个命令。到这一步为止,distcc就在这台机器上安装好了。

我们将以上过程整理为一个脚本,放在码云仓库里的distccInstallation文件夹中,其地址为:

https://gitee.com/luo_yu_zhe/openEulerInstallation

二、结语

本期我们介绍了Linux分布式编译工具distcc的基本情况和安装方法,下一期我们将尝试用另一种distcc的安装方法,并对Linux4.19.90版内核进行分布式编译。


参考文献

[1]https://distcc.github.io/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值