第十三期 Linux核心的分布式編譯(1)

2021-10-23 03:24:53 字數 1655 閱讀 2456

上一期中我們介紹了 linux 核心模組依賴圖的繪製方法,這一期中我們將介紹 linux 核心的分布式編譯方法和分布式編譯工具 distcc 的安裝過程。

分布式編譯是指將源程式通過網路中的多台計算機的協同編譯過程編譯成目標程式的技術。分布式編譯一般通過 tcp 或 ssh 等協議將編譯任務分配至網路中不同的計算機上,使這些計算機協同完成編譯工作。linux核心可以使用 distcc [1]進行分布式編譯。

distcc 是乙個通過網路中的多台計算機對 c、c++、objective c或 objective c++ **進行分布式編譯的程式。distcc 是一款編譯速度快且容易安裝的分布式編譯工具,它能產生和本地編譯一致的編譯結果。理論上使用 distcc 進行分布式編譯相對於本地編譯的最大加速比為 3.0x,但在實際使用中加速比會低於這一理論值。

distcc 並不要求所有的機器共享乙個檔案系統或有同步的時鐘,也不要求它們有相同的 library 或標頭檔案。當安裝了交叉編譯器時,distcc 甚至不需要這些機器有相同的處理器或作業系統。

3.3然後解壓原始碼包:

tar -xvf distcc-

3.3.3

.tar.gz

進入 distcc-3.3.3 目錄後,有乙個 install 檔案。開啟 install 檔案,檔案裡面記錄了 distcc-3.3.3 的安裝和配置過程。

在安裝 distcc-3.3.3 之前,我們首先要安裝一些依賴項:

sudo apt-get install gcc make python3 python3-dev libiberty-dev

sudo apt-get install autoconf

然後進行配置:

.

/autogen.sh

./configure

接著進行編譯:

make

make check

使用 make check 命令可以看到哪些功能被編譯了而哪些沒有:

安裝相關的軟體可以使與相關功能有關的選項由 notrun 變為 ok。例如,若發現 gdb_case 選項由於 gdb 沒有安裝而為 notrun,則可以安裝 gdb,之後再次執行 make check 該選項會變為 ok。

然後就可以安裝了:

sudo make install

make installcheck

sudo update-distcc-symlinks

當安裝或解除安裝編譯器時需要再次執行最後乙個命令。到這一步為止,distcc就在這台機器上安裝好了。

本期我們介紹了 linux 分布式編譯工具 distcc 的基本情況和安裝方法,下一期我們將嘗試用另一種 distcc 的安裝方法,並對 linux 4.19.90 版核心進行分布式編譯。

參考文獻

[1]

linux的分布式思想

首先看看什麼是分布式的思想,其實分布式的思想就是訊息通知機制,發訊息的實體不管接收者的狀態,只管傳送,接收者得到訊息後就會響應,其實就是網路中的 問 答 的方式,也就是事件的發起者不直接對事件的接收者採取動作,而是讓接受者接到訊息後自己採取動作。分布式的思想會使操作變得統一,而且也會使系統很靈活,一...

linux的分布式思想

首先看看什麼是分布式的思想,其實分布式的思想就是訊息通知機制,發訊息的實體不管接收者的狀態,只管傳送,接收者得到訊息後就會響應,其實就是網路中的 問 答 的方式,也就是事件的發起者不直接對事件的接收者採取動作,而是讓接受者接到訊息後自己採取動作。分布式的思想會使操作變得統一,而且也會使系統很靈活,一...

分布式系統的核心問題

分布式系統的核心問題 主要內容 一致性問題 共識問題 一致性 分布式集群中多個服務節點,對給定的操作,根據給定的協議,對處理結果對外保持一致.不在乎結果是否正確,而是保證對外呈現的狀態一致.所有節點失敗也是一種一致.引起不一致的因素 節點間網路通訊的不可靠,訊息延遲,訊息亂序,內容錯誤.節點處理時間...