أسباب تفوق نواة لينكس على نواة وبندوز-الكاتب أحد مطوري ميكروسوفت

بسم الله والحمد لله
هذا المقال مقتطع و مترجم من كتاب After the Software Wars من تأليف : Keith Curtis
ومما يعطي الكتاب أهمية أن مؤلفه مطور عمل أحد عشر عاماً في مايكروسوفت وشارك في تطوير الويندوز ورغم ذلك فهو يشيد بنظام لينكس والبرمجيات الحرة ويبين بطريقة علمية وموضوعية أنها الأفضل ولعل هذا يوضح أن انتقادات مجتمع البرمجيات الحرة لويندوز ومايكروسوفت لم تأتِ من فراغ وليست ظلماً وتجنياً عليها ، كما يناقش الكتاب المواضيع التي يتم طرحها حول البرمجيات الحرة مراراً وتكراراً وبشكل خاص من مستخدمي ويندوز أوحديثي العهد بنظام لينكس ، وبما أن الكاتب عمل لسنوات في مايكروسوفت فهو يتكلم عن خبرة وتجربة ، لذلك من الضروري الاستماع لكلامه وأخذه على محمل الجد .


في ما يلي أسباب تفوق نواة لينكس على نواة ويندوز

1. السبب الأول : إعادة تحليل الكود (الثبات):
إن 50% من نواة لينكس هي تعريفات أجهزة و25% منها كود يختص بالمعالج أما الطبقتان الداخليتان فهما عامتان جداً.
(انظر الصورة في الكتاب لطبقات نواة لينكس التي تشبه طبقات البصل وانظر صورة تصميم نواة ويندوز NT قبل عدة صفحات)


ارفق صورة : post-259874-004179600 1354131888.jpg

طبقات نواة لينكس

إن مخطط تصميم نواة ويندوز NT الموجود قبل عدة صفحات يضع كل تعريفات الأجهزة في مربع صغير في الزاوية اليسارية وهذا يظهر الفرق بين النظرية والواقع.
في الحقيقة لو أنهم في مايكروسوفت رسموا مربع التعريفات التي تعمل في وضع الكيرنل بحيث يشكل حجم المربع 50% من مخطط تصميم ويندوز NT لربما كانوا أدركوا أن الكيرنل يتألف في معظمه من كود يختص بالمعالج ولربما أعادوا النظر في رغبتهم في دخول هذا القطاع .

إن إعادة التحليل ( التنعيم و الصقل والتبسيط والتحسين ) يتم بشكل مستمر في لينكس.

إن Greg Kroah-Hartman القائم على صيانة نظام USB في لينكس أخبرني بأنه خلال تطور تصميم عتاد ال USB خلال العقد الأخير فإن تصميم تعريفات الأجهزة والتصميم الداخلي للنواة تغير بشكل دراماتيكي. ولأن كل تعريفات الأجهزة موجودة ضمن الكرنل فإنه عندما يتم تغيير التصميم لتلبية متطلبات العتاد الجديد فإن التعريفات يتم تكييفها في نفس الوقت.
مايكروسوفت ليس لديها شجرة شيفرة واحدة تحتوي على كل التعريفات. ولأن العديد من شركات العتاد لديها تعريفاتها الخاصة فإن مايكروسوفت مجبرة على الإبقاء على التصميم القديم حتى تعمل التعريفات القديمة. هذا يزيد من الحجم والتعقيد لنواة ويندوز ويبطئ عملية تطويره وفي بعض الحالات يكشف عللاً وعيوباً تصميمية لا يمكن إصلاحها.وقيود التوافقية هذه واحدة من أهم الأسباب التي تجعل ويندوز يستغرق سنوات حتى يصدر. المشكلة موجودة ليس فقط على مستوى التعريفات ولكن في كل رزمة برمجيات مايكروسوفت.
عندما لا يكون المصدر متاحاً بشكل حر وفي مكان واحد فإنه من الصعب تطوير نظام كبير.

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

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

وفقاً لباحثين في جامعة ستانفورد فإن نواة لينكس تحتوي على 0.17 علة لكل ألف سطر من الكود وهو رقم أقل بمائة وخمسين مرة من المعدل في البرمجيات التجارية حيث تحوي من 20-30 علة لكل ألف سطر من الكود.

في مجتمع البرمجيات الحرة فرق التطوير هي كيانات مستقلة لهذا فإن فكرة نقل كود بشكل عشوائي من جزء من النظام إلى جزء آخر لا يمكن أن تحدث بسهولة. في داخل مايكروسوفت لا يوجد هناك حدود لذلك فإن الكود ينقل من مكان لآخر من أجل الحصول على مكاسب قصيرة المدى في السرعة على حساب زيادة التعقيد.

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


ارفق صورة : post-259874-053004800 1354131897.jpg

استدعاءات النظام اللازمة لتلبية طلب ويب بسيط في خادم IIS المملوك من مايكروسوفت



ارفق صورة : post-259874-024244000 1354131906.jpg

استدعاءات النظام اللازمة لتلبية طلب ويب بسيط في خادم Apache الحر

السبب الثاني : قاعدة شيفرة موحدة ( ثبات وقابلية الصيانة وقابلية الاستخدام):

لقد تم ضبط لينكس أولاً ليعمل بشكل صحيح وبعد ذلك تم ضبطه ليعمل بكفاءة على اثنين وأربعة وثمانية واليوم أكثر من ألف نوع من المعالجات.

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



السبب الثالث : دورة إصدار متقاربة (قابلية الصيانة وقابلية الاستخدام) :

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

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

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

في نظام تشغيل حر تعتمد المكونات البرمجية على النسخ التي تم إصدارها فقط. لا يحاول كل فريق تطوير أن يصدر برمجياته بالتزامن مع الفرق الأخرى في نفس اليوم لهذا فالنظام يحتوي آخر النسخ من كل الإصدارات.

إن منظمات التطوير المستقلة قد فرضت حدوداً سهلت الاعتماديات ولهذا فبإمكانهم جميعاً التحرك للأمام بأي سرعة تناسبهم.

السبب الرابع : تكاليف تطوير أقل ( قابلية الصيانة ) :

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

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


ارفق صورة : post-259874-021358400 1354131914.jpg

صورة ويندوز XP مع خمسة فقط من أصل مائة بريمج تضيفها IBM إلى ويندوز.
لاحظ العدد الكبير من إيقونات الحالة في هذا التثبيت شبه الجديد لويندوز.

إن بناء كل تلك البريمجات وتصميم واجهة متعددة اللغات لها وتوفير طريقة لتثبيتها وإعدادها هو أكبر بعشرة مرات من مجرد كتابة تعريف للجهاز وتحسين التعريفات الأخرى ورفعها إلى قاعدة الشيفرة.


السبب الخامس : الأمان (الثبات وتأدية الوظيفة) :

"لتخريب نظام لينكس فإنك بحاجة لأن تعمل على ذلك ، أما لتخريب نظام ويندوز فليس عليك سوى أن تستخدمه"
- "سكوت غرنمان"

تقول وثيقة أصدرها الجيش الأمريكي:

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

فرق كبير آخر بين لينكس وويندوز هو أن لينكس تم تكييفه من نظام يونكس والذي كان له تصميم متعدد المستخدمين منذ البداية. في ويندوز كان المستخدمون في الماضي يملكون وصولاً إدارياً كاملاً للنظام بما في ذلك إمكانية الكتابة فوق ملفات النظام. عندما تتم مهاجمة الحاسب من قبل فيروس فإن الفيروس يمكنه أن يحصل على نفس إمكانيات المستخدم وبالتالي يخفي نفسه داخل ملفات النظام مما يجعل إزالته أمراً صعباً جداً. في لينكس بإمكاني أن أكتب فوق ملفاتي الشخصية أما صلاحية وصولي لباقي الملفات هي القراءة فقط . إن طبيعة تعدد المستخدمين في لينكس وتركيزه على إعطاء حد أدنى من الصلاحيات يقلل من أي ضرر.

وجد "برايان كربس" من صحيفة الواشنطن بوست أن الكود لاستغلال الثغرات في إنترنت إكسبلورر 6 بقي موجوداً لمدة 284 يوماً في عام 2006 في حين أن فايرفوكس كان معرضاً للخطر لمدة 9 أيام فقط.

يجادل البعض بأن لينكس وفايرفوكس لهما فيروسات أقل لأن عدد مستخدميهما أقل ولكن الأباتشي خادم الويب الواسع الانتشار على الإنترنت يحظى باحترام كبير من أجل أمانه.

خلال معظم فترة عملي في مايكروسوفت كنا نقلق حول الميزات والثبات والأداء أكثر من قلقنا على الأمان.

قال المسؤول عن الأبحاث والإستراتيجية في مايكروسوفت " كريغ مندي" في عام 2002 :
"إن العديد من المنتجات التي قمنا بتصميمها في الماضي كانت أقل أماناً مما كان ممكناً أن تكون عليه وذلك لأننا كنا نصممها ونحن نفكر بالميزات أكثر من الأمان".

من ميزات لينكس الأخرى هو أن كل التطبيقات في نظام لينكس تتلقى التحديثات الأمنية أما في عالم مايكروسوفت فإن برمجيات مايكروسوفت فقط هي التي تتم حمايتها بواسطة Windows Update.


السبب السادس : لقد تعلم لينكس من ويندوز :

على سبيل المثال إن لينكس يدعم الإدخال والإخراج غير المتزامن وهي ابتكار من أجل تنفيذ عمليات الإدخال والإخراج دون تقييد موارد خيط المعالجة. هذا ابتكار تم نشره على نطاق واسع في ويندوز NT.

لا توجد عقدة " لم يتم صنعه هنا " في البرمجيات الحرة فالفكرة الجيدة هي فكرة جيدة وإن كانت موجودة كشيفرة جاهزة فذلك أفضل.
في البرمجيات اليوم العائق الأساسي أمام مشاركة الأفكار ليس الأنانية ولكنه اتفاقيات الترخيص.

إن نواة لينكس قد تعلمت من أخطاء مايكروسوفت فعلى سبيل المثال هناك ميزة أضيفت في نواة ويندوز NT 4.0 وهي وضع الشيفرة التي تقوم برسم ال Widgets داخل الكيرنل ، وعلى الرغم من أن هذا يمكن أن يحسن أداء الرسوميات ولكنه أيضاً يعني أن علة في شيفرة زر لديها القدرة على تحطيم النظام بأكمله.


يتبع إن شاء الله ...

0 تعليقات

Brand creation, trend analysis & style consulting

Lorem Ipsum has been the industry's standard dummy text ever since. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since.