BusyBox |
BusyBox مفتوح المصدر ومرخص بموجب GPL. تم إنشاؤه في عام 1995 بهدف جعل نظام قابل للتمهيد يتناسب مع قرص مرن واحد . تجميع الأوامر معًا في ثنائي واحد يقلل من النفقات العامة ويسمح بمشاركة الكود بين التطبيقات التي تبدو مستقلة.
ماذا يشمل BusyBox؟
يجمع BusyBox بين الإصدارات الصغيرة من العديد من أدوات UNIX الشائعة في ملف تنفيذي صغير واحد. إنه يوفر بدائل بسيطة لمعظم الأدوات المساعدة التي عادة ما تجدها في ملفات GNU و shellutils وما إلى ذلك. ومع ذلك ، فإن الخيارات المضمنة توفر الوظيفة المتوقعة وتتصرف مثل نظيراتها في جنو إلى حد كبير. يوفر BusyBox بيئة كاملة إلى حد ما لأي نظام صغير أو مضمن.
يعمل المشروع عن طريق الربط الرمزي لأسماء الأوامر المألوفة في /usr/bin ثنائي BusyBox. ثم يستدعي هذا الملف القابل للتنفيذ الوظيفة المقابلة للاسم الذي تم تمريره كوسيطة أولى له.
- مع BusyBoxmkdir يتم تشغيل الأمر/usr/bin/busybox mkdir
- مع GNU Coreutils - mkdirيتم تشغيل الأمر /usr/bin/mkdir.
يمكنك استخدام أوامر مثل mkdir، passwdو ps، بشفافية tar، wget وبمجرد تثبيت BusyBox. يتم تنفيذ الأوامر كـ "تطبيقات صغيرة" يتم دمجها في توزيع BusyBox فعال. المجموعة الكاملة تزن حوالي 1 ميغا بايت. التطبيقات الصغيرة قابلة للإزالة بحيث يمكن تقليص الحجم الثنائي بدرجة أكبر. يمكنك التحقق مما هو متاح في التثبيت الخاص بك عن طريق التشغيل busybox بدون وسيطات.
نظرًا لأن BusyBox تم إنشاؤه لتشغيل أنظمة صغيرة قابلة للتمهيد ، فإنه يغطي كل ما هو مطلوب في userland لبدء نظام POSIX وإدارته. يمتد ذلك إلى حد أدنى من initالتنفيذ قادر على العمل كمعرف للعملية 1ودعم خدمات النظام. يمكنك اعتماد BusyBox كبديل خفيف الوزن العادي initأو systemdالخفي.
نظرًا لأن BusyBox هو الحد الأدنى عن قصد ، فليس كل أمر ينفذ جميع ميزات نظيره في GNU. كنت قد تجد بعض الأعلام في عداد المفقودين أو الاختلافات السلوكية في حالات غير شائعة. هذه واحدة من المفضالات بين طبيعة BusyBox المبسطة.
أين يتم استخدام BusyBox؟
يمكن العثور على BusyBox حيثما يكون استخدام القرص مصدر قلق. يتم استخدامه من قبل أنظمة التشغيل البسيطة مثل Alpine بالإضافة إلى السيناريوهات المتخصصة مثل الأجهزة المضمنة والأغلفة المحمولة .
من الجيد أن الجهاز المشتق من نظام التشغيل Unix الذي لا يعمل بنظام التشغيل التقليدي سيستخدم BusyBox. ستجده على جهاز توجيه الشبكة والتلفزيون الذكي والسيارة الحديثة وأجهزة إنترنت الأشياء. يتميز كل من هذه الإعدادات بالحاجة إلى تشغيل أدوات userland الأساسية في بيئة محدودة الموارد بشدة.
يعتبر شحن ثنائي واحد متعدد الإمكانات أكثر كفاءة. إنه يقلل التكرار من خلال السماح لجميع الأوامر بمشاركة التعليمات البرمجية الشائعة دون تخزين مكتبات قائمة بذاتها على القرص. نظرًا لأن BusyBox يوفر توافقًا جيدًا مع التطبيقات الأخرى ، ومرخصًا بموجب GPL ، فإنه عادةً ما يكون خيار الانتقال للبيئات التي تحتاج إلى مجموعة خفيفة من الأدوات المساعدة.
يستفيد بائعو الأجهزة المضمنة أيضًا من الطبيعة المعيارية لـ BusyBox. قد يحتاج منتج إنترنت الأشياء فقط إلى عدد قليل من المرافق الحيوية لتوفير وظائفه. يؤدي توزيع نسخة ثنائية معدلة من BusyBox إلى توفير بضعة كيلوبايت إضافية من مساحة القرص والتي يمكن أن تكون توفيرًا كبيرًا.
كيف تجرب BusyBox
يمكنك تثبيت BusyBox دون استبدال الأدوات المساعدة الحالية. استخدم مدير الحزم الخاص بك للإضافة busybox، ثم قم بإلحاق الأمر الذي اخترته busyboxبالثنائي لتشغيل برنامج صغير:BUSYBOX اختبار مكدير
يضمن ذلك استخدام إصدار BusyBox للأمر بدلاً من الإصدار الموجود في المسار الافتراضي لقذفتك.
هناك طريقة أخرى لتجربة BusyBox وهي عبر صورة Docker الرسمية :Docker run -it --rm busybox
إذا كنت قد قمت بتثبيت Docker ، فسوف ينقلك هذا إلى تطبيق shell الخاص بـ BusyBox. يمكنك تشغيل أمر محدد بإضافته بعد اسم الصورة:docker run -it --rm BUSYBOX mkdir demo
يحتوي BusyBox أيضًا على محاكي JavaScript يتيح لك تجربة الأدوات المساعدة في متصفح الويب الخاص بك.
في معظم توزيعات Linux ، لا يمكنك استبدال coreutilsBusyBox بالكامل. غالبًا ما تكون الأوامر والحزم الخاصة بالتوزيع مجسدة لتوقع توفر coreutilsالأدوات المساعدة. عادةً ما يرفض التوزيع الخاص بك إلغاء تثبيت هذه الحزمة لأنه قد يجعل النظام غير صالح للعمل إذا initتمت إزالته.
إذا كنت تريد الاعتماد على BusyBox ، فمن الأفضل أن تبدأ بتوزيع يستخدمه ثم يضع برنامجك الآخر في الأعلى. تعمل إضافة BusyBox جنبًا coreutilsإلى جنب كما هو موضح أعلاه بشكل جيد عندما تحتاج إلى التحقق من كيفية استجابة التطبيق الصغير في سيناريو معين.
هل يمكنني تثبيت BusyBox على جهاز Android؟
بالطبع تستطيع. ومع ذلك ، ليس من السهل القيام بذلك. والسبب هو أن Busybox هو إصدار "تم تجريده" من قذائف UNIX. هذا يعني أنه لا يحتوي على جميع الأوامر المتوفرة على UNIX. عندما يتعلق الأمر بنظام Android ، فإن الأوامر التي ستحتاجها لتشغيل Busybox لا تأتي مع Android: فهي تأتي مع هاتفك أو جهازك اللوحي. لذلك ، لفعل أي شيء مفيد مع BUSYBOX ، ستحتاج إلى العثور على BUSYBOX الثنائي على نظامك وتثبيته.
ما هي التطبيقات المضمنة في BusyBox؟
نظرًا لأن القائمة الكاملة التي تضم أكثر من 300 تطبيق طويلة جدًا لإدراجها هنا ، فسأدرج فقط التطبيقات الشائعة: vi ، netcat ، telnetd ، ash ، sh ، umount ، mount ، ifconfig ، rmmod ، ps ، df ، ping ، hostname ، kill ، false ، echo ، env ، sync ، udhcpc ، udhcpd ، ospf6d ، logread ، route ، iptables ، iptraf ، ntpd ، ntpdate ، tcpdump ، snmpd ، gzip ، gunzip ، inetd ، usleep ، host ، telnet ، shutdown ، umount ، umount dd ، kill، hostname، nslookup، poweroff، ls، cat، ps، free، .
BusyBox هو تطبيق خفيف الوزن لأدوات مستخدم UNIX التي تأتي مجمعة على هيئة برنامج ثنائي واحد. يمكنك دمجه مع Linux kernel لإنشاء نظام فعال بدون تبعيات أخرى.
تم تحسين BusyBox للبيئات ذات المساحات المحدودة. وهذا يجعلها مثالية للمنتجات المضمنة مثل أجهزة إنترنت الأشياء. قد تجد أيضًا BusyBox مثبتًا على الحد الأدنى من توزيعات Linux ولكن للأغراض العامة مثل Alpine Linux.
سواء كنت تستخدم BusyBox أو GNU Coreutils ، فإن أوامرك المألوفة "تعمل فقط" بشكل عام مع أي من التنفيذين. عادةً ما تكون أي مشكلات قد تظهر بسبب عدم قيام BusyBox بتنفيذ علامة نادرة أو خيار تكوين معين.