הבדל בין Assembly ל-DLL

הבדל בין Assembly ל-DLL
הבדל בין Assembly ל-DLL

וִידֵאוֹ: הבדל בין Assembly ל-DLL

וִידֵאוֹ: הבדל בין Assembly ל-DLL
וִידֵאוֹ: Tel Aviv's Lost Railway 2024, יולי
Anonim

Assembly לעומת DLL

ספרייה היא אוסף של משאבים שניתן להשתמש בהם לפיתוח יישומים. ספרייה מורכבת בדרך כלל מתתי שגרות, פונקציות, מחלקות, ערכים וסוגים. במהלך תהליך הקישור (בדרך כלל נעשה על ידי מקשר), ספריות וקובצי הפעלה מתייחסים זה לזה. קבצי DLL הם קבצי הספרייה המקושרים באופן דינמי. DLL פותח על ידי מיקרוסופט. אבל עקב כמה בעיות שקיימות בקבצי DLL, Microsoft המציאה פורמט קובץ Assembly (עם מסגרת NET. קבצי Assembly דומים מאוד לקובצי DLL מבחינה פיזית, אבל יש להם הבדלים פנימיים רבים.

מה זה DLL?

ספריית קישורים דינמית (הידועה יותר בשם DLL) היא יישום ספרייה משותפת שפותחה על ידי מיקרוסופט. הוא משתמש בהרחבות.dll,.ocx או.drv והן משמשות במערכות ההפעלה Microsoft Windows ו-OS/2..dll משמש את קבצי ה-DLL הרגילים. וסיומת.ocx משמשת את הספריות המכילות פקדי ActiveX וסיומת.drv משמשת את קבצי מנהלי ההתקן של מערכת מדור קודם. פורמט קובץ ה-DLL זהה לקבצי Windows EXE (קבצי הפעלה ניידים ב-Windows 32/64-bit ו-New Executable ב-Windows 16bit). לכן, כל שילוב של קוד, נתונים ומשאבים יכול להיכלל בקבצי DLL (בדיוק כמו בקבצי EXE). למען האמת, קבצי נתונים בפורמט קובץ DLL נקראים משאבים DLL. ספריות אייקונים (עם סיומת.icl) וקובצי גופן (עם סיומות.fon ו-.fot) הן דוגמאות לקובצי DLL של משאבים.

רכיבים שנקראים קטעים מרכיבים DLL ולכל קטע יש תכונות משלו כמו קריאה בלבד/ניתן לכתיבה והפעלה/לא הפעלה.קטעי קוד ניתנים להפעלה, בעוד שקטעי נתונים אינם ניתנים להפעלה. קטעי הקוד משותפים וקטעי הנתונים הם פרטיים. כלומר כל התהליכים המשתמשים ב-DLL ישתמשו באותו עותק של הקוד, בעוד שלכל תהליך יהיה עותק משלו של הנתונים. הספרייה הדינמית הראשית עבור Windows היא kernel32.dll, המכילה את פונקציות הבסיס (פונקציונליות הקשורה לקבצים ולזיכרון) ב-Windows. COM (Component Object Model) היא הרחבה של DLL ל- OOP (תכנות מונחה עצמים). קל יותר להשתמש בקובצי DLL קונבנציונליים מקובצי COM.

מה זה אסיפה?

קבצי Assembly הוצגו על ידי מיקרוסופט כדי לפתור מספר בעיות הקיימות בקובצי DLL. קובצי הרכבה הוצגו עם המסגרת של Microsoft. NET. יחידה לוגית ניתנת להפעלה של פונקציונליות נקראת Assembly. הרכבות ניתנות להפעלה תחת. NET CLR (זמן ריצה של שפה משותפת). מבחינה פיזית, הרכבות קיימות כקבצי EXE או DLL. אבל, הם שונים מאוד מקובצי DLL של Microsoft Win32, באופן פנימי.קובץ assembly מורכב ממניפסט, מטא נתונים, MISL (קוד שפה בינונית של מיקרוסופט) ומשאבים אחרים. אסיפה מתארת את עצמה. המניפסט מכיל את המידע כגון שם, גרסה, תרבות, שם חזק, רשימת קבצים, סוגים ותלות. קוד MISL מבוצע באמצעות CLR (לא ניתן לבצע אותו ישירות).

מה ההבדל בין Assembly ל-DLL?

DLL היא ספרייה מקושרת דינמית. למרות שמכלולים שווים פיזית לקובצי DLL, הם שונים מאוד מבחינה פנימית. לא ניתן לשמור על עקביות בין קבוצה של קבצי DLL, אבל ה-CLR יכול לשמור על עקביות בין קבוצה של אסבולות, מכיוון שמקבצים מתארים את עצמם (הם מכילים את רשימת התלות באופן פנימי). שלא כמו עבור קובצי DLL, מידע ניהול גרסאות נאכף עבור assemblies (על ידי ה-CLR). פריסה זה לצד זה (יישומים שונים המשתמשים בגרסאות שונות) אפשרית עם הרכבות.

מוּמלָץ: