تیسرا ایڈیشن کرنل پیچ Linux زنگ زبان کی حمایت کے ساتھ

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

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

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

نئے پیچ کی ریلیز پیچ کے پہلے اور دوسرے ورژن کی بحث کے دوران اٹھائے گئے خدشات کو دور کرتی ہے۔ سب سے زیادہ قابل ذکر تبدیلیوں میں شامل ہیں:

  • سٹیبل رسٹ 1.57 ریلیز کو حوالہ کمپائلر کے طور پر استعمال کرنے کی منتقلی مکمل ہو چکی ہے، اور مستحکم رسٹ 2021 لینگویج ایڈیشن کا پابند ہونا یقینی بنایا گیا ہے۔ اس سے پہلے، پیچ زنگ کی بیٹا برانچ سے منسلک تھے اور کچھ زبان کی خصوصیات کو غیر مستحکم کے طور پر درجہ بندی کیا گیا تھا۔ Rust 2021 کی تفصیلات میں منتقلی نے ہمیں پیچ سے غیر مستحکم خصوصیات جیسے const_fn_transmute، const_panic، const_unreachable_unchecked، core_panic، اور try_reserve کو ہٹانے کے لیے کام شروع کرنے کی اجازت دی ہے۔
  • پیچ میں شامل الوک رسٹ لائبریری ورژن کی ترقی جاری ہے۔ اس ورژن میں ترمیم کی گئی ہے تاکہ میموری مختص کرنے کے افعال کو ممکنہ طور پر خوف و ہراس کی صورتحال پیدا ہونے سے روکا جا سکے جب کہ میموری سے باہر ہونے والی خرابیاں ہوتی ہیں۔ نیا ورژن "no_rc" اور "no_sync" کے اختیارات کو لاگو کرتا ہے تاکہ بنیادی زنگ کوڈ میں استعمال نہ ہونے والی فعالیت کو غیر فعال کیا جا سکے، جس سے لائبریری مزید ماڈیولر بن جاتی ہے۔ بنیادی لائبریری کے لیے درکار تبدیلیوں کو منتقل کرنے کے لیے کور ایلوک ڈویلپرز کے ساتھ کام جاری ہے۔ "no_fp_fmt_parse" آپشن، جو لائبریری کو کرنل کی سطح پر کام کرنے کے لیے درکار ہے، کو کور رسٹ لائبریری میں منتقل کر دیا گیا ہے۔
  • CONFIG_WERROR موڈ میں کرنل کی تعمیر کے دوران ممکنہ کمپائلر وارننگز کو ختم کرنے کے لیے کوڈ کو صاف کیا گیا تھا۔ مورچا کوڈ بناتے وقت اضافی کمپائلر تشخیصی طریقوں اور کلیپی لنٹر وارننگز کو فعال کیا جاتا ہے۔
  • زنگ کوڈ میں سیکلاکس (سیکوینس لاکس)، پاور مینجمنٹ کے لیے کال بیکس، I/O میموری (readX/writeX)، انٹرپٹ اور تھریڈ ہینڈلرز، GPIO، آلات تک رسائی، ڈرائیورز اور اسناد کے لیے تجریدات تجویز کیے گئے ہیں۔
  • ڈرائیور ڈویلپمنٹ ٹولز کو بڑھایا گیا ہے جس میں حرکت پذیر mutexes، bitwise iterators، آسان پوائنٹر ریپرز، بہتر کریش تشخیص، اور ڈیٹا بس سے آزاد انفراسٹرکچر شامل ہیں۔
  • Refcount_t بیک اینڈ کی بنیاد پر ایک آسان Ref قسم کا استعمال کرتے ہوئے ریفرنس ہینڈلنگ کو بہتر بنایا گیا ہے، جو حوالہ شمار کے لیے اسی نام کے کرنل API کا استعمال کرتا ہے۔ معیاری ایلوک لائبریری کے ذریعہ فراہم کردہ آرک اور آر سی اقسام کے لیے سپورٹ کو ہٹا دیا گیا ہے اور یہ کرنل لیول کوڈ میں دستیاب نہیں ہے (ان اقسام کو غیر فعال کرنے کے اختیارات خود لائبریری کے لیے فراہم کیے گئے ہیں)۔
  • پیچ میں PL061 GPIO ڈرائیور کا ایک ورژن شامل ہے جو زنگ میں دوبارہ لکھا گیا ہے۔ اس ڈرائیور کی ایک انوکھی خصوصیت یہ ہے کہ اس کا نفاذ تقریباً سی میں موجود GPIO ڈرائیور سے مماثل ہے۔ زنگ میں ڈرائیور بنانے کا طریقہ سیکھنے میں دلچسپی رکھنے والے ڈویلپرز کے لیے، ایک لائن بہ لائن موازنہ دستیاب ہے تاکہ ان کو یہ سمجھنے میں مدد ملے کہ زنگ کی تعمیر سی کوڈ میں تبدیل کی گئی ہے۔
  • زنگ کے بنیادی کوڈبیس نے rustc_codegen_gcc کو اپنایا ہے، جو GCC کے لیے ایک rustc بیک اینڈ ہے جو libgccjit لائبریری کا استعمال کرتے ہوئے وقت سے پہلے (AOT) تالیف کو لاگو کرتا ہے۔ کافی ترقی کے ساتھ، بیک اینڈ کرنل میں استعمال ہونے والے زنگ کوڈ کو GCC کا استعمال کرتے ہوئے مرتب کرنے کے قابل بنائے گا۔
  • اے آر ایم، گوگل، اور مائیکروسافٹ کے علاوہ، دانا میں زنگ کی زبان استعمال کرنے میں دلچسپی ہے۔ Linux ریڈ ہیٹ نے کہا۔ ایک یاد دہانی کے طور پر، Google براہ راست Rust پروجیکٹ کی حمایت کرتا ہے۔ Linux, Rust میں بائنڈر انٹر پروسیس کمیونیکیشن میکانزم کا ایک نیا نفاذ تیار کر رہا ہے اور Rust میں مختلف ڈرائیوروں کو دوبارہ لکھنے پر غور کر رہا ہے۔ مائیکروسافٹ نے Rust میں Hyper-V کے لیے ڈرائیوروں کو نافذ کرنا شروع کر دیا ہے۔ ARM ARM پروسیسرز پر مبنی سسٹمز کے لیے رسٹ سپورٹ کو بہتر بنانے پر کام کر رہا ہے۔ IBM نے پاور پی سی سسٹمز کے لیے کرنل میں رسٹ سپورٹ کو لاگو کیا ہے۔

ماخذ: opennet.ru

DDoS تحفظ، VPS VDS سرورز والی سائٹوں کے لیے قابل اعتماد ہوسٹنگ خریدیں۔ DDoS تحفظ، VPS VDS سرورز کے ساتھ قابل اعتماد ویب سائٹ ہوسٹنگ خریدیں۔ ProHoster