Theo nghĩa chung, thư viện hệ thống là một kho dữ liệu được sử dụng bởi hệ điều hành hoặc phần mềm ứng dụng trong quá trình vận hành hoặc biên dịch.
Thư viện hệ thống chứa các chương trình con và hàm thường được sử dụng. Liên quan đến lập trình, các thư viện lưu trữ các lớp phổ biến để làm việc với đồ họa, mảng, hộp thoại và hơn thế nữa.
Khái niệm thư viện hệ thống có thể áp dụng cho cả các chương trình riêng lẻ và cho toàn bộ hệ điều hành, và điều này áp dụng cho các họ của cả Windows, UNIX và Mac.
Định nghĩa về "thư viện" xuất hiện lần đầu tiên vào năm 1951 trong cuốn sách của M. Wilkes, D. Wheeler và S. Gill "Lập trình cho Máy tính Điện tử"
Theo nguyên lý hoạt động, thư viện hệ thống được chia thành động và tĩnh.
Thư viện động
Thư viện liên kết động là một thành phần được tải vào bộ nhớ khi một chương trình đang chạy yêu cầu. Do đó, không cần sao chép mã chương trình con vào mỗi ứng dụng - các chức năng phổ biến nhất được lưu trữ dưới dạng thư viện.
Ngoài ra, thư viện được nạp vào RAM có thể được sử dụng đồng thời bởi một số ứng dụng, giúp tiết kiệm tài nguyên hệ thống. Điều này đặc biệt đúng trong những ngày đầu của máy tính.
Các tệp Thư viện Liên kết Động trong Windows OC có phần mở rộng là.dll (Thư viện Liên kết Động) và được lưu trữ trong thư mục system32. Các thành phần tương tự trong các hệ thống giống UNIX được gọi là các đối tượng dùng chung và có phần mở rộng là.so, trong Mac OS -.dlyb.
Maurice Wilkes và cộng sự đã đưa định nghĩa sau vào thư viện - một chương trình ngắn, được chuẩn bị trước cho các phép tính toán cá nhân, thường gặp (tiêu chuẩn).
Không thể có được tất cả các ưu điểm của phương pháp mô-đun để thực thi chương trình. Điều này là do hiện tượng được gọi là DLL hell, trong đó chương trình yêu cầu đồng thời các phiên bản khác nhau của cùng một thư viện (DLL). Điều này dẫn đến lỗi và giảm độ tin cậy của hệ điều hành.
Trong các hệ điều hành hiện đại thuộc họ Windows, để tránh xung đột, cho phép sử dụng các phiên bản thư viện khác nhau, điều này làm tăng độ tin cậy, nhưng lại mâu thuẫn với chính nguyên tắc của mô đun.
Thư viện tĩnh
Thư viện tĩnh cũng lưu trữ các mã chương trình con và hàm, nhưng không giống như các thư viện động, chúng được sử dụng khi biên dịch chương trình. Đó là, toàn bộ mã bắt buộc được bao gồm trong chương trình. Ứng dụng trở nên độc lập, không phụ thuộc vào các thư viện động, nhưng phát triển về quy mô.
Theo quy định, trên Windows, các tệp của các thư viện như vậy có phần mở rộng.lib, trên các hệ thống giống UNIX -.a.
Làm việc với hầu hết các ngôn ngữ biên dịch, ví dụ, C, C ++, Pascal, là không thể nếu không có thư viện tĩnh.