جعل Rust غير الآمن أكثر أمانًا قليلاً: أدوات للتحقق من الرموز غير الآمنة، بما في ذلك المكتبات في C و C++

2024-12-17

تنبع شعبية Rust من قدرتها على القضاء على أخطاء الذاكرة وأخطاء التزامن في وقت التجميع، لكن كتل الرمز `unsafe` الخاصة بها يمكن أن تتجاوز هذه الفحوصات. تستكشف هذه المقالة أدوات للتحقق من رمز Rust غير الآمن، بما في ذلك الرمز الذي يتم استدعاؤه من مكتبات C أو C++. وهي تقدم أدوات الكشف عن الأخطاء في وقت التشغيل - مُصححات - وMiri، وهو مُفسّر يجد السلوك غير المعروف بشكل حتمي. تكتشف المُصححات الوصول إلى الذاكرة خارج الحدود، وسباقات البيانات، وأكثر من ذلك، بينما يوفر Miri تقارير أخطاء أكثر دقة مع شظايا من الرمز. ومع ذلك، لا يدعم Miri حاليًا الرمز الذي يتم استدعاؤه عبر FFI من C/C++، مما يتطلب استخدام مُصححات مُجمع C/C++ في مثل هذه الحالات. تعمل هذه الأدوات على تحسين أمان وموثوقية رمز Rust، حتى عند التعامل مع رمز `unsafe` أو التفاعل مع مكتبات C/C++.

التطوير أخطاء الذاكرة