الملخص:
يقوم مؤسس Linux kernel، Linus Torvalds، بتطوير حل لتحسين أداء Linux kernel بمساعدة أداة برمجة الذكاء الاصطناعي Claude Code.
يستهدف هذا العمل اختناق الأداء في آلية إدارة ذاكرة Linux kernel. الهدف هو تقليل المنافسة الناجمة عن حساب مرجع صفحة الذاكرة عندما تقرأ عدة سلاسل رسائل نفس الملف في نفس الوقت، وبالتالي تحسين كفاءة قراءة الملف. ص> لم يستخدم تورفالدس الذكاء الاصطناعي للمساعدة في كتابة التعليمات البرمجية فحسب، بل استخدم هذه الأداة أيضًا لكتابة برامج الاختبار وإجراء مراجعات التعليمات البرمجية وصياغة ملاحظات التصحيح ذات الصلة. ص> ص>

أثناء انتظار إصدار Linux 7.3-rc7، قام تورفالدس مؤخرًا بتحديث مستودع أكواد Git لنواة Linux الخاص به واكتشف ظهور فرع جديد غير عادي في المستودع. على عكس ممارسته المعتادة المتمثلة في صيانة الفرع الرئيسي، فإن هذا الفرع المسمى "noref-filemap-read-with-llm" مخصص لتطوير سلسلة من تصحيحات تحسين kernel. كما يتبين من LLM في اسم الفرع، يرتبط هذا العمل بالبرمجة بمساعدة نماذج اللغات الكبيرة. ص>
أوضح تورفالدس لاحقًا في ملاحظات التصحيح ذات الصلة أن هذا العمل قد اكتمل تحت إشرافه وبمساعدة كلود كود. لم يشارك الذكاء الاصطناعي في تنفيذ التعليمات البرمجية فحسب، بل ساعد أيضًا في كتابة برامج الاختبار، وإجراء مراجعات التعليمات البرمجية، وصياغة الإصدار الأولي من وثائق سلسلة التصحيح. تم إجراء قياسات الأداء ذات الصلة على جهاز الكمبيوتر الخاص بتورفالدس. ص>
يستهدف هذا التحسين بشكل أساسي مشكلة معينة في مسار قراءة ملف Linux kernel. عندما تقرأ سلاسل رسائل متعددة أجزاء صغيرة من البيانات من نفس الملف في نفس الوقت، فقد تتنافس حول العدد المرجعي لصفحات الذاكرة في ذاكرة التخزين المؤقت لصفحة الملف، مما يتسبب في تنافس سلاسل الرسائل مع بعضها البعض على هياكل البيانات ذات الصلة، وبالتالي الحد من أداء القراءة. ص>
لفهم هذه المشكلة، عليك أولاً أن تفهم كيف تتعامل نواة Linux مع قراءة الملفات. ص>
سيستخدم Linux ذاكرة التخزين المؤقت للصفحة (ذاكرة التخزين المؤقت للصفحة) لحفظ بيانات الملف المقروءة من جهاز التخزين. عندما يصل برنامج مرة أخرى إلى محتويات ملف تم تخزينه مؤقتًا في الذاكرة، يمكن للنواة غالبًا توفير البيانات مباشرة من الذاكرة دون الحاجة إلى إعادة زيارة القرص أو أي جهاز تخزين آخر في كل مرة. لذلك يعد التخزين المؤقت للصفحة آلية مهمة لنظام التشغيل Linux لتحسين كفاءة الوصول إلى الملفات. ص>

من أجل إدارة هذه البيانات المخزنة مؤقتًا، تحتاج النواة إلى تتبع دورة حياة كائنات الذاكرة ذات الصلة. يمكن لآلية حساب المراجع في التطبيقات التقليدية أن تساعد النواة في تحديد ما إذا كان كائن الذاكرة لا يزال قيد الاستخدام ومتى يمكنه تحرير الموارد ذات الصلة بأمان. ص>
ومع ذلك، عندما يصل عدد كبير من سلاسل العمليات بشكل متكرر إلى نفس الملف، حتى لو كانت البيانات التي تقرأها موجودة بالفعل في الذاكرة، فإن عمليات حساب المرجع ذات الصلة قد لا تزال تتحمل حملًا إضافيًا للمزامنة. في نظام معالج متعدد النواة، إذا قامت عدة سلاسل عمليات بتحديث نفس قيمة العدد المشترك بشكل مستمر، فقد تحدث مشكلات مثل زيادة حركة تماسك ذاكرة التخزين المؤقت وانتظار مراكز المعالج لبعضها البعض. ص>
بالنسبة للسيناريوهات أحادية الترابط أو منخفضة التزامن، قد لا يكون هذا الحمل ملحوظًا. ولكن في الخوادم وقواعد البيانات وأنظمة البناء المتزامنة للغاية وأحمال العمل الأخرى التي تحتاج إلى التعامل مع عدد كبير من طلبات قراءة الملفات في وقت واحد، قد تصبح عمليات المزامنة المتكررة تدريجيًا بمثابة عنق الزجاجة في الأداء. ص>
تم تصميم سلسلة التصحيحات التي يقوم تورفالدس بتطويرها لتقليل عمليات العد المرجعي غير الضرورية. الفكرة الأساسية هي ضبط مسار قراءة الملف بحيث تتمكن النواة من قراءة البيانات مباشرة من ذاكرة التخزين المؤقت للصفحة في ظل ظروف معينة دون الحاجة إلى إجراء عمليات إدارة مرجعية تقليدية للملف لكل وصول ذي صلة. ص>
الورقة هنا هي إحدى التجريدات الأساسية التي تستخدمها نواة Linux لإدارة مجموعة من صفحات الذاكرة المتجاورة أو المرتبطة. في السنوات الأخيرة، استخدمت نواة Linux تدريجيًا آلية الورقة لتحل محل بعض أساليب إدارة الصفحة الواحدة القديمة من أجل التعامل مع مهام إدارة الذاكرة بشكل أكثر كفاءة. وبالتالي، أصبحت كيفية تقليل النفقات العامة الناتجة عن حساب عدد الأوراق المرجعية مهمة مهمة في تحسين أداء kernel. ص>
من منظور تقني، لا يؤدي هذا النوع من التحسين إلى إزالة حساب المراجع فحسب. لا يزال يتعين على النواة التأكد من عدم تحرير كائنات الذاكرة قبل الأوان أثناء الوصول إليها، ويجب ألا تسبب تلفًا في البيانات أو مشكلات تتعلق بسلامة الذاكرة عن طريق تقليل عمليات المزامنة. لذلك، تحتاج التصحيحات إلى تحقيق التوازن بين الصحة وسلامة الوصول المتزامن والأداء. ص>
أدى هذا التحسين إلى تغييرات كبيرة جدًا في الأداء في ظل عبء العمل المستهدف. يهدف الاختبار بشكل أساسي إلى السيناريو الذي تقوم فيه سلاسل رسائل متعددة بقراءة أجزاء صغيرة من البيانات من نفس الملف في نفس الوقت، وهو ما يتوافق مع مشكلة المنافسة التي يحاول التصحيح حلها. ص>
ومع ذلك، يجب فهم هذه النتائج على أنها أداء في ظل ظروف اختبار محددة، وليس أن جميع عمليات الملفات على Linux ستتلقى نفس التحسن. تعتمد الفوائد الفعلية على أنماط الوصول للتطبيق الخاص بك، وعدد الخيوط، وحجم الملف، وجهاز التخزين، وتكوين الذاكرة، وعوامل النظام الأخرى. قد تكون تأثيرات التحسين محدودة بالنسبة لأحمال العمل التي لا تتضمن نفس مشكلات التنافس. ص>
في الوقت الحالي، لا تزال هذه التصحيحات مخزنة في فرع Git الشخصي لتورفالدس، ولا يمكن استنتاج أنها دخلت رسميًا إلى نواة Linux الرئيسية. وما إذا كان سيتم دمجها في المستقبل وما هي طريقة التنفيذ التي سيتم اعتمادها في النهاية يتطلب المزيد من المراقبة. ص>
وفقًا لوتيرة التطوير الحالية، قد تدخل سلسلة التصحيح هذه في مرحلة المناقشة أو المراجعة الإضافية خلال نافذة دمج Linux 7.4 التالية، ولكن ما إذا كان من الممكن دمجها في النهاية لا يزال يعتمد على مراجعة التعليمات البرمجية ونتائج الاختبار وحكم المشرف. ص>
من الجدير بالذكر أن استخدام تورفالدس لكلود كود ليس محاولته الأولى لاستخدام الذكاء الاصطناعي للتعامل مع أعمال التطوير المتعلقة بنظام Linux. ص>
في السابق، تحدث عن استخدام تصحيح أخطاء النواة بمساعدة الذكاء الاصطناعي وجرب أدوات برمجة الذكاء الاصطناعي مثل Google Antigravity خارج نواة Linux. بالنسبة لتورفالدس، لا يتعلق الذكاء الاصطناعي باستبدال المطورين كصانعي قرار مستقلين، بل هو أداة تطوير يمكن استخدامها بأهداف واضحة وإشراف بشري. ص>
منذ هذا العام، تدخل أدوات برمجة الذكاء الاصطناعي تدريجيًا في عملية تطوير البرمجيات مفتوحة المصدر. يستفيد المزيد والمزيد من المطورين من نماذج اللغات الكبيرة لتحليل التعليمات البرمجية وتحديد الأخطاء وكتابة الاختبارات وإنشاء التصحيحات الأولية. يشهد مجتمع Linux kernel أيضًا عددًا متزايدًا من التعليمات البرمجية وتقارير الأخطاء المدعومة بالذكاء الاصطناعي. ص>
يجلب هذا الاتجاه فرصًا وتحديات على حدٍ سواء. فمن ناحية، يمكن للذكاء الاصطناعي أن يساعد المطورين ذوي الخبرة على استكشاف مسارات التعليمات البرمجية المعقدة بشكل أسرع، والتوصل إلى أفكار للتحسين، وتقليل الوقت اللازم لكتابة التعليمات البرمجية المتكررة. من ناحية أخرى، يؤدي أيضًا عدد كبير من التصحيحات وتقارير الأخطاء التي يتم إنشاؤها تلقائيًا إلى زيادة عبء المراجعة على المشرفين، وقد تواجه بعض عمليات الإرسال مشكلات ذات جودة منخفضة أو عمليات إرسال مكررة أو تفتقر إلى القيمة الفعلية. ص>
لقد صرح تورفالدس علنًا من قبل أنه يعتقد أن الذكاء الاصطناعي أداة مفيدة، لكن مجتمع النواة يحتاج إلى التعامل مع ضغط العمل الناجم عن الزيادة السريعة في المحتوى الناتج عن الذكاء الاصطناعي. إنه لا يدعو إلى رفض الكود لمجرد أنه يستخدم الذكاء الاصطناعي، ولكنه يولي المزيد من الاهتمام لجودة الكود النهائي وصحته وتأثيره الفعلي. ص>
يعكس مشروع تحسين النواة الذي شارك فيه كلود كود طريقة تطبيق أكثر تحديدًا للتطوير بمساعدة الذكاء الاصطناعي: يقوم المطورون الذين هم على دراية بالآليات الداخلية للنواة بتحديد المشكلات واقتراح توجيهات التحسين والإشراف على التنفيذ، ثم التحقق من النتائج من خلال الاختبار ومراجعة التعليمات البرمجية. ص>
على عكس الاعتماد فقط على الذكاء الاصطناعي لإنشاء مشروع البرنامج بأكمله تلقائيًا، يتضمن تطوير نواة Linux آليات معقدة للتزامن ومتطلبات سلامة الذاكرة وسلوك الأجهزة. يمكن لأي تعديل يبدو بسيطًا أن يؤثر على عدد كبير من التطبيقات ومنصات الأجهزة المختلفة. لذلك، حتى لو كان الذكاء الاصطناعي قادرًا على المساعدة في إنشاء التعليمات البرمجية، فلا يزال المطورون بحاجة إلى فهم كيفية عمله وتحمل مسؤولية التنفيذ النهائي. ص>
إذا اجتازت هذه المجموعة من التصحيحات المراجعة أخيرًا ودخلت إلى خط Linux الرئيسي، فسوف تصبح حالة أخرى من التطوير بمساعدة الذكاء الاصطناعي الذي يشارك في تحسين برامج النظام الأساسية. ولا تكمن قيمته في تحسينات الأداء التي يمكن الحصول عليها في سيناريوهات محددة فحسب، بل أيضًا في إظهار كيف يمكن لنماذج اللغة الكبيرة أن تساعد المهندسين ذوي الخبرة في تحليل الأنظمة المعقدة وتحسينها. ص>
مع استمرار تطور أدوات برمجة الذكاء الاصطناعي، قد يظهر المزيد من الأعمال المشابهة في Linux kernel وغيرها من المشاريع الكبيرة مفتوحة المصدر في المستقبل. ومع ذلك، فإن ما يحدد إمكانية تنفيذ هذه الإنجازات فعليًا سيظل هو التحقق الفني الصارم، ومراجعة المجتمع، والمتطلبات طويلة المدى لاستقرار النظام. ص> ص>
التعليقات