بيزي بوكس

بيزي بوكس هو مجموعة من البرمجيات أو البرامج المجمعة في برنامج واحد متكامل يحوي جميع وظائف مكوناته البرمجية المخصصة لتنفيذ أوامر يونكس، يعمل بيزي بوكس على بيئات بوسيكس مثل لينكس، أندرويد، فري بي أس دي وآخرين وعلى الرغم من كون العديد من الأدوات التي يحويها بيزي بوكس صممت للعمل على أنظمة لينكس إلا أنه في الأصل تم إنشائه للعمل على أنظمة التشغيل المضمنة (embedded operating systems) المخصصة للعمل مع محدودية العتاد المهيأ في الأجهزة الحاوية، ويعد بيزي بوكس السكين السويسري لأنظمة لينكس المضمنة، ويعد كذلك أحد البرمجيات الحرة ويندرج تحت رخصة جنو العمومية الثانية.
تاريخ بيزي بوكس
في بداياته تمت كتابة بيزي بوكس على يد بروس بيرنز في العام 1995 وأعلن عن اكتمال مشروعه في العام 1996، وكان الهدف الأصلي لبيزي بوكس هو إنشاء نظام قابل للإقلاع على قرص مرن واحد الذي يقوم بعدة أدوار في نفس الوقت بحيث يمكن استخدامه كقرص إنقاذ وقرص تنصيب لنظام دبيان، ومنذ ذلك الوقت تم توسيع العمل فيه ليكون حاضنة أدوات المستخدم المعيارية لأنظمة لينكس المضمنة ومنصبات توزيعات لينكس.
و بما أن كل ملف تنفيذي يعمل على بيئات لينكس يحتاج عدة كيلوبايتات من المساحة التخزينية ومساحة مثلها على الذاكرة الرئيسية لجهاز الحاسوب فإن بيزي بوكس يأتي هنا لاختصار هذه المساحة التخزينية وتوفيرها على القرص الصلب وذاكرة الجهاز الرئيسية حيث يضم بيزي بوكس أكثر من 200 برنامج مجمعة في ملف تنفيذي واحد الذي بدوره يوفر مساحة تخزينية ومساحة معالجة.
قام إنريكيو زاناردي بصيانة بيزي بوكس وتطويره حيث قام بالتركيز على الاحتياجات البرمجية المخصصة لأقراص الإقلاع والتنصيب في ديبيان حتى العام 1998 حيث قام دايف سينيج بأخذ تطوير البرمجية ونقلها إلى مشروع "(Linux Router Project (LRP"، قام دايف بإضافة عدة إضافات وإنشاء بيئة بناء نمطية وقام بتحويل اتجاه تركيز بيزي بوكس نحو الأنظمة المضمنة العامة، ومع تباطؤ العمل في مشروع LRP وفي العام 1999 أصبح إيريك أندرسون (الذي مثل لاحقاً شركة لينيو) هو المسؤول عن تطوير بيزي بوكس وتحسينه وكان ذلك بين شهر ديسيمبر من العام 1999 ومارس من العام 2006 وفي هذه الفترة توسعت أسواق الأنظمة المضمنة ونمت وتطور بيزي بوكس وازدادت أعداد مستخدمية وازدادت أيضاً وظائفه وتحسنت، وفي عام 2005 أصبح روب لاندلي المسؤول عن تطوير بيزي بوكس وتحسينه وبقي كذلك لعدة سنوات، المسؤول الحالي (وقت كتابة هذه المقالة بتاريخ 19 نوفيمبر 2012) هو داينيس فلاسينكو وقد تولى هذا المركز في شهر مايو من العام 2012.
المزايا والإضافات
يمكن تخصيص بيزي بوكس وتهيأته ليضم مجموعة من الوظائف البرمجية التي يزيد عددها عن 200 وظيفة برمجية، ويمكن له أيضاً أن يقدم معظم الوظائف التي تمتاز بها الأنظمة المدرجة تحت مواصفات يونكس المنفردة "(Single Unix Specification (SUS" بالإضافة إلى وظائف أخرى عديدة يتوقعها أي مستخدم لنظام لينكس، يستخدم بيزي بوكس واجهة سطر الأوامر ash لتنفيذ أوامره ويمكن الوصول إلى قائمة كاملة من الوظائف التي يقوم بيزي بوكس بتنفيذها في موقعه على الإنترنت.
ملف تنفيذي موحد
من المعروف أن أي برنامج نموذجي يتم تمثيله في أي نظام تشغيل بملف تنفيذي واحد لكل برنامج يتم تنصيبه على النظام، وكأي برنامج يتم تنصيبه فإن بيزي بوكس أيضاً هو برنامج ويتم تمثيله بملف تنفيذي واحد وميزة بيزي بوكس تكمن في كونه يتمثل بملف تنفيذي واحد وفي نفس الوقت يستطيع القيام بوظائف عديدة متعلقة ببرامج أخرى وكل هذه الوظائف يتم استدعائها من اسم واحد فقط مع تمرير أدوات التخصيص لتنفيذ الوظيفة أو عن طريق الروابط الرمزية المعروفة ب "Symbolic Links".
و يستفيد مستخدمو بيزي بوكس من خاصية الملف التنفيذي الموحد حيث تتيح هذه الخاصية التقليل من المصادر المستهلكة لعملية تنفيذ الأوامر واختصارها بملف تنفيذي واحد، ومن الناحية البرمجية يستفيد المبرمجون من هذه الخاصية لأنها تتيح الفرصة لمشاركة الوظائف في الشيفرة المصدرية بين أكثر من تطبيق دون الحاجة لاستخدام المكتبات البرمجية أثناء التطوير والبرمجة وهذه الحالة مشابهة لما يتم استخدامه في الأمر (crunchgen) الذي يتم تنفيذه على أنظمة فري بس أس دي، وعلى جميع الأحوال فإن بيزي بوكس يتيح استخدام نسخة مبسطة من خدمات التطبيقات الأساسية فعلى سبيل المثال يمكن للمستخدم استدعاء الأمر (ls) للقيام بسرد محتويات مجلد ما بدون وجود خاصية ترتيب الملفات، بينما في الأمر (crunchgen) يستطيع المستخدمين الحصول على وظائف كاملة عن تجميع التطبيقات التي تقوم بتنفيذ هذه الوظائف.
الاشتراك في وظائف الشيفرة المصدرية مع الأخذ بعين الاعتبار تصغير المكونات البرمجية الوطيفية (routines) يسمحان لبيزي بوكس بأن يكون أصغر حجماً من تلك التطبيقات المنفردة التي يقوم بيزي بوكس باستبدالها، وللتدليل على ذلك فقد تمت مقارنة نسخة جنو بيزي بوكس المسمى (asmutils) مع تطبيقات يونكس المعيارية المكتوبة بلغة بيرل ووجد أنه في بعض الحالات يكون بيزي بوكس أسرع في تنفيذ الوظائف ولكن هذه الحالة ليست دائمة ولا يمكن تعميمها.
أمثلة
يمكن تنفيذ البرامج المنصوبة في بيزي بوكس ببساطة عن طريق تمرير أسماءها كمدخلات لمسار الملف التنفيذي الكامل، فعلى سبيل المثال لتنفيذ الأمر (ls) يمكنك استدعاء الملف التنفيذي لبيزي بوكس وتمرير الاسم (ls) كأحد مدخلات التنفيذ كالتالي:
bin/busybox ls/
و من الشائع أيضاً استخدام أسلوب الروابط لتنفيذ الأوامر عن طريق بيزي بوكس سواء أكانت روابط رمزية (Symbolic Links) أو روابط ثابتة (Hard Links)، ومن ثم يقوم بيزي بوكس بتمييز الأوامر المراد تمريرها ويقوم بعد ذلك بتنفيذها، على سبيل المثال بعد ربط المسار (bin/ls/) بالمسار (bin/busybox/) يمكنك تنفيذ أمر (ls) بالشكل التالي:
bin/ls/
الأوامر
في صفحة التوثيق الرسمية لبيزي بوكس تستطيع الحصول على نظرة عامة لكل أمر يدعمه بيزي بوكس بالإضافة إلى توثيق لمدخلات الأمر، ومن الأمثلة على الأوامر التي يقوم بيزي بوكس بتنفيذها ما يلي:
ash (مفسر أوامر).
awk (لغة برمجة نصية).
cat - (طباعة محتوى أي ملف إلى معرف الإخراج).
Chmod - (تغيير أوضاع الملف أو المجلد).
cp - (أمر نسخ).
date - (إظهار تاريخ ووقت النظام).
dd - (نسخ ملف مع التحويل والتنسيق).
df - (طباعة احصائيات عن استخدامات ملفات النظام).
dmesg (طباعة أو التحكم في المخزن الحلقي المؤقت لنواة نظام التشغيل).
echo (طباعة سطر من النصوص).
egrep (طباعة السطور التي تحوي نصوص تتطابق نمط معين).
fgrep (طباعة السطور التي تحوي نصوص تتطابق نمط معين).
grep - (طباعة السطور التي تحوي نصوص تتطابق نمط معين).
gunzip - (ضغط الملفات).
gzip - (ضغط الملفات).
init (تهيئة السيطرة على الإجراء).
kill - (قتل الإجراء).
ln - (إنشاء رابط باسم معين أو مجلد معين ليؤشر إلى مكون اَخر).
login - (إنشاء جلسة جديدة في النظام).
ls - (سرد محتوى مجلد معين وإظهار الملفات والمجلدات التي يحويها المجلد الحاوي).
mdu - (لا يوجد توثيق لهذا الأمر حالياً)
mdev - (لا يوجد توثيق لهذا الأمر حالياً).
mkdir - (إنشاء مجلد).
more - (طباعة محتوى ملف معين واعطاء المستخدم القدرة على تصفح المحتوى سطر بعد سطر أو صفحة بعد صفحة).
mount - (تعليق ملفات النظام).
mv - (تحريك الملف أو المجلد من مكان إلى آخر داخل ملفات النظام ويمكن أيضاً استخدام نفس الأمر لإعادة تسمية الملف أو المجلد).
nc - (سكينة سويسرية للتحكم بنظام الشبكة).
netstat - (إظهار معلومات الاتصال الشبكي في النظام).
ntpc (لا يوجد توثيق لهذا الأمر حالياً).
ntpsync (لا يوجد توثيق لهذا الأمر حالياً).
nvram (لا يوجد توثيق لهذا الأمر حالياً).
pidof - (سرد أرقام العميات المعالجة مع إظهار اسم العملية).
ps - (اظهار حالات الإجراءات).
pwd - (طباعة المسار اللحظي).
rm - (حذف الملفات أو المجلدات).
rmdir - (حذف المجلدات).
rstats - (طباعة حقوق الملكية الفكرية لبيزي بوكس).
sed - (محرر نصوص سطري).
sh - (لا يوجد توثيق لهذا الأمر حالياً).
sleep - (توقيف تنفيذ إجراء معين لمدة محددة من الزمن).
tar - (لا يوجد توثيق لهذا الأمر حالياً).
umount - (إفلات الملفات المعلقة وهو يعاكس الأمر mount في التعريف).
uname - (إظهار معلومات النظام).
usleep - (توقيف تنفيذ إجراء معين لعدد محدد من الميكرو ثانية).
vi - (محرر نصوص).
watch - (تنفيذ إجراء معين بشكل دوري).
zcat - (فك ضغط ملف معين وطباعة المحتويات على معرف الإخراج).
الأجهزة
يستخدم بيزي بوكس في عدد من أنظمة التشغيل التي تعمل في الأجهزة المضمنة.
الدعاوى القضائية في انتهاك رخصة جنو العمومية
أول دعوى قضائية أقيمت في المحاكم الأمريكية بخصوص انتهاك رخصة جنو العمومية كانت تخص الاستخدام الغير مشروع للشيفرة المصدرية لبيزي بوكس في أحد الأنظمة المضمنة، الدعوى القضائية التي أقيمت كانت تحمل الرمز (case 07-CV-8205) وتم ذلك في محكمة المقاطعة للمنطقة الجنوبية من نيويورك ورفعت الدعوى بتاريخ 20 سيبتمبر من العام 2007 عن طريق المركز القانوني لحرية البرمجيات "(Software Freedom Law Center (SFLC" نيابة عن أندرسون ولاندلي ضد شركة مونسون ملتيميديا، وحدثت هذه الحادثة بعد اكتشاف الشيفرة المصدرية لبيزي بوكس في عملية ترقية لبرامج ثابتة ومنصبة على أحد الأجهزة، وكان هناك عدد من المحاولات للاتصال بالشركة لحثها على احترام رخصة جنو العمومية إلا ان هذه المحاولات باءت بالفشل، وتم تسوية القضية بعد قيام شركة مونسون ملتيميديا بفتح الشيفرة المصدرية للتغييرات التي أحدثتها على بيزي بوكس ودفع مبلغ غير معروف القيمة لكل من أندرسون ولاندلي.
و بتاريخ 21 نوفمبر من العام 2007 قام المركز القانوني لحرية البرمجيات باحضار قضيتين مشابهتين لصالح أندرسون ولاندلي ضد شركتين وهما شركة إكس تيراسيس وكانت القضية تحمل الرمز (case 07-CV-10456) وشركة هاي جاين أنتيناس وكانت القضية تحمل الرمز (case 07-CV-10455) وتم تسوية قضية شركة إكس تيراسيس بتاريخ 17 ديسمبر بفتح الشيفرة المصدرية للتغييرات التي أحدثتها الشركة بالإضافة إلى دفع مبلغ غير معروف القيمة لكل من أندرسون ولاندلي، وتم أيصاً تسوية قضية شركة هاي جاين أنتيناس بتاريخ 6 مارس 2008 بالامتثال لرخصة الاستخدام ودفع مبلغ غير معروف القيمة لكل من أندرسون ولاندلي، وبتاريخ 7 ديسمبر من العام 2007 تم إحضار قضية أخرى ضد شركة فيريزون كوميونيكيشين التي قامت بتوزيع برامج ثابتة مخصصة للعمل على مسيرات من نوع أكشنتيك وتمت تسوية هذه القضية بتاريخ 17 مارس من العام 2008 بشروط الامتثال لرخصة الاستخدام وتعيين موظف للإشراف على الامتثال لرخص البرمجيات الحرة ودفع مبلغ غير معروف القيمة لكل من أندرسون ولاندلي.
و تم أيضاً احضار بعض القضايا الأخرى المشابهة لما تم الحديث عنه سالفاً حيث تم رفع قضية ضد شركة بيل ميكروبرودكتس بتاريخ 9 يونيو من العام 2008 وكانت القضية تحمل الرمز (case 08-CV-5270)، وأيضاً ضد شركة سوبر ميكرو كومبيوتر حيث حملت هذه القضية الرمز (case 08-CV-5269) وتمت تسوية هذه القضية بتاريخ 23 يوليو من العام 2008 وتمت تسوية قضية بيل ميكروبرودكتس خارج المحكمة بتاريخ 17 أكتوبر من العام 2008.
و بتاريخ 14 ديسمبر من العام 2009 تم رفع قضايا ضد 14 شركة من بينهم بيست باي، وجيه في سي، وسامسونج، وآخرين.
و بتاريخ 3 أغسطس من العام 2010 تم تعويض بيزي بوكس بمبلغ 90,000 دولار أمريكي بالإضافة إلى مبلغ 47,865 دولار أمريكي كتعويض لأتعاب المحاماة والمستحقات المالية المترتبة على القرار القضائي بالإضافة إلى بعض المستحقات الأخرى.
و من الجدير ذكره أنه لم يتم تمثيل أي أحد من المطورين الآخرين في القضايا المرفوعة وتسويتها بما فيهم صاحب الفكرة الرئيسية لبيزي بوكس وهو بروس بيرنز فضلاً عن دايف سينيج الذي قام بحفظ بيزي بوكس وتطويره وكان له فضل كبير في وصول بيزي بوكس لما هو عليه، وبتاريخ 15 ديسيمبر من العام 2009 قام بيرنز بإصدار بيان يعبر فيه عن عدم سعادته ورضاه من بعض الجوانب للموقف القانوني وبالتحديد موقفه من المزاعم التي تفيد «أن من الظاهر أن المطورين الحاليين قاموا بحذف بعض النقاط لحقوق الملكية الفكرية الخاصة بمطورين اَخريين لبيزي بوكس بالإضافة لعدم رضاه من تغيير رخصة الاستخدام التي تعكس المزاعم السالفة الذكر».
وصلات خارجية
المراجع
أدوات برمجة حرة
أوامر شل
برمجيات حرة بلغة سي
برمجيات يونكس
خدمات مواصفات يونكس المنفردة
لينكس مضمن