完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>
標(biāo)簽 > Prelink
Prelink 不適用于 Hardened Gentoo。這是因?yàn)閮蓚€項(xiàng)目都試圖改變共享庫的地址空間映射。但是帶有 -R 選項(xiàng)的預(yù)鏈接會隨機(jī)化庫基地址,從而提供某種程度的強(qiáng)化保護(hù)。
大多數(shù)常見的應(yīng)用程序都使用共享庫。這些共享庫需要在運(yùn)行時加載到內(nèi)存中,并且需要解析各種符號引用。對于大多數(shù)小程序來說,這種動態(tài)鏈接非???。但是對于用 C++ 編寫并且具有許多庫依賴項(xiàng)的程序,動態(tài)鏈接可能需要相當(dāng)長的時間。
在大多數(shù)系統(tǒng)上,庫不會經(jīng)常更改,并且在運(yùn)行程序時,每次鏈接程序所采取的操作都是相同的。Prelink 通過執(zhí)行鏈接并將其存儲在可執(zhí)行文件中來利用這一點(diǎn),實(shí)際上是對其進(jìn)行預(yù)鏈接。
預(yù)鏈接可以縮短應(yīng)用程序的啟動時間。例如,一個典型的 KDE 程序的加載時間可以減少多達(dá) 50%。唯一需要的維護(hù)是每次為預(yù)鏈接的可執(zhí)行文件升級庫時重新運(yùn)行預(yù)鏈接。
Prelink 不適用于 Hardened Gentoo。這是因?yàn)閮蓚€項(xiàng)目都試圖改變共享庫的地址空間映射。但是帶有 -R 選項(xiàng)的預(yù)鏈接會隨機(jī)化庫基地址,從而提供某種程度的強(qiáng)化保護(hù)。
概括
令人驚訝的是,預(yù)鏈接是通過一個名為prelink. 它會更改二進(jìn)制文件以使其啟動更快。
如果預(yù)鏈接后應(yīng)用程序的依賴庫發(fā)生變化,則需要重新預(yù)鏈接應(yīng)用程序,否則將失去速度優(yōu)勢。也就是說,每次您通過更新庫的 portage 更新包時,都需要重新預(yù)鏈接它們。
對二進(jìn)制的更改是完全可逆的。prelink具有撤銷功能。
當(dāng)前版本的 Portage 可以通過 處理prelink二進(jìn)制文件中不斷變化的 MD5sums 和 mtimes。
你不需要FEATURES=“prelink”在你的make.conf文件中設(shè)置;如果 Portage 可以找到 prelink 二進(jìn)制文件,它將自動支持 prelink。
編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語言教程專題
電機(jī)控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機(jī) | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機(jī) | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進(jìn)電機(jī) | SPWM | 充電樁 | IPM | 機(jī)器視覺 | 無人機(jī) | 三菱電機(jī) | ST |
伺服電機(jī) | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國民技術(shù) | Microchip |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |