【华为云技术分享】Linux内核的分布式编译(2)
上一期中我们介绍了用源码包安装distcc的方法,这一期我们尝试用distcc对Linux 4.19.90内核进行分布式编译。
一、Linux内核的分布式编译
我们尝试用同一个子网中的三台服务器对Linux 4.19.90版内核做分布式编译。首先确定这三台服务器的内网ip分别为172.16.0.16、172.16.0.9和172.16.0.13,对应的hostname分别为VM-0-16-ubuntu、VM-0-9-ubuntu和VM-0-13-ubuntu。其中VM-0-16-ubuntu和VM-0-9-ubuntu有一个CPU核,而VM-0-13-ubuntu带有两个CPU核。
我们在三台服务器上都使用上一期中提到的脚本安装distcc,并将VM-0-16-ubuntu和VM-0-9-ubuntu作为server,而VM-0-13-ubuntu作为client 。将待编译的Linux 4.19.90内核源码放置在VM-0-13-ubuntu上,并按“Linux内核编程环境”小节中介绍的方法配置好编译环境。安装完的distcc文件夹如下图所示:
在两个server上我们运行distccd命令启动distcc进程:
其中172.16.0.0/20为子网的CIDR[1]。数字20为可变长子网掩码,该数字表示如果一个内网ip地址的前20bit与某个CIDR地址块相同,那么该内网ip地址属于该CIDR地址块。
在client上面我们配置好用于编译的服务器ip地址:
其中localhost代表可以直接编译,而不是通过本机上的一个daemon进行编译。须知我们在服务器上都使用了daemon模式。
配置完后在client上查看服务器列表:
然后就可以编译了:
distcc是调用机器上安装的gcc进行编译的。其中使用的线程数建议是总的CPU数目的两倍。我们有4个CPU,因此使用了8个线程。在服务器CPU数目较多的时候,可以使用pump模式。pump模式的设置方法可以在源码包中的INSTALL文件中看到,或者使用man distccd命令。
希望了解更多的信息可以运行man distcc和man distccd命令。
二、结语
到这一期为止,Linux和openEuler内核简介一章就已经告一段落了。在下一章中,我们将探讨openEuler中与硬件相关的知识。
参考文献
[1]https://baike.baidu.com/item/无类别域间路由/15758573?fromtitle=CIDR&fromid=3695195&fr=aladdin
相关文章
- Linux内核架构:构建一个成功的操作系统(linux的内核架构图)
- 探索Linux实时内核的魅力(linux实时内核)
- Linux下的多路复用技术探究(linux多路复用)
- Linux语法:令人惊叹的高亮美学(linux语法高亮)
- Linux的多元信道:开启技术的未来(linux通道)
- Linux文件内容替换技术:实现快速更新(linux文件内容替换)
- Linux下复制文件无法获取权限(linux复制没有权限)
- Linux线程与进程:从概念到实现(linux线程与进程)
- Linux网络设置的快速指南(linux如何设置网络)
- 理解Linux中的用户态和内核态(linux用户态和内核态)
- 【Linux 让你云端挂载更轻松】(linux挂载云盘)
- Linux系统如何正确卸载(怎么卸载linux)
- Linux下快速批量重命名的技巧(批量重命名linux)
- Linux可以自学:让你实现立竿见影的技术蜕变(linux能自学吗)
- Linux下剪切文件夹的方法(linux剪切文件夹)
- Linux下破解WiFi新技术(linux破解wifi)
- Linux技术指南:完整PDF版(linux技术手册pdf)
- Linux如何进行结构体赋值?简易教程分享(linux结构体赋值)
- 如何在 Linux 上查看内核线程:简单易懂的指南(linux查看内核线程)
- Linux实现端口映射技术:解决网络难题的终极方案(linux 做端口映射)
- Linux 内核视频教程:全面理解与精要讲解。(linux 内核视频教程)
- Linux上的人脸识别技术发展史(linux人脸识别)
- 深入学习Linux系统内核(linux系统内核学习)