الملفات التنفيذية الساكنة وmusl
وزّع ملفات تنفيذية مكتفية ذاتيًا
الملفات التنفيذية الساكنة وmusl درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.
ماذا يعني ثابتًا
يضمّن الملف الثنائي الثابت مكتباته داخل الملف التنفيذي، ولذلك يعمل من دون الاعتماد على مكتبات مثبتة على الجهاز المستهدف.
ديناميكي أم ثابت
يحمّل الملف الثنائي الديناميكي المكتبات المشتركة وقت التشغيل. أما الملف الثابت فيحملها معه، مقابل حجم ملف أكبر وعدد أقل من التبعيات.
لماذا تقاوم glibc الربط الثابت
يصعب ربط مكتبة C الخاصة بـ gnu، وهي glibc، بشكل ثابت بالكامل، وقد تتعطل على أنظمة تستخدم إصدارًا مختلفًا من glibc.
musl تنقذ الموقف
مكتبة C المسماة musl صغيرة وترتبط بسهولة داخل ملف ثنائي ثابت، ما يجعلها ABI المفضلة لبناءات Linux المحمولة.
اختيار musl في الثلاثية
اختر musl بتعيينها في حقل ABI. وعند انتهاء -target بـ musl، يربط Zig مكتبة C الملائمة للربط الثابت.
zig build-exe main.zig -target x86_64-linux-muslثابت غالبًا تلقائيًا
بالنسبة إلى هدف Linux الذي يستخدم musl، يربط Zig libc بشكل ثابت افتراضيًا، ولذلك يكون الملف التنفيذي الناتج مستقلًا بالفعل.
التحقق باستخدام ldd
تحقق من عملك على Linux باستخدام ldd. سيُبلغ الملف الثنائي الثابت حقًا بأنه ليس ملفًا تنفيذيًا ديناميكيًا.
ldd appالتشغيل في أي مكان على Linux
يمكن نسخ ملف musl الثابت إلى أي جهاز Linux تقريبًا وتشغيله، حتى في الحاويات محدودة الإمكانات، لأنه لا يحتاج إلى libc خارجية.
ممتاز للحاويات
تتألق الملفات الثنائية الثابتة في الصور الصغيرة. يمكنك وضع أحدها في حاوية scratch بلا مكتبات نظام، وسيظل يعمل.
انتبه إلى المقايضات
الملفات الثابتة أكبر حجمًا وتضمّن libc الخاصة بها، ولذلك يعني إصلاح أمني في المكتبة أنه يجب عليك إعادة البناء للتحديث.
تصغير الحجم باستخدام ReleaseSmall
لتعويض الحجم الأكبر، أنشئ البناء باستخدام ReleaseSmall، الذي يحسّن الملف الثنائي الثابت ليشغل أصغر مساحة ممكنة.
zig build-exe main.zig -target x86_64-linux-musl -O ReleaseSmallتحقق سريع
تذكّر أي مكتبة C يقرنها Zig بالملفات الثنائية الثابتة المحمولة لنظام Linux.
مراجعة
تعلّمت أن الملفات الثنائية الثابتة تضمّن مكتباتها، وأن استهداف musl يمنحك ملفات Linux تنفيذية محمولة بلا تبعيات. 📦
الأسئلة الشائعة
هل درس «الملفات التنفيذية الساكنة وmusl» مجاني؟
نعم — نص درس «الملفات التنفيذية الساكنة وmusl» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.
ماذا ستتعلم في «الملفات التنفيذية الساكنة وmusl»؟
وزّع ملفات تنفيذية مكتفية ذاتيًا تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟
لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «الملفات التنفيذية الساكنة وmusl»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟
نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الأهداف وثلاثية -target
- البناء لـ Linux وmacOS وWindows
- الترجمة المتقاطعة لـ C باستخدام zig cc
- الملفات التنفيذية الساكنة وmusl