All But Reality

Imagine a catchphrase here

Simple template. Background and Customization by Shihab Elagib. Powered by Blogger

February 05, 2016

Bloatware

ملحوظة: النص الأصلي لمقال نشر على الفيسبوك بتاريخ 31-ديسمبر-2013. تمت اعادة صياغته بالعربية الفصحى (على قدر المتاح) مع تعديل بعض اجزائه حسبما رأيت مناسباً (او بلغة اخرى: حشو....).

هل سبق ان مر عليك مصطلح Bloatware؟
Bloat بالانجليزية تعني "انتفاخ"، وتستخدم -عادة- لوصف شيء حجمه اكبر من الطبيعي، وفي حالة الامور الطبية تستخدم لوصف انتفاخ عضو في الجسم نتيج لإحتقان مواد غالباً ما تكون ضارة له ومعطلة لعمله.
Bloatware مصطلح يستخدم في عالم البرمجيات للإشارة الى سوفتوير مثبت على جهاز حاسبٍ شخصي ما (سواء كان حاسباً مكتبي او محمول او لوحي او هاتفٌ ذكي) يشغل مساحة من وحدة تخزينه ويستهلك نصيباً من موارده من دورات المعالج او الذاكرة او غيرها دون ان يقدم فائدة للمستخدم تساوي ما يستخدمه من موارد او تقديم اي فائدة مطلقاً!


وان كان هذا التأثير يختلف من منصة حوسبة الى اخرى، الا انه من الممكن الاتفاق على ان البرامج -بدون الدخول في التفاصيل- التي تعمل في اي لحظة على حاسب ما تشغل حيزاً من الذاكرة، تملأه بالملفات التنفيذية وملفات المكتبات وباقي الموارد التي قد يحتاجها البرنامج من ملفات صوتية ومرئية. هذه البرامج ايضأ قد تشغل المعالج المركزي لعدة دورات (clock cycles) للقيام بأعمال اما بسيطة كحساب الوقت اومعقدة كالقيام بحسابات تشفير او فك تشفير. اما المورد الثالث الذي تحتاجه البرامج والذي اعتبره شخصياً الاهم لسلاسة عمل الحاسب الشخصي هو سعة نطاق (bandwidth) وحدة التخزين، او معدل نقل البيانات بين وحدة التخزين وباقي الحاسب الشخصي. اي برنامج يعمل في نطاق المستخدم لا بد ان تنقل بياناته من وحدة تخزين دائمة، والكثير من تلك البرامج يتطلب ولوجاً متكرراً لتلك الوحدة، اما لإستدعاء ملفات بصورة متجزئة لعدم امكانية احتوائها جميعاً في الذاكرة الرئيسية، او لغرض كتابة تقرير او حفظ نسخة احتياطية او نهائية للبيانات قيد المعالجة في ذاك البرنامج.

عند قيام المستخدم بتشغيل برنامج ما، فالموارد المذكورة اعلاه (بالاضافة لأخرى لا يسعفني ذكرها) ثمن منطقي ينبغي دفعه مقابل الفائدة التي سينالها المستخدم من ذاك البرنامج، لكن في حالة اي برنامج bloatware تختلف الصورة، ففيه تنعدم -او تقارب من ان تنعدم- الحوجة و الفائدة المرجوة منها، لكنه يظل يعمل -غالباً في الخفاء- مستهلكاً لتلك الموارد ومزاحماً عليها برامج اخرى يحتاجها المستخدم. ناهيك عن ان هذه البرامج تضيف عناصر اخرى الى مجموعة العناصر التي قد تؤدي الى مشاكل محتملة في الحاسب (اتذكر دروس الاحتمالات في الاحصاء؟). فكثيراً ما ستجد ان هذه الـbloatware -خاصة رديئة الكتابة منها- مؤدية الى اخطاء -في ابسط صورها- تشغل المستخدم عن عمله او تدخله في حالة شك وريبة لمسببات هذه الاخطاء، وفي بعض الحالات قد يصل بها الامر الى تحويل امر بسيط كعملية تشغيل الجهاز Booting process الى قصفٍ بوابلٍ من رسائل الخطأ والتحذيرات التي قد تؤدي بنظام التشغيل الى التجمد او الفشل (لا زلت لا اجد ترجمة مقبولة لمصطلح crash!).

(من) اكثر برامج الـbloatware انتشاراً هي تلك التي تأتي مثبتة مع الاجهزة مسبقة التجميع (كحال الحواسيب المكتبية الجاهزة وجميع الحواسيب المحمولة واللوحية والهواتف الذكية). فاذا اخذت مثلاً مصنعي الحواسيب المحمولة لربما لاحظت ميلهم لإرفاق العديد من البرمجيات من الطرف الثالث (Third party software) مثبتة على نظام الحاسب (غالباً احد اصدارات الويندوز). للأسف، فإن هذه البرامج يندر ان تقدم خدمة تذكر لمشتري الجهاز، غالباً لكونها تضيف طبقة اخرى لآلية عمل النظام (التي يمكن وصفها في ابسط صورها بالمستخدم -> النظام وطبقاته الاساسية متضمنة محركات العتاد -> العتاد)، مسببة بذلك زيادة في احتماليات حصول مشاكل في الجهاز اما لاخطاء برمجية (bugs) في البرامج نفسها، او نتيجة لعدم توافق مع برامج اخرى في النظام او مع عتاد ما في النظام، او حتى مع النظام نفسه بعد تحديثه او اجراء تعديل ما فيه. (انظر مبدأ شفرة اوكام).

قديماً، عندما كانت انظمة التشغيل (وهنا اتحدث عن الويندوز بصورة رئيسية) بسيطة التركيب ومحدودة الادراك، في عهد ويندوز XP وما قبلها، كان يمكن للفرد ان يعلل للحوجة لبرامج المراقبة والصيانة التي يرفقها مصنعوا الحواسيب مع منتجاتهم. لكن مع تطور الويندوز والدخول في عهد ويندوز فيستا و7، اصبح الحوجة لمثل هذه البرمجيات تقل وتقل، حتى اصبحت غالبية الخيارات والادوات التي تتيحها البرامج المرفقة لا تعدو اطناباً وتكراراً لادوات ومميزات موجودة في الويندوز بالفعل.

لعل احدى اكثر الامور التي تجعلني انفر من البرامج المرفقة مع الحواسيب مسبقة التجميع هي فرضها لنفسها على النظام، فتلك البرامج تبدأ عملها منذ بداية تشغيل النظام وتستمر في العمل (وبالتالي استهلاك الموارد) طيلة عمل الجهاز، ناهيك عن ان بعضها يرهق المستخدم بإشعارات وانذارات متكررة، و وفي بعض الحالات قد تجعل نفسها المشغل الرئيسي لبعض انواع الملفات. ولا ننسى حالة تلك الانظمة المنغلقة على نفسها مثل الاندرويد (وبـ"منغلقة" لا اقصد الحالة القانونية لمصدر الشفرة) حيث لا يمكن للمستخدم حذف اي برنامج رأى صاحب اصدار النظام ان يشحنه مع الهاتف او الحاسب اللوحي (دون الدخول في متاهات ودهاليز كثيراً ما تكون معقدة للحصول على صلاحيات الـroot). وبالطبع لا ننسى المشاكل الامنية المحتملة لتلك البرامج، وهنا ليس لي الا ان اذكر حادثة شركة لينوفو مع برنامج Superfish.
 كل هذا نتاجه ان ذاك الحاسب الجديد الذي اشتراه المستخدم اداؤه اقل من المفروض. ومع التراكم المتوقع للبرامج التي يثبتها المستخدم بالإضافة لتردي اداء العتاد سيظل اداء الجهاز في انخفاض، واحتماليات حصول مشاكل في ازدياد، الى درجة قد تجعل من المستحيل على المستخدم العمل على هذا الحاسب.
هذا لا ينفي طبعاً ان هنالك عدد من البرامج المرفقة ذات الفائدة العظيمة للمستخدمين، لكنها اقلية وسط عدد كبير من اخواتها الائي يقعن -بالنسبة للكثير من المستخدمين- ضمن تعريف الـbloatware.

البرامج المرفقة مع الحواسيب مسبقة التجميع ليس هي الوحيدة التي -غالبا ما- تنال لقب bloatware، فالكثير من هذه البرامج يجد طريقه للنظام خلال الاستخدام النهائي له. فالمستهلك المتوسط لا يملك ما يكفي من الوعي التقني لفرز ما يحمله و يثبته على حاسبه، بل غالباً لا يملك حتى ما يكفي لدفعه لتنظيف الحاسب من البرامج التي لا يحتاج اليها. فالنتيجة هي تراكمً لبرامج قد تكون حين تثبيتها ذات اهمية للمستخدم، لكن مع مرور الوقت واختفاء حوجته لها تتحول تدريجياً لـbloatware، خاصة تلك التي برمجت بصلاحيات تتيح لها العمل دون تدخل من المستخدم.

احدى السوفتوير التي كثيراً ما تعتبر bloatware هي اشرطة الادوات Toolbars الثانوية التي تضاف لمتصفحات الانترنت. كثيرأ ما تعتبر كذلك نسبة لأن الاستخدام الغالب للمتصفح اما عن طريق الابحار مباشرة الى الموقع الالكتروني المطلوب او عبر محرك بحث يتم الوصول اليه بأدوات مبنية في المتصفح نفسه (حيز عنوان الموقع يعمل ايضأ كحيز لإستخدام محرك البحث في جميع المتصفحات الكبرى). هذه الأشرطة لا تؤثر في اداء النظام نفسه، لكنها كثيرأ ما تؤثر سلباً على اداء المتصفح، وفي بعض الاحيان قد تشكل خطراً على خصوصية وبيانات المستخدم عبر "اختطاف" المتصفح وتحويل الصفحة الرئيسية ومحرك البحث المستخدم لأخرى تربح صاحب البرنامج، وفي بعض الاحيان قد تصبح برامج اعلانات غير مرغوب بها.
لحسن الحظ، فإن مثل هذه البرمجيات لم تعد تشكل نفس التهديد والازعاج التي كانت عليه في الماضي. أكثر سبل إنتشار لهذه الأشرطة هي عبر ارفاقها مع ملفات تثبيت برامج اخرى ذات فائدة للمستخدم كحال الكثير من البرامج المجانية التي يربح اصحابها من الاتفاقيات التسويقية (ارفاق شريط المهام مع ملف تثبيت البرنامج يربح مطوره دولاراً مقابل كل كذا مستخدم قام بتثبيت الشريط مثلاً). لكن بعض المتصفحات الكبيرة -مثل كروم- اتجهت لإغلاق المنفذ امام تثبيت اضافات للمتصفح من اي مصدر عدا متجر قوقل للإضافات، اما الاصداراتا الأخيرة لمتصفح مايكروسوفت انترنت اكسلبورر اصبحت تنبه المستخدم عند تشغيلها لوجود اضافة تسبب تأثيراً سلبياً في اداءه. 

من البرامج الاخرى التي قد تدخل في تصنيف الـbloatware هي برامج الصيانة وتسريع اداء الجهاز. هنا يجب ان انبه الى ان هذه الفقرة لا تعنى بمحاولات السرقة والاحتيال التي تتنكر كمحاولات لصيانة اعطال وهمية في الجهاز او تسريع اداءه للضعف، لكنها تتحدث عن برامج لا تحوي على ملفات خبيثة (وان كان لا يمنع انها قد تأتي محملة بشفرات لبرامج غير مرغوبة PUP).
بالنسبة لبرامج الصيانة، فحالها مثل حال البرامج المرفقة مع الاجهزة مسبقة التجميع اعلاه، مجموعة من الادوات المشابهة لأدوات مبنية بالفعل في النظام او -في بعض الحالات- ليست سوى نافذة اخرى لتشغيل ادوات النظام. اغلب -ان لم يكن كل- برامج الصيانة لا يخرج نطاق عملها من الأتي:
- تفريغ الملفات المؤقتة في النظام. عملية من النادر ان يكون له تسريع لأداءه، لكنها تفرغ حيزاً من سعة وسيط التخزين للمستخدم. الويندوز يحمل اداة تمكنه من القيام بنفس الوظيفة تحت اسم Disk Cleanup.
- تفريغ الذاكرة الرئيسية، غالباً عبر اوامر لجعل النظام يحذف ملفات برامج الخلفية والملفات غير المستعملة من الذاكرة. هذا الفعل قد يأتي بأثر عكسي نسبة لأن الويندوز افتراضياً يملأ الذاكرة بملفات يتوقع ان يحتاجها المستخدم لتسريع عمليته. حذفها سيؤدي الى دفع الويندوز لإعادة نقل هذه الملفات الى الذاكرة، اي انه سيتعب النظام في اعادة تكرار عملية تم القيام بها مسبقاً بالفعل.
-مسح الملفات غير المستخدمة من الـRegistry، امر ستجد الخبراء واصفينه بانه لا يؤثر مطلقأ على اداء الويندوز، اللهم الا ان كنا نتحدث عن انظمة ما قبل ويندوز ME (راجع التعليقات على المدونة). الأعطال التي قد تحدث نتيجة لمشاكل في الريجستري ليست إحتمالاً منعدماً، لكنه امر نادر الحدوث جدأً. 
-ايقاف التشغيل التلفائي للبرامج وحذف البرامج غير المرغوب بها من الجهاز. امر يتيح الويندوز بالفعل له عدة ادوات، System Configuration او msconfig للملفات التنفيذية (تم استبداله بمدير المهام Task manager لهذا الغرض منذ ويندوز 8) والخدمات، Services.msc للخدمات ونافذة Add or Remove Programs لحذف البرامج. ما يثير السخرية هو ان الكثير من هذه البرامج يضيف نفسه لقوائم التشغيل التلقائية، اي انه مذنب لما يعد بإصلاحه.
-القيام بعملية الغاء تجزئة البيانات على الاقراص الصلبة defragmentation. الويندوز يأتي بأداة مخصصة لهذا الغرض، ناهيك عن ان هذه العملية تشكل خطرأ لمحركات الحالة الصلبة SSDs دون اي فائدة ابداً.
-تعديل خيارات اخرى في الويندوز متاحة في نوافذ مخصصة لها. كإعدادات الطاقة  واعدادات الذاكرة الافتراضية اوغيرها.

برامج تسريع النظام (او في رواية: تسريع الالعاب) قد تقوم بما ذكر اعلاه بالإضافة لتغير اعدادات عرض الواجهة الرسومية. غالب هذه البرامج يقوم بالمختصر بتحويل قالب العرض من الافتراضي المبني على واجهة Aero او ModernUI (متضمنة الزخرفة والمحسنات المظهرية) الى القالب المبدئي او الكلاسيكي. امر يمكن ببساطة القيم به من ادوات متاحة في النظام، ناهيك عن انه لا يضيف سوى بضع كسور عشرية في المائة للأداء (فيما عدا بعض الحالات الشاذة).

اما على صعيد الهواتف المحمولة والحواسيب اللوحية، فستجد استفحالاً اكثر لصنف برامج الصيانة التي تعد بالمحافظة على -او اطالة عمر- بطارية الجهاز. الحديث عن استحقاق هذه البرامج للقب bloatware موضوع للجدل، فعلى احدى الكفتين تجد ان اغلب هذه البرامج تقوم بعمليات (يفترض انها) متاحة اصلاً من النظام، بالإضافة الى ان الخطوات التي تتبعها هذه البرامج للتخفيف من هدر الطاقة من اغلاق للطبيقات تأتي بأثر رجعي (الانظمة الحديثة تعلق عمل اغلب برامج الخلفية، وجودها في الذاكرة يستهلك من الطاقة ما تحتاجه الذاكرة فقط للإحتفاظ بالشحنة. اغلاق هذه البرامج سيتطلب دورات ساعة من المعالج بالإضافة لقراءة وكتابة من وعلى كلاً من الذاكرة ووسيط التخزين).
اما على الكفة الاخرى فسنجد ان الكثير من اصدارات الاندوريد -مثلاً- لا تتيح للمستخدم كل سبل التحكم في العوامل المؤثرة على استهلاك الطاقة على الرغم من انها متاحة في قلب النظام. هنا تصبح مثل هذه البرامج واجهة رسومية لتلك الاليات.

عموماً، فإن غالبية هذه البرامج في رأيي لا تعدو كونها زيت افعى تراهن على تأثير البلاسيبو لتسويق نفسها، او بلغة اخرى تقع تحت تصنيف الـbloatware. بدون نكران ان هنالك بعض الحالات التي قد يخرج المستخدم منها بفائدة لتلك البرامج.

وهنا ينبغي التكرار: وصف bloatware يتطلب ان تنعدم الفائدة من البرامج مقارنة بالموارد التي يستهلكها. اي ان الامر -في اخر المطاف- به شيء من النسبية. ما ذكرته اعلاه قد يعتبره الكثيرون bloatware، لكن لفرد ما بظروف استخدام ما قد تختلف الصورة بالكامل. تحديد هل هذا البرنامج bloatware ام لا يتطلب من المستخدم ان يسأل نفسه سؤالاً واحداً: هل لي فائدة -حقيقية- من هذا البرنامج؟
ان افضل طريقة لاستخدام اي حاسوب بأعلى كفاءة وسرعة ممكن هي بتشغيله اخف وابسط ما يمكن، بتفادي تثبيت اي برنامج لا حوجة له والاكتفاء بالضروري فقط، وبالتعلم والبحث المستمر والتجربة والخطأ.