Sự khác biệt giữa Trình liên kết và Trình tải

Tác Giả: Laura McKinney
Ngày Sáng TạO: 3 Tháng Tư 2021
CậP NhậT Ngày Tháng: 8 Có Thể 2024
Anonim
Sự khác biệt giữa Trình liên kết và Trình tải - Công Nghệ
Sự khác biệt giữa Trình liên kết và Trình tải - Công Nghệ

NộI Dung


Trình liên kết và Trình tải là các chương trình tiện ích đóng vai trò chính trong việc thực hiện chương trình. Mã nguồn của một chương trình đi qua trình biên dịch, trình biên dịch, trình liên kết, trình tải theo thứ tự tương ứng, trước khi thực hiện. Một mặt, nơi liên kết lấy các mã đối tượng được tạo bởi trình biên dịch chương trình và kết hợp chúng để tạo ra mô-đun thực thi. Mặt khác, máy xúc lật tải mô-đun thực thi này vào bộ nhớ chính để thực thi. Hãy để chúng tôi thảo luận về sự khác biệt giữa Linker và loader với sự trợ giúp của biểu đồ so sánh.

  1. Biểu đồ so sánh
  2. Định nghĩa
  3. Sự khác biệt chính
  4. Phần kết luận

Biểu đồ so sánh

Cơ sở để so sánhTrình liên kếtMáy xúc lật
Căn bảnNó tạo ra các mô-đun thực thi của một chương trình nguồn.Nó tải mô-đun thực thi vào bộ nhớ chính.
Đầu vàoNó nhận làm đầu vào, mã đối tượng được tạo bởi một trình biên dịch.Nó có mô-đun thực thi được tạo bởi một trình liên kết.
Chức năngNó kết hợp tất cả các mô-đun đối tượng của mã nguồn để tạo ra một mô-đun thực thi.Nó phân bổ các địa chỉ cho một mô-đun thực thi trong bộ nhớ chính để thực thi.
Loại / Cách tiếp cậnLiên kết biên tập, liên kết động.Tải tuyệt đối, tải có thể định vị lại và tải thời gian chạy động.


Định nghĩa của Linker

Trình biên dịch mã tạo mã đối tượng của một chương trình nguồn và trao nó cho trình liên kết. Trình liên kết lấy mã đối tượng này và tạo mã thực thi cho chương trình và bàn giao nó cho Trình tải.

Ngôn ngữ cấp cao, chương trình có một số thư viện tích hợptập tin tiêu đề. Chương trình nguồn có thể chứa một số hàm thư viện có định nghĩa được lưu trữ trong các thư viện tích hợp. Trình liên kết liên kết các chức năng này với các thư viện tích hợp. Trong trường hợp không tìm thấy các thư viện tích hợp, nó sẽ thông báo cho trình biên dịch và trình biên dịch sẽ tạo ra lỗi.

Đôi khi các chương trình lớn được chia thành các chương trình con được gọi là mô-đun. Bây giờ khi các mô-đun này được biên dịch và lắp ráp, các mô-đun đối tượng của chương trình nguồn được tạo. Trình liên kết có trách nhiệm kết hợp / liên kết tất cả các mô-đun đối tượng để tạo một tệp thực thi duy nhất của chương trình nguồn. Chúng tôi có hai loại liên kết.


Biên tập liên kết: Nó là một trình liên kết tạo ra mô-đun có thể thực hiện được.

Liên kết động: Nó trì hoãn / trì hoãn liên kết của một số mô-đun bên ngoài cho đến khi mô-đun tải / mô-đun thực thi được tạo. Ở đây, liên kết được thực hiện trong thời gian tải hoặc thời gian chạy.

Định nghĩa của bộ nạp

Vì chương trình phải được thực thi hiện phải nằm trong bộ nhớ chính của máy tính. Đó là trách nhiệm của bộ nạp, một chương trình trong một hệ điều hành, để tải tập tin / mô-đun thực thi của một chương trình, được tạo bởi trình liên kết, vào bộ nhớ chính để thực thi. Nó phân bổ không gian bộ nhớ cho mô-đun thực thi trong bộ nhớ chính.

Có ba loại phương pháp tải:

  • Tải tuyệt đối
  • Tải di dời
  • Tải thời gian chạy động

Tải tuyệt đối: Cách tiếp cận này tải tập tin thực thi của chương trình vào một cùng một vị trí bộ nhớ chính mỗi lần. Nhưng nó có một số nhược điểm giống như một lập trình viên phải nhận thức được chiến lược gán để tải các mô-đun vào bộ nhớ chính. Trong trường hợp, chương trình sẽ được sửa đổi liên quan đến một số chèn và xóa trong chương trình, sau đó tất cả các địa chỉ của chương trình phải được thay đổi.

Tải di dời: Trong phương pháp này, trình biên dịch hoặc trình biên dịch chương trình không tạo địa chỉ bộ nhớ chính thực tế. Nó tạo ra các địa chỉ tương đối.

Tải thời gian chạy động: Trong phương pháp này, địa chỉ tuyệt đối cho một chương trình được tạo khi một lệnh của mô-đun thực thi được thực thi. Nó rất linh hoạt, mô-đun có thể tải / mô-đun thực thi có thể được tải vào bất kỳ vùng của bộ nhớ chính. Chương trình thực thi có thể bị gián đoạn ở giữa và có thể được hoán đổi vào đĩa và trở lại bộ nhớ chính lần này tại một địa chỉ bộ nhớ chính khác.

  1. Sự khác biệt chính giữa trình liên kết và trình tải là trình liên kết tạo ra thực thi tập tin của một chương trình trong khi đó, trình tải tải tập tin thực thi thu được từ trình liên kết vào bộ nhớ chính để thực thi.
  2. Trình liên kết lấy mô đun đối tượng của một chương trình được tạo bởi trình biên dịch chương trình. Tuy nhiên, trình nạp nạp mô đun thực thi được tạo bởi các liên kết.
  3. Trình liên kết kết hợp tất cả các mô-đun đối tượng của một chương trình để tạo mô-đun thực thi nó cũng liên kết chức năng thư viện trong mô-đun đối tượng để thư viện tích hợp của ngôn ngữ lập trình cấp cao. Mặt khác, bộ nạp phân bổ không gian cho một thực thi mô-đun trong bộ nhớ chính.
  4. Trình liên kết có thể được phân loại là biên tập liên kết, liên kết động trong khi đó trình tải có thể được phân loại là bộ tải tuyệt đối, bộ nạp di dời bộ tải thời gian chạy động.

Phần kết luận:

Trình liên kết lấy các mô đun đối tượng của một chương trình từ trình biên dịch chương trình và liên kết chúng lại với nhau để tạo ra một mô đun thực thi của một chương trình. Mô-đun thực thi sau đó được bộ nạp nạp vào bộ nhớ chính để thực thi.