完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>
标签 > Prelink
Prelink 不适用于 Hardened Gentoo。这是因为两个项目都试图改变共享库的地址空间映射。但是带有 -R 选项的预链接会随机化库基地址,从而提供某种程度的强化保护。
大多数常见的应用程序都使用共享库。这些共享库需要在运行时加载到内存中,并且需要解析各种符号引用。对于大多数小程序来说,这种动态链接非常快。但是对于用 C++ 编写并且具有许多库依赖项的程序,动态链接可能需要相当长的时间。
在大多数系统上,库不会经常更改,并且在运行程序时,每次链接程序所采取的操作都是相同的。Prelink 通过执行链接并将其存储在可执行文件中来利用这一点,实际上是对其进行预链接。
预链接可以缩短应用程序的启动时间。例如,一个典型的 KDE 程序的加载时间可以减少多达 50%。唯一需要的维护是每次为预链接的可执行文件升级库时重新运行预链接。
Prelink 不适用于 Hardened Gentoo。这是因为两个项目都试图改变共享库的地址空间映射。但是带有 -R 选项的预链接会随机化库基地址,从而提供某种程度的强化保护。
概括
令人惊讶的是,预链接是通过一个名为prelink. 它会更改二进制文件以使其启动更快。
如果预链接后应用程序的依赖库发生变化,则需要重新预链接应用程序,否则将失去速度优势。也就是说,每次您通过更新库的 portage 更新包时,都需要重新预链接它们。
对二进制的更改是完全可逆的。prelink具有撤销功能。
当前版本的 Portage 可以通过 处理prelink二进制文件中不断变化的 MD5sums 和 mtimes。
你不需要FEATURES=“prelink”在你的make.conf文件中设置;如果 Portage 可以找到 prelink 二进制文件,它将自动支持 prelink。
编辑推荐厂商产品技术软件/工具OS/语言教程专题
电机控制 | DSP | 氮化镓 | 功率放大器 | ChatGPT | 自动驾驶 | TI | 瑞萨电子 |
BLDC | PLC | 碳化硅 | 二极管 | OpenAI | 元宇宙 | 安森美 | ADI |
无刷电机 | FOC | IGBT | 逆变器 | 文心一言 | 5G | 英飞凌 | 罗姆 |
直流电机 | PID | MOSFET | 传感器 | 人工智能 | 物联网 | NXP | 赛灵思 |
步进电机 | SPWM | 充电桩 | IPM | 机器视觉 | 无人机 | 三菱电机 | ST |
伺服电机 | SVPWM | 光伏发电 | UPS | AR | 智能电网 | 国民技术 | Microchip |
开关电源 | 步进电机 | 无线充电 | LabVIEW | EMC | PLC | OLED | 单片机 |
5G | m2m | DSP | MCU | ASIC | CPU | ROM | DRAM |
NB-IoT | LoRa | Zigbee | NFC | 蓝牙 | RFID | Wi-Fi | SIGFOX |
Type-C | USB | 以太网 | 仿真器 | RISC | RAM | 寄存器 | GPU |
语音识别 | 万用表 | CPLD | 耦合 | 电路仿真 | 电容滤波 | 保护电路 | 看门狗 |
CAN | CSI | DSI | DVI | Ethernet | HDMI | I2C | RS-485 |
SDI | nas | DMA | HomeKit | 阈值电压 | UART | 机器学习 | TensorFlow |
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 |