Liên kết trước (hoặc cách khởi động KDE trong 3 giây)

Liên kết trước là một chương trình có tiện ích là làm cho các chương trình mở nhanh hơn. Mặc dù lời giải thích về cách nó hoạt động sẽ xứng đáng có một bài báo đầy đủ, chúng ta có thể nói một cách thô thiển rằng nó cho hệ nhị phân biết nơi cần tìm đầu tiên cho các thư viện động mà nó cần tải.

Do đó, hãy tưởng tượng rằng chúng ta có một tệp nhị phân phụ thuộc vào thư viện QtCore, khi chúng ta đã thực thi liên kết trước trên nó, trước tiên nó sẽ tìm kiếm trong không gian được chỉ định bởi liên kết trước và trong trường hợp không tìm thấy nó (một bản cập nhật, cho ví dụ) nó sẽ tìm kiếm nó theo cách truyền thống.

Prelink hoạt động trên bất kỳ hệ thống tuân thủ POSIX nào, chẳng hạn như GNU / linux hoặc BSD.

Cách áp dụng liên kết trước

Tối ưu hóa hệ thống với liên kết trước khá đơn giản, chúng ta có thể tối ưu hóa hệ thống nhị phân bằng cách sử dụng (dưới dạng root):

prelink binario

Nhưng để tối ưu hóa toàn bộ hệ thống, chúng ta phải thực hiện:

prelink -amvR

Bạn sẽ thấy một cái gì đó như thế này:

Liên kết trước

Liên kết trước

Dưới đây là giải thích chi tiết về ý nghĩa của các tham số:

  • a: bằng –tất cả, làm cho nó áp dụng cho toàn bộ hệ thống
  • m: tương đương với –conserve-memory, giải thích về cách nó hoạt động rất phức tạp, nhưng tiết kiệm dung lượng
  • v: tương đương với –verbose, nó cho phép chúng ta biết đâu là các thư viện được liên kết trước
  • A: Tương đương với –random, tăng tính bảo mật bằng cách tạo một giá trị ngẫu nhiên. Tôi không biết chi tiết về hoạt động của nó
Thiết bị đầu cuối là Yakuake, trong trường hợp có ai quan tâm.

Để hủy liên kết trước (hủy liên kết) một tệp nhị phân

prelink  -u

Toàn bộ hệ thống:

prelink -au

Nhiều bản phân phối như Ubuntu cung cấp một cron định kỳ liên kết trước tất cả các tệp nhị phân hệ thống nếu liên kết trước được cài đặt
Liên kết trước có thể gây ra sự cố trong một số tệp nhị phân độc quyền, vì vậy chúng thường bị bỏ qua theo mặc định. Dù sao, hãy đảm bảo rằng tệp /etc/prelink.conf của bạn chứa các dòng sau:
# Skype -b / usr / lib32 / skype / skype -b / usr / lib / skype / skype # Flash Player Plugin -b /usr/lib/mozilla/plugins/libflashplayer.so # NVIDIA -b / usr / lib / libGL .so * -b /usr/lib32/libGL.so* -b //usr/lib/libOpenCL.so* -b //usr/lib32/libOpenCL.so* -b / usr / lib32 / vdpau/ -b / usr / lib / vdpau / -b /usr/lib/xorg/modules/drivers/nvidia_drv.so -b /usr/lib/xorg/modules/extensions/libglx.so* -b / usr / lib / libnvidia- * - b / usr / lib32 / libnvidia- * # Catalyst -b / usr / lib / libati * -b / usr / lib / fglrx * -b / usr / lib / libAMDXvBA * -b /usr/lib/libGL.so* - b / usr / lib / libfglrx * -b /usr/lib/xorg/modules/dri/fglrx_dri.so -b /usr/lib/xorg/modules/drivers/fglrx_drv.so -b / usr / lib / xorg / modules / extension / fglrx / -b /usr/lib/xorg/modules/linux/libfglrxdrm.so -b /usr/lib/xorg/modules/extensions/libglx.so

Tối ưu hóa KDE

Những gì đã hứa là nợ. Nếu bạn đã liên kết trước hệ thống của mình, bạn có thể không nhận thấy bất kỳ sự khác biệt nào về thời gian tải KDE. Điều này là do KDE phục vụ như một tiện ích được gọi là kdeinit để tải tất cả các thư viện cần thiết. Để tránh sử dụng công cụ này, chúng tôi phải cho KDE biết rằng nó đã được liên kết trước. Để làm điều này, chúng ta phải (với tư cách là người chủ) tạo một tệp biến:

nano /etc/profile.d/kde-prelink.sh

Trong đó chúng tôi dán dòng sau

export KDE_IS_PRELINKED=1

Và chúng tôi cung cấp cho nó các quyền thích hợp (chúng tôi không muốn bất kỳ điều gì hư hỏng nào thêm vào rm-rf /)

chmod 755 /etc/profile.d/kde-prelink.sh

Và nếu bạn không tin tôi, đây là video khởi động KDE trên hệ thống của tôi:

[thông số kỹ thuật] Chi tiết hệ thống:
  • HDD ở 7200 RPM
  • Gentoo
  • XFS
  • Ksplash bị vô hiệu hóa (nguyên nhân gây ra màn hình đen video
[/ specs]

Cron và liên kết trước

Nếu bạn sử dụng một hệ thống như Archlinux, nơi các bản cập nhật diễn ra rất thường xuyên, thì việc thêm một cron chạy prelink mỗi ngày có thể rất thú vị.

Do đó, chúng tôi mở tệp cron bằng nano (dưới dạng root):

nano /etc/cron.daily/prelink

Và chúng tôi dán như sau:

#! / bin / bash
[[-x / usr / bin / prelink]] &&
/ usr / bin / liên kết trước -amR &> / dev / null

Sau đó, chúng tôi cung cấp cho nó các quyền thích hợp (tôi đã đề cập rằng không ai muốn ai đó thêm mã độc hại):
chmod 755 /etc/cron.daily/prelink

Một thói quen tốt khi đọc một bài báo là nghiên cứu chính xác kịch bản làm gì. Một thói quen tốt khi viết nó là giải thích nó dùng để làm gì. Đây là sự cố

  1. Dòng đầu tiên được sử dụng để cho hệ thống biết tập lệnh bash là gì và vị trí của trình thông dịch.
  2. Cái thứ hai làm cho bash thực thi một vỏ con ở chế độ gỡ lỗi, tôi không biết tại sao, nhưng nó được khuyến khích, nó có thể được loại bỏ mà không có rủi ro. && có nghĩa là khi lệnh kết thúc, hãy chạy như sau.
  3. Thực thi liên kết trước với một số tham số đã được giải thích, &> / dev / null chuyển hướng bất kỳ đầu ra nào đến / dev / null, nghĩa là loại bỏ nó

Liên kết quan tâm