Sự khác biệt giữa tải động và liên kết động trong HĐH là gì?


Câu trả lời 1:

HĐH có thể có khả năng thực hiện:

  1. Tải động các mô-đun mà nó sử dụng Liên kết tải thời gian của các mô-đun cần thiết bởi một ứng dụng Liên kết động thời gian của các mô-đun mà ứng dụng cần, nếu và khi thực sự cần chúng. Tải các mô-đun mà nó sử dụng
  • HĐH có thể tải một số trình điều khiển I / O và các mô đun dịch vụ khác khi HĐH khởi động, dựa trên danh sách. Nó cũng có thể tải các mô-đun khác dựa trên nhu cầu, chẳng hạn như bất cứ khi nào một thiết bị cụ thể được cắm vào.

2. Tải thời gian liên kết của các mô-đun cần thiết cho một ứng dụng

  • Một số hệ điều hành cho phép người dùng gọi một mô-đun chính mã đối tượng ngay cả khi nó chưa được chỉnh sửa liên kết với các mô-đun khác mà nó cần để thực hiện hoàn chỉnh. Trình tải liên kết tải mô-đun ban đầu đó, kiểm tra nó để tìm các mô-đun cần, tải chúng vào bộ nhớ và sửa các địa chỉ gọi hàm khi cần để chúng hoạt động cùng nhau. Nó tiếp tục cho các mô-đun gọi các mô-đun khác khi cần thiết. Tất cả điều này là trong bộ nhớ. Kết quả không được lưu vào đĩa để sử dụng lại sau đó.

3. Chạy liên kết động thời gian của các mô-đun một ứng dụng cần, nếu và khi nó thực sự cần chúng.

  • Nhiều hệ điều hành cung cấp cho việc tạo và các ứng dụng để sử dụng Thư viện Liên kết động Dynamic (DLL). Đây là những thư viện riêng biệt mà một ứng dụng đang chạy có thể yêu cầu HĐH đặt tên. Sau khi HĐH đã tải thư viện (hoặc có thể nó đã có trong bộ nhớ), ứng dụng có thể gọi các chức năng trong thư viện. DLL trong bộ nhớ thường không riêng tư, được sử dụng bởi một phiên bản của một ứng dụng. Cùng một thể hiện có thể phục vụ nhiều phiên bản của nhiều ứng dụng khác nhau.

Câu trả lời 2:

Tôi nghĩ rằng một chút bối cảnh sẽ có ích vì có nhiều cách sử dụng cả hai thuật ngữ cho những thứ khác nhau.

Đối với kernel, tải động sẽ tải trình điều khiển theo yêu cầu. Nhưng sau đó, trình điều khiển vẫn cần được liên kết với kernel một cách thích hợp hoặc nó sẽ không hoạt động.

Một nơi khác mà các điều khoản được sử dụng là khi một thực thi được bắt đầu.

Trình tải thời gian chạy sau đó sẽ khớp với các thư viện chia sẻ được yêu cầu và cung cấp liên kết giữa ứng dụng và các thư viện khác nhau. Trình tải thời gian chạy không thực sự tải toàn bộ chương trình - nó tải các trang có địa chỉ bắt đầu, sau đó chuyển thực thi sang địa chỉ bắt đầu. Bây giờ khi ứng dụng chạy, nó gây ra lỗi trang - tải động các hướng dẫn hoặc dữ liệu thực thi cần thiết.

Tuy nhiên, một nơi khác được sử dụng với các ứng dụng đó là các thư viện liên kết và tải thư viện động như là một plugin bổ trợ, để mở rộng chức năng của ứng dụng.

Vì vậy, một chút bối cảnh sẽ cho phép câu trả lời tốt hơn.