โดยทั่วไป ไลบรารีระบบเป็นที่เก็บข้อมูลที่ใช้โดยระบบปฏิบัติการหรือซอฟต์แวร์แอปพลิเคชันระหว่างการทำงานหรือการรวบรวม
ไลบรารีระบบประกอบด้วยรูทีนย่อยและฟังก์ชันที่ใช้กันทั่วไป ในส่วนของการเขียนโปรแกรม ไลบรารีจะเก็บคลาสทั่วไปสำหรับการทำงานกับกราฟิก อาร์เรย์ ไดอะล็อก และอื่นๆ
แนวคิดของไลบรารีระบบสามารถใช้ได้ทั้งกับโปรแกรมแต่ละรายการและระบบปฏิบัติการโดยรวม และใช้ได้กับทั้ง Windows, UNIX และ Mac
คำจำกัดความของ "ห้องสมุด" ปรากฏครั้งแรกในปี 1951 ในหนังสือของ M. Wilkes, D. Wheeler และ S. Gill "การเขียนโปรแกรมสำหรับเครื่องคำนวณอิเล็กทรอนิกส์"
ตามหลักการทำงาน ไลบรารีระบบจะแบ่งออกเป็นไดนามิกและสแตติก
ห้องสมุดไดนามิก
ไลบรารีลิงก์แบบไดนามิกเป็นส่วนประกอบที่โหลดลงในหน่วยความจำเมื่อโปรแกรมที่รันร้องขอ ดังนั้นจึงไม่จำเป็นต้องคัดลอกรหัสรูทีนย่อยลงในแต่ละแอปพลิเคชัน เนื่องจากฟังก์ชันทั่วไปส่วนใหญ่จะถูกเก็บไว้เป็นไลบรารี
นอกจากนี้ ไลบรารี่ที่โหลดลงใน RAM สามารถใช้พร้อมกันได้หลายแอพพลิเคชั่น ซึ่งช่วยประหยัดทรัพยากรระบบ โดยเฉพาะอย่างยิ่งในช่วงแรกของการคำนวณ
ไฟล์ไดนามิกลิงก์ไลบรารีใน Windows OC มีนามสกุล.dll (ไดนามิกลิงก์ไลบรารี) และจัดเก็บไว้ในไดเร็กทอรี system32 ส่วนประกอบที่คล้ายกันในระบบที่คล้าย UNIX เรียกว่าอ็อบเจ็กต์ที่ใช้ร่วมกันและมีนามสกุล.so ใน Mac OS -.dlyb
Maurice Wilkes et al. ให้คำจำกัดความต่อไปนี้แก่ห้องสมุด - โปรแกรมสั้น ๆ ที่เตรียมไว้ล่วงหน้าสำหรับการดำเนินการทางคอมพิวเตอร์ส่วนบุคคลที่พบบ่อย (มาตรฐาน)
เป็นไปไม่ได้ที่จะได้รับข้อดีทั้งหมดของแนวทางโมดูลาร์ในการดำเนินโปรแกรม นี่เป็นเพราะปรากฏการณ์ที่เรียกว่า DLL hell ซึ่งโปรแกรมร้องขอไลบรารีเดียวกัน (DLL) เวอร์ชันต่างๆ พร้อมกัน สิ่งนี้นำไปสู่ความล้มเหลวและความน่าเชื่อถือที่ลดลงของระบบปฏิบัติการ
ในระบบปฏิบัติการสมัยใหม่ของตระกูล Windows เพื่อหลีกเลี่ยงความขัดแย้งอนุญาตให้ใช้ไลบรารีรุ่นต่าง ๆ ซึ่งเพิ่มความน่าเชื่อถือ แต่ขัดแย้งกับหลักการของโมดูลาร์
ห้องสมุดคงที่
ไลบรารีแบบสแตติกยังเก็บรูทีนย่อยและโค้ดฟังก์ชัน แต่ต่างจากไดนามิก ไลบรารีเหล่านี้ถูกใช้เมื่อรวบรวมโปรแกรม นั่นคือรหัสที่จำเป็นทั้งหมดจะรวมอยู่ในโปรแกรม แอปพลิเคชันจะกลายเป็นแบบสแตนด์อโลนโดยไม่ขึ้นกับไลบรารีไดนามิก แต่มีขนาดเพิ่มขึ้น
ตามกฎแล้ว ใน Windows ไฟล์ของไลบรารีดังกล่าวจะมีนามสกุล.lib บนระบบที่คล้ายกับ UNIX -.a
การทำงานกับภาษาที่คอมไพล์ส่วนใหญ่ เช่น C, C ++, Pascal เป็นไปไม่ได้หากไม่มีไลบรารีแบบคงที่