【华为云技术分享】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内核补丁源码分析(1)
- 【华为云技术分享】Linux内核的分布式编译(2)
- 【华为云技术分享】Linux内核的分布式编译(1)
- [Linux]linux如何把文件切成多块
- Linux中RM快速删除大量文件/文件夹方法
- ps -ef | grep Linux进程查看命令
- Linux内核 TCP/IP、Socket参数调优
- Linux-0.0.1内核阅读连载笔记-2013.08.22
- 【华为云技术分享】Linux内核编程环境 (1)
- 【华为云技术分享】Linux内核发展史 (3)
- 【华为云技术分享】Linux内核源码结构(1)
- 【华为云技术分享】Linux内核发展史 (2)
- python编程:linux环境gunicorn+nginx部署django项目
- 【Linux 内核 内存管理】Linux 内核内存布局 ④ ( ARM64 架构体系内存分布 | 内核启动源码 start_kernel | 内存初始化 mm_init | mem_init )
- 【Linux 内核 内存管理】优化内存屏障 ④ ( 处理器内存屏障 | 八种处理器内存屏障 | 通用内存屏障 | 写内存屏障 | 读内存屏障 | 数据依赖屏障 | 强制性内存屏障 |SMP内存屏障 )
- 【Linux 内核 内存管理】优化内存屏障 ③ ( 编译器屏障 | 禁止 / 开启内核抢占 与 方法保护临界区 | preempt_disable 禁止内核抢占源码 | 开启内核抢占源码 )
- 【Linux 内核】编译 Linux 内核 ④ ( 打开 Linux 内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 )
- Checking out and building Chromium on Linux
- Linux内核进程管理专题报告
- Linux内核 MMU的工作原理
- 嵌入式Linux开发,更换内核kernel开机画面LOGO—左上角小企鹅图标(分辨率为80*80)
- Linux内核事件通知链学习
- linux下生成https的crt和key证书
- Docker学习笔记03:linux操作系统内核升级
- Linux stress性能压测工具使用
- Linux下Nginx编译安装后的开机自启动设置
- 常用Linux内核参数说明
- Linux基础入门到精通之虚拟机网络设置说明