დინამიური ბმულების ბიბლიოთეკა (DLL) ინგლისურიდან ითარგმნება როგორც "დინამიური ბმულების ბიბლიოთეკა". DLL არის შემსრულებელი ფაილი, რომელიც ასრულებს გაზიარებული ბიბლიოთეკის ფუნქციებს. თავისი დინამიური კავშირით DLL გთავაზობთ ფუნქციის გამოძახების საშუალებას, რომელიც შედის შესრულებადი კოდისა.
შესრულებადი ფუნქციის კოდი თავისთავად არის DLL, რომელიც შეიცავს რამდენიმე შედგენილ, დაკავშირებულ და შენახულ ფუნქციას გამოყენებულ პროცესებში. DLL ემსახურება წყაროებისა და მონაცემების გაზიარების პროცესის გამარტივებას. ის საშუალებას აძლევს სისტემაში დაინსტალირებულ პროგრამებს, ერთდროულად მოიპოვონ მეხსიერებაში დატვირთული DLL ერთი ასლის მრავალჯერადი შინაარსი.
მოდულარული კოდირება - DLL– ების წინაპარი
DLL- ის შექმნაზე მუშაობის დასაწყისი შეიძლება ჩაითვალოს ისეთი პროგრამირების მეთოდის გაჩენა, როგორიცაა მოდულური კოდირება. ერთ დროს, მოდულურმა კოდირებით მნიშვნელოვნად შეუწყო ხელი პროგრამისტების მუშაობამ, რამაც შესაძლებელი გახადა, რომ თითოეული ახალი პროგრამისთვის რამდენჯერმე არ დაეწერა იგივე კოდი. ყველა მარტივი პროგრამა შეიცავს უამრავ მსგავს კოდს, რომელთა შექმნა დაიწყეს მოდულების სახით და დაამატეს მათ ახალ პროგრამებში. გარკვეული პერიოდის განმავლობაში, მოდულური კოდირება ყველაზე მარტივი და ეფექტური გამოსავალი იყო და მხოლოდ ერთი ნაკლი ჰქონდა. პროგრამებში დამატებულმა იდენტურმა მოდულებმა დაიკავა დისკის ადგილი, რაც იმ დღეებში მწირი იყო.
იდენტურ მოდულებზე დისკის სივრცის გაფლანგვის პრობლემა ერთადერთი იყო, მაშინ როდესაც აქ მხოლოდ ერთჯერადი ოპერაციული სისტემები არსებობდა. მრავალეროვანი ოპერაციული სისტემების გაჩენისთანავე, როგორიცაა Windows, კიდევ ერთი პრობლემა წარმოიშვა. პროგრამებმა, რომელთაც ერთსა და იმავე კოდთან ერთად აქვთ მოდულები, დაიწყეს მისი ჩატვირთვა RAM– ში, "ჭამდნენ" ყველა რესურსს. აღსანიშნავია, რომ იმ დროს 500 მეგაბაიტიანი მეხსიერების მოდული ყველაზე დიდი იყო და ის საკმაოდ ძვირი ღირდა. მაშინაც კი, ოპერატიული მეხსიერების მაქსიმალური ზომაც არ დაზოგა მომხმარებლები, პროგრამებმა ოპერატიულად დატვირთეს ოპერატიული მეხსიერება, რაც შეუძლებელს ხდიდა კომპიუტერის ნორმალურ მუშაობას.
DLL– ების გაჩენა
იპოვნეს ამ პრობლემების ღირსეული გადაწყვეტა, ასე გამოიყურებოდა: იგივე კოდის მქონე მოდულებმა შეწყვიტეს ძირითადი პროგრამის დოკის შენახვა, მათი შენახვა ცალკეულ შემსრულებელ ფაილში, რომელზე წვდომა ნებისმიერ პროგრამას შეეძლო საჭიროების მიხედვით. სწორედ ეს გამოსავალი ქმნის DLL– ების საფუძველს, რომლებიც დინამიურად უკავშირდება ნებისმიერ პროგრამას. ახლა ამ ბიბლიოთეკებში შესაძლებელია შესრულებადი კოდის შენახვა ფუნქციების ან პროცედურების, გრაფიკის და თუნდაც ვიდეოების სახით, რამაც შესაძლებელი გახადა დისკის სივრცის და RAM რესურსების დაზოგვა.
დინამიური ბმულების ბიბლიოთეკების ერთადერთი ნაკლი არის პროგრამის ჩატვირთვის დამატებითი დროის დაკარგვა. ამ უმნიშვნელო ნაკლის გარდა, DLL შედგება მხოლოდ უპირატესობებისაგან. ამიტომ, ეს ბიბლიოთეკები ფართოდ არის გამოყენებული და პროგრამისტებს იყენებენ თითქმის ყველა პროგრამაში.