قدم مشروع نظام التشغيل Redox مدير حزم pkgar مكتوبًا بلغة Rust

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

لا يتظاهر تنسيق pkgar بأنه عالمي ويتم تحسينه مع مراعاة تفاصيل نظام التشغيل Redox OS. يدعم مدير الحزم التحقق من المصدر باستخدام التوقيع الرقمي والتحكم في السلامة. يتم حساب المجموع الاختباري باستخدام دالة التجزئة blake3. يمكن الوصول إلى وظيفة pkgar المتعلقة بالتحقق دون تخزين أرشيف الحزمة فعليًا، وذلك من خلال معالجة جزء الرأس فقط. على وجه الخصوص، تتكون الحزمة من ملف رأس (.pkgar_head) وملف بيانات (.pkgar_data). يمكن الحصول على حزمة ملخص كاملة موقعة بشكل صحيح (.pkgar) بمجرد إلحاق ملف الرأس بملف البيانات ("cat example.pkgar_head example.pkgar_data > example.pkgar").

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

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

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

الأهداف الرئيسية لpkgar:

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

المصدر: opennet.ru

إضافة تعليق