في واحدة من أغرب التجارب التقنية، أثبت أحد المطورين أنه يمكن تشغيل لعبة Doom الأسطورية باستخدام نظام أسماء النطاقات (DNS) كمنصة حوسبة. هذه التجربة تكسر مفاهيمنا حول ماهية DNS وتكشف عن قدراته الكامنة التي تتجاوز مجرد ترجمة أسماء النطاقات إلى عناوين IP.
يعتمد المشروع على فكرة أن DNS ليس مجرد سجلات، بل هو في جوهره قاعدة بيانات. إذا استطعنا تخزين البيانات في قاعدة بيانات، فلماذا لا يمكننا تخزين التعليمات والإجابات الحسابية؟ هذا هو المبدأ الذي قام عليه المطور لتشغيل Doom، حيث تم تحويل عمليات اللعبة الحسابية إلى استعلامات DNS.
كيف يعمل هذا “الحاسوب” الغريب؟
لتحقيق هذا الإنجاز، قام المطور بتجميع لعبة Doom لجهاز 32-بت، بحيث يتم تخزين الذاكرة والعمليات الحسابية في DNS. يقوم برنامج صغير بتوفير “الأسلاك” و”الساعة” الضرورية، بينما يوفر DNS الإجابات اللازمة للعمليات. هذا يعني أن كل عملية حسابية، مثل الجمع أو المقارنة، تتم عن طريق استعلام DNS للحصول على النتيجة المخزنة مسبقاً.
قام المطور بتخزين 6.4 مليون سجل كـ «جداول حقيقة» في DNS، حيث يحتوي كل سجل على إجابة لعملية حسابية محددة. على سبيل المثال، قد يحتوي سجل ff.01.0.add على «001 » للإشارة إلى أن 255 زائد 1 يساوي 00 مع حمل 1. يعمل DNS هنا كـ «أمين مكتبة» يقوم بجلب الإجابات المخزنة مسبقاً بناءً على الاستعلام.
تحديات الأداء والتغلب عليها
كان التحدي الأكبر هو الأداء. في البداية، استغرق الضغط على زر «يمين» في اللعبة 577 ثانية كاملة لمعرفة النتيجة. بفضل تحسينات مثل استخدام النقل الأصلي (native transport)، والتوجيه المتسلسل (pipelining)، وتعبئة السجلات بكثافة، وتقليل عدد استعلامات DNS لكل تعليمة، تمكن المطور من خفض هذا الوقت إلى 146.3 ثانية، ثم إلى 54.4 ثانية، وهو تحسن بمقدار 10.6 مرة.
على الرغم من هذه التحسينات، لا تزال اللعبة بعيدة عن أن تكون قابلة للعب في الوقت الفعلي. حتى مع أفضل السيناريوهات، حيث يتطلب الأمر تبادلاً واحداً مع DNS لكل تعليمة، فإن معدل 1.4 مليون تعليمة يستغرق 14 ثانية لكل «تكة» (tic) في اللعبة، بينما يتطلب Doom 35 تكة في الثانية ليصبح قابلاً للعب. يؤكد المطور أن نظام BIND 9.20 القياسي في Debian هو ما تم استخدامه، مع تعطيل الشبكة في الحاوية.
ما معنى هذا للمطورين؟
هذه التجربة ليست عن بناء حاسوب عملي، بل هي إثبات مفهوم حول مرونة البروتوكولات الأساسية للإنترنت مثل DNS. تُظهر كيف يمكن استخدام DNS كقاعدة بيانات قوية تدعم عمليات القراءة والكتابة الشرطية، وتخزين الإجابات المحسوبة مسبقاً. إنها دعوة للمطورين للنظر إلى الأدوات الحالية بطرق إبداعية وغير تقليدية، وإعادة تقييم ما يمكن أن تفعله البنى التحتية الموجودة.
نرى أن هذه التجربة تبرز فكرة أن «قاعدة البيانات» يمكن أن تكون أكثر بكثير مما نتخيله، وأن الحدود بين مكونات النظام يمكن أن تكون ضبابية. إنها تذكرة بأن فهم عميق للتقنيات الأساسية يمكن أن يفتح آفاقاً غير متوقعة، حتى لو كانت النتائج غير عملية في بعض الأحيان.
المصدر: theregister.com