تفاوت کلیدی – Linker در مقابل Loader
یک برنامه رایانه ای برای دادن دستورالعمل به رایانه استفاده می شود. با استفاده از یک زبان برنامه نویسی خاص نوشته شده است. زبان های برنامه نویسی مانند C و Java زبان های برنامه نویسی سطح بالایی هستند و برای انسان قابل درک هستند اما توسط کامپیوتر قابل درک نیستند. بنابراین، یک برنامه سطح بالا با استفاده از مترجم زبان به زبان ماشین تبدیل می شود. برنامه ای که با استفاده از زبان سطح بالا نوشته می شود یک کد منبع است. پس از تبدیل، کد ترجمه شده، کد شی نامیده می شود. لینکر و لودر دو نرم افزاری هستند که برای اجرای برنامه استفاده می شوند. این مقاله به تفاوت بین Linker و Loader می پردازد. Linker نرم افزاری است که کد شی را با فایل های اضافی مانند فایل های هدر پیوند می دهد و یک فایل اجرایی با پسوند exe ایجاد می کند. لودر نرم افزار سیستمی است که فایل اجرایی تولید شده توسط لینکر را در حافظه اصلی بارگذاری می کند. این تفاوت اصلی بین Linker و Loader است.
لینکر چیست؟
برنامه رایانه ای مجموعه ای از دستورالعمل هایی است که برای انجام یک کار خاص به رایانه داده می شود. یک برنامه کامپیوتری را می توان با استفاده از یک زبان برنامه نویسی نوشت. اکثر زبان های برنامه نویسی برنامه نویسی سطح بالایی هستند. آنها به راحتی توسط برنامه نویس قابل درک و خواندن هستند. این زبان ها از نحوی مشابه زبان انگلیسی پیروی می کنند. چند نمونه از زبان های سطح بالا جاوا، سی و پایتون هستند. برنامه ای که با استفاده از یک زبان برنامه نویسی سطح بالا نوشته می شود به عنوان کد منبع، فایل منبع یا برنامه منبع شناخته می شود. پسوند کد منبع بستگی به زبانی دارد که با آن توسعه داده شده است. اگر کد منبع به زبان C++ نوشته شده باشد پس پسوند فایل.cpp اگر کد منبع در پایتون نوشته شده باشد، پسوند.py. است.
حتی کد منبع برای برنامه نویس قابل درک است. توسط کامپیوتر قابل درک نیست. بنابراین، کد منبع باید با استفاده از یک مترجم زبان به قالب قابل فهم ماشین تبدیل شود. این می تواند یک کامپایلر یا یک مفسر باشد. کد ترجمه شده به عنوان کد شی شناخته می شود. کد شی به زبان ماشین است. از صفر و یک بار تشکیل شده است. کامپیوتر می تواند به طور مستقیم کد شی را درک کند. پسوند.obj دارد. اگر کد منبعی به عنوان Test.c وجود داشته باشد، از کامپایلر عبور می کند و کد تبدیل شده به Test.obj تبدیل می شود.
Linker نرم افزاری است که کد شی را با فایل های اضافی مانند فایل های هدر پیوند می دهد و یک فایل اجرایی با پسوند exe ایجاد می کند. این برنامه ممکن است از توابع داخلی استفاده کرده باشد. قابلیت های آن توابع داخلی در فایل های هدر هستند. با توجه به مثال توضیح داده شده در بالا، کد شی که Test است.obj با فایل های هدر لازم با استفاده از Linker اضافه می شود. یک فایل جدید به نام Test.exe ایجاد می کند. این یک فایل اجرایی است. بنابراین، توسط کامپیوتر قابل اجرا است.
لودر چیست؟
برنامه ای که باید اجرا شود باید در حافظه قرار گیرد. پیوند دهنده کد شی و فایل های هدر را پیوند می دهد و فایل اجرایی را خروجی می دهد. لودر نرم افزار سیستمی است که فایل اجرایی تولید شده توسط لینکر را در حافظه اصلی بارگذاری می کند. فضای حافظه را به ماژول اجرایی در حافظه اصلی اختصاص می دهد. بنابراین، لودر بخشی از سیستم عامل است که وظیفه بارگذاری برنامه ها و کتابخانه ها را بر عهده دارد.
شکل 01: ترتیب بارگیری کد منبع در حافظه
بارگیری یک برنامه شامل چندین مرحله است. این شامل خواندن محتویات فایل اجرایی حاوی دستورالعمل برنامه در حافظه و همچنین انجام کارهای آماده سازی لازم برای اجرای فایل اجرایی است.پس از اتمام بارگذاری، سیستم عامل با انتقال کنترل به کد برنامه بارگذاری شده، برنامه را شروع می کند. سیستم های کامپیوتری خاص مانند سیستم های Embedded معمولا لودر ندارند. کد مستقیماً توسط رام اجرا می شود.
رابطه بین Linker و Loader چیست؟
خروجی Linker به Loader می رود
تفاوت بین Linker و Loader چیست؟
Linker vs Loader |
|
Linker نرم افزاری است که کد شی را با فایل های اضافی مانند فایل های هدر پیوند می دهد و یک فایل اجرایی با پسوند exe ایجاد می کند. | لودر نرم افزار سیستمی است که فایل اجرایی تولید شده توسط لینکر را در حافظه اصلی بارگیری می کند. |
ورودی | |
لینکر خروجی مترجم زبان را می گیرد که کد شیء است. | لودر خروجی را از لینکر که فایل اجرایی است می گیرد. |
کارکرد | |
لینکر کد شی و فایل های هدر را پیوند می دهد و فایل اجرایی را خروجی می دهد. | لودر فایل اجرایی به دست آمده از پیوند دهنده را در حافظه اصلی بارگیری می کند. |
خلاصه - Linker در مقابل Loader
Linker و Loader دو جزء نرم افزار مربوط به اجرای برنامه هستند. این مقاله تفاوت بین Linker و Loader را مورد بحث قرار داد. Linker نرم افزاری است که کد شی را با فایل های اضافی مانند فایل های هدر پیوند می دهد و یک فایل اجرایی با پسوند exe ایجاد می کند. لودر نرم افزار سیستمی است که فایل اجرایی تولید شده توسط لینکر را در حافظه اصلی بارگذاری می کند.این تفاوت بین Linker و Loader است.