MinGW

MinGW ("نظام GNU المبسط لنظام Windows") عبارة عن سلسلة أدوات تجميعية لإنشاء تطبيقات أصلية لنظام Microsoft Windows. وهي توفر نسخة من مجموعة مُجمِّعات GNU (GCC) والأدوات ذات الصلة التي تُنشئ ملفات تنفيذية تستهدف واجهة برمجة تطبيقات Windows دون الحاجة إلى طبقة توافق أو بيئة محاكاة.

تم تطوير MinGW لدعم تطوير تطبيقات ويندوز الأصلية باستخدام أدوات GNU. على عكس بيئات POSIX مثل Cygwin ، يستهدف MinGW واجهة برمجة تطبيقات ويندوز مباشرةً ولا يحاول توفير بيئة تشغيل كاملة شبيهة بنظام يونكس . [ 1 ]

يتضمن هذا النظام نسخًا من أدوات تطوير جنو الأساسية، بما في ذلك GCC و GNU Binutils ، بالإضافة إلى بيئة طرفية بسيطة تشبه نظام يونكس (MSYS) تُستخدم للمساعدة في عمليات البناء. [ 2 ]

توفر المشاريع والتوزيعات اللاحقة مثل Mingw-w64 و MSYS2 بيئات حديثة يتم صيانتها بشكل فعال لإنشاءات ويندوز الأصلية باستخدام سلاسل أدوات GNU. [ 3 ] [ 4 ]

بنيان

تم تصميم MinGW لإنتاج ملفات تنفيذية أصلية لنظام التشغيل Windows بدلاً من توفير طبقة توافق POSIX؛ وعلى عكس سلاسل الأدوات القائمة على Cygwin، فإنه يرتبط بمكتبات DLL القياسية من Microsoft مثل MSVCRT بدلاً من وقت تشغيل محاكاة Unix. [ 1 ]

لأن MinGW لا يوفر بيئة POSIX كاملة، فإن التطبيقات التي تعتمد على إدارة العمليات المتوافقة تمامًا مع POSIX، مثل fork()، تتطلب تعديلات لتجميعها أو تشغيلها بشكل صحيح على نظام التشغيل Windows. [ 1 ]

تدفق سلسلة الأدوات

تتبع سلسلة أدوات MinGW مسار تجميع GNU القياسي المُعدّل لمنصة Windows:

  1. يتم تجميع الكود المصدري ( C ، C++ ، Fortran، إلخ) بواسطة GCC إلى ملفات كائنية تستهدف نظام التشغيل Windows.
  2. يقوم برنامج التجميع (GNU as) بتحويل التمثيلات الوسيطة إلى ملفات كائنات لغة الآلة. [ 5 ]
  3. يقوم الرابط (GNU ld) بربط ملفات الكائنات بمكتبات النظام ومكونات وقت التشغيل. [ 6 ]
  4. يتم إنتاج الملفات التنفيذية بتنسيق الملف التنفيذي المحمول (PE) وتعمل مباشرة على نظام التشغيل Windows بدون طبقة توافق.

إن استخدام تنسيق الملفات التنفيذية المحمولة يميز الملفات الثنائية التي تم إنشاؤها بواسطة MinGW عن أنظمة Unix النموذجية، والتي تستخدم عادةً تنسيق ELF (تنسيق الملفات التنفيذية والربط) .

مقارنة مع سيجوين

على الرغم من إمكانية استخدام كل من Cygwin وMinGW لبناء برامج لنظام التشغيل Windows، إلا أنهما يختلفان في أهداف التصميم. يوفر Cygwin طبقة توافق مع معيار POSIX وبيئة تشغيل شبيهة بنظام Unix على نظام Windows، بينما يستهدف MinGW واجهة برمجة تطبيقات Windows مباشرةً وينتج ملفات تنفيذية أصلية لنظام Windows. [ 1 ]

تعتمد البرامج المبنية باستخدام Cygwin عادةً على مكتبة Cygwin runtime DLL، بينما لا تتطلب البرامج المولدة بواسطة MinGW طبقة توافق كهذه. [ 1 ]

دعم لغات البرمجة

باعتبارها نسخة معدلة من GCC، تدعم MinGW لغات برمجة متعددة، بما في ذلك C و C++ و Objective-C و Objective-C++ و Fortran و Ada .

تستخدم البرامج المُجمَّعة مكتبات وقت التشغيل القياسية لـ GCC، بما في ذلك libstdc++تطبيقات C++ [ 7 ] ومكتبات وقت التشغيل لـ GNU Fortran لتطبيقات Fortran. [ 8 ]

تاريخ

التطور المبكر

نشأت MinGW في أواخر التسعينيات لتوفير بيئة تطوير بسيطة قائمة على GNU لنظام التشغيل Microsoft Windows. [ 2 ] وقد وفر المشروع طريقة لتجميع تطبيقات مفتوحة المصدر إلى ملفات ثنائية أصلية لنظام Windows 32 بت.

تطور التشعب والنظام البيئي

في عام 2007، تم إنشاء نسخة Mingw-w64 المعدلة لإضافة دعم لأنظمة ويندوز 64 بت وتغطية واجهات برمجة تطبيقات ويندوز الأحدث التي لم تكن موجودة في المشروع الأصلي. [ 3 ] تبعتها MSYS2 في العقد الثاني من الألفية، والتي اعتمدت على Mingw-w64 مع إضافة pacmanمدير الحزم ونموذج توزيع مُحدَّث. [ 4 ]

انظر أيضاً

مراجع

  1. 1 2 3 4 5 "كيف أقوم بتجميع ملف تنفيذي لنظام ويندوز لا يستخدم Cygwin؟" . الأسئلة الشائعة حول Cygwin . تم الاطلاع عليه بتاريخ 11 أبريل 2026 .
  2. 1 2 "التاريخ" . MinGW . مؤرشف من الأصل بتاريخ 23-08-2012 . تم الاسترجاع بتاريخ 11-04-2026 .
  3. 1 2 "التاريخ" . Mingw-w64 . تم الاسترجاع في 11-04-2026 .
  4. 1 2 "ما هو MSYS2؟" . MSYS2 . تم الاسترجاع بتاريخ 11-04-2026 .
  5. "مجمع GNU (as)" . وثائق GNU Binutils . تم الاطلاع عليه بتاريخ 11-04-2026 .
  6. "رابط GNU (ld)" . وثائق GNU Binutils . تم الاطلاع عليه بتاريخ 11-04-2026 .
  7. "دليل مكتبة GNU C++" . وثائق GCC على الإنترنت . مؤسسة البرمجيات الحرة . تم الاطلاع عليه بتاريخ 11 أبريل 2026 .
  8. "GNU Fortran و GCC" . وثائق GCC على الإنترنت . مؤسسة البرمجيات الحرة . تم الاطلاع بتاريخ 11 أبريل 2026 .