زنگ زبان کی حمایت کے ساتھ لینکس کرنل کے لیے پیچ کا نیا ورژن

Rust-for-Linux پروجیکٹ کے مصنف Miguel Ojeda نے Rust زبان میں ڈیوائس ڈرائیورز تیار کرنے کے لیے v5 اجزاء کے اجراء کی تجویز پیش کی تاکہ لینکس کرنل ڈویلپرز کو غور کیا جاسکے۔ یہ پیچ کا چھٹا ایڈیشن ہے، پہلے ورژن کو مدنظر رکھتے ہوئے، بغیر کسی ورژن نمبر کے شائع ہوا۔ زنگ کی حمایت کو تجرباتی سمجھا جاتا ہے، لیکن یہ پہلے سے ہی linux-next برانچ میں شامل ہے اور کرنل سب سسٹمز کے ساتھ ساتھ ڈرائیوروں اور ماڈیولز کو لکھنے کے لیے تجریدی تہوں کی تخلیق پر کام شروع کرنے کے لیے کافی تیار کیا گیا ہے۔ ترقی کو Google اور ISRG (انٹرنیٹ سیکیورٹی ریسرچ گروپ) کی طرف سے مالی اعانت فراہم کی جاتی ہے، جو Let's Encrypt پروجیکٹ کا بانی ہے اور HTTPS اور انٹرنیٹ سیکیورٹی کو بہتر بنانے کے لیے ٹیکنالوجیز کی ترقی کو فروغ دیتا ہے۔

یاد رکھیں کہ مجوزہ تبدیلیاں ڈرائیوروں اور کرنل ماڈیولز کو تیار کرنے کے لیے Rust کو دوسری زبان کے طور پر استعمال کرنا ممکن بناتی ہیں۔ رسٹ سپورٹ کو ایک ایسے آپشن کے طور پر پیش کیا جاتا ہے جو بطور ڈیفالٹ فعال نہیں ہوتا ہے اور اس کے نتیجے میں زنگ کو دانا کے لیے مطلوبہ تعمیراتی انحصار کے طور پر شامل نہیں کیا جاتا ہے۔ ڈرائیور کی ترقی کے لیے رسٹ کا استعمال آپ کو کم سے کم کوشش کے ساتھ محفوظ اور بہتر ڈرائیور بنانے کی اجازت دے گا، فری کرنے کے بعد میموری تک رسائی، null pointer dereferences، اور buffer overruns جیسے مسائل سے پاک۔

رسٹ میں میموری سے محفوظ ہینڈلنگ کمپائل کے وقت حوالہ کی جانچ، آبجیکٹ کی ملکیت اور آبجیکٹ لائف ٹائم (اسکوپ) پر نظر رکھنے کے ساتھ ساتھ کوڈ پر عمل درآمد کے دوران میموری تک رسائی کی درستگی کی جانچ کے ذریعے فراہم کی جاتی ہے۔ زنگ انٹیجر اوور فلو کے خلاف بھی تحفظ فراہم کرتا ہے، استعمال سے پہلے متغیر اقدار کی لازمی ابتداء کی ضرورت ہوتی ہے، معیاری لائبریری میں غلطیوں کو بہتر طریقے سے ہینڈل کرتا ہے، غیر متغیر حوالہ جات اور متغیرات کے تصور کو بطور ڈیفالٹ لاگو کرتا ہے، منطقی غلطیوں کو کم کرنے کے لیے مضبوط جامد ٹائپنگ پیش کرتا ہے۔

پیچ کا نیا ورژن پیچ کے پہلے، دوسرے، تیسرے، چوتھے اور پانچویں ایڈیشن کی بحث کے دوران کیے گئے تبصروں کو ختم کرتا ہے۔ نئے ورژن میں:

  • ٹول کٹ کو Rust 1.59.0 جاری کرنے کے لیے اپ ڈیٹ کر دیا گیا ہے۔ Alloc لائبریری کی ایک قسم کو بھی Rust کے نئے ورژن کے ساتھ ہم آہنگ کیا جاتا ہے، جس سے "گھبراہٹ" حالت کی ممکنہ نسل کو ختم کیا جاتا ہے جب غلطیاں ہوتی ہیں، جیسے کہ میموری سے باہر۔ اسمبلر انسرٹس ("خصوصیت(عالمی_اسم)") کو استعمال کرنے کی صلاحیت کو مستحکم کر دیا گیا ہے۔
  • رسٹ میں ہوسٹ پروگرام بنانے کے لیے سپورٹ شامل کیا گیا جو کرنل کمپلیشن کے دوران استعمال ہوتے ہیں۔
  • پہلے سے تیار کردہ ٹارگٹ پلیٹ فارم کی تفصیلات کی فائلوں کو ڈیلیور کرنے کے بجائے، وہ کرنل کنفیگریشن کی بنیاد پر متحرک طور پر تیار کی جاتی ہیں۔
  • HAVE_RUST کرنل پیرامیٹر شامل کیا گیا تاکہ ان آرکیٹیکچرز کو فعال کیا جا سکے جو زنگ کو سپورٹ کرتے ہیں۔
  • ہارڈ ویئر سیوڈو رینڈم نمبر جنریٹر کے لیے زنگ کوڈ میں استعمال کے لیے تجریدات تجویز کیے گئے ہیں۔
  • "Error::" کے سابقہ ​​(مثال کے طور پر، "return Err(EINVAL)") کے بغیر ایرر کوڈز کے استعمال کی اجازت دی گئی تاکہ C میں ایرر کوڈز کو تقریباً ہینڈل کیا جا سکے۔
  • حسب ضرورت C-strings کے لیے "CSstring" کی قسم شامل کی گئی۔ فارمیٹر اور بفر کی اقسام کو یکجا کر دیا گیا ہے۔
  • Bool اور LockInfo کی قسمیں شامل کی گئیں۔
  • اسپن لاکس کے نفاذ کو آسان بنایا گیا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں