٣٠ مقابلة مع مطوري نواة لينكس في ٣٠ أسبوعا: بول مندت

نشره Fahad في

دار المقابلة: جينيفر كليور.

سنتحدث في ملف هذا الأسبوع ضمن سلسلتنا على مدار ٣٠ أسبوع مع بول مندت والذي يعمل على تصميم SuperH والأجزاء الأساسية من منصات الهواتف SH/R المبنية على معالجات AMR. كما يشارك بول المطورين الآخرين الكثير من قصص الكفاح لما يقارب من ٢٠ سنة قضاها في تطوير نواة لينكس من بينها تلك التي تثبت أن التعاون والمساهمة في مجتمع تطوير لينكس لا يصيبه الكلل والملل حتى عندما تقوم بذلك أثناء القيام برحلة عبر القارات. يمكنك الاطلاع على بقية المقابلات على هذه الصفحة.

الاسم الكريم؟؟

بول مندت

ما الدور الذي تلعبه في المجتمع/أو ما الأنظمة الفرعية التي تعمل عليها؟؟

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

وبعيدا عن دوري الأساسي كمشرف تصميم معماري ، فوقتي في الغالب مقسم بين إدارة الذاكرة (خاصة الأمور المتعلقة بأنظمة MMU-less ودعم NUMAوانتشار TLBs) وبين ضبط الإعدادات العامة وإعدادات الوقت وإدارة IRQ. أما في الآونة الأخيرة فإني أعمل على جعل نطاقات IRQ ذات فائدة أكبر (ولا سيما المتعلقة بـnon-DT) وتوسيع clockevent لإدارة قنوات المؤقت غير المستخدمة بشكل أفضل.

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

من الذي يقوم بدفع راتبك الشهري؟؟

Renesas Electronics

في أي بقاع العالم تسكن؟ ولماذا في ذلك المكان بالذات؟؟

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

ما أدواتك المفضلة التي تستخدمها في تطوير البرامج؟ وأي الأنظمة تستخدم في حاسبك الشخصي؟؟

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

كيف انضممت إلى مجتمع تطوير نواة نظام لينكس؟؟

التحقت بمجتمع لينكس في وقت متأخر جدا حوالي عام ١٩٩٦. ولقد بدأت بشكل عادي حيث كانت بداياتي مع كومة من بطاقات ISA العشوائية حيث الدعم القليل أو أن يكون قد توقف بشكل كلي. مشروعي الأول كان عبارة عن محاولة ضبط DMA للعمل على 3c501 أو أمر مماثل على أحد إصدارات نواة 2.0. لقد كان الأمر منذ فترة طويلة بما يكفي حتى لا أتذكر التفاصيل ولكن بكل تأكيد لم تكن ممتعة لي. عندما تم دمج نظام framebuffer في أواخر إصدارات 2.1.x بدأت بقضاء بعض الوقت هناك ثم انتقلت تدريجيا للعمل على التصاميم المعمارية (في البداية MIPS ثم SuperH عن طريق الهندسة العكسية للـDreamcast).

ما سبب استمرارك في الاهتمام بالمجتمع؟؟

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

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

ما هو أكثر شيئ استمتعت به أثناء اشتراكك في عملية التطوير التعاونية (النقاشات الملتهبة ، تسليم الأكواد البسيطة أو الإنجازات المدهشة)؟؟

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

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

ما النصيحة التي تقدمها للمطورين الذين يرغبون في الانضمام إلى المجتمع؟؟

لا تحصر نفسك ضمن حدائق مسورة.

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

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

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

ما الذي تستمع إليه وأنت تبرمج؟؟

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

أي قائمة بريدية أو قناة IRC تستخدم؟؟ وأي المؤتمرات تحضر؟؟

بالنسبة للقوائم البريدية فهي تتمثل في المجموعة المعتادة المتمثلة في كل من linux-kernel و linux-arch والقضايا الأخرى المتعلقة بتخصصي المعماري و linux-sh.

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

 

رابط المقالة باللغة الإنجلزية هنا.

ترجمة: زاهر النوتكي