"زنگ سسٽم پروگرامنگ جو مستقبل آهي، سي نئون اسمبلر آهي" - انٽيل جي معروف انجنيئرن مان هڪ تقرير

تازو اوپن سورس ٽيڪنالاجي سمي تي (OSTS) جوش ٽرپلٽ، انٽيل ۾ هڪ سينئر انجنيئر ، چيو ته هن جي ڪمپني دلچسپي رکي ٿي رسٽ تائين پهچندي “برابري” سي ٻولي سان جيڪا اڃا تائين غالب آهي سسٽم ۽ ويجهي مستقبل ۾ گهٽ سطحي ترقي. هن جي تقرير ۾ "Intel and Rust: The Future of Systems Programming" جي عنوان هيٺ، هن سسٽم پروگرامنگ جي تاريخ بابت پڻ ڳالهايو، ڪيئن سي ڊفالٽ سسٽم پروگرامنگ ٻولي بڻجي وئي، رسٽ جون ڪهڙيون خاصيتون ان کي سي تي فائدو ڏين ٿيون، ۽ ڪيئن مڪمل طور تي ٿي سگهي ٿي. پروگرامنگ جي هن فيلڊ ۾ سي کي تبديل ڪريو.

"زنگ سسٽم پروگرامنگ جو مستقبل آهي، سي نئون اسمبلر آهي" - انٽيل جي معروف انجنيئرن مان هڪ تقرير

سسٽم پروگرامنگ سافٽ ويئر جي ترقي ۽ انتظام آهي جيڪو ايپليڪيشن ايپليڪيشن ٺاهڻ لاء پليٽ فارم جي طور تي ڪم ڪري ٿو، انهي کي يقيني بڻائي ٿو ته بعد ۾ پروسيسر، رام، ان پٽ / آئوٽ ڊوائيسز ۽ نيٽ ورڪ سامان سان رابطي ۾. سسٽم سافٽ ويئر انٽرفيس جي صورت ۾ هڪ خاص خلاصو ٺاهي ٿو جيڪو هارڊويئر پاڻ ڪيئن ڪم ڪري ٿو ان جي تفصيلن ۾ ڊيل ڪرڻ کان سواءِ ايپليڪيشن سافٽ ويئر ٺاهڻ ۾ مدد ڪري ٿو.

ٽرپلٽ پاڻ سسٽم پروگرامنگ کي بيان ڪري ٿو "ڪنهن به شيء جيڪا ايپليڪيشن نه آهي." ان ۾ BIOS، فرم ويئر، بوٽ لوڊرز ۽ آپريٽنگ سسٽم ڪنيل، مختلف قسم جا ايمبيڊڊ لو-ليول ڪوڊ، ۽ ورچوئل مشين تي عمل ڪرڻ جون شيون شامل آھن. دلچسپ ڳالهه اها آهي ته، ٽرپلٽ مڃي ٿو ته هڪ ويب برائوزر پڻ سسٽم سافٽ ويئر آهي، ڇاڪاڻ ته برائوزر گهڻو وقت اڳ "صرف هڪ پروگرام" کان وڌيڪ ٿي چڪو آهي، هڪ اسٽينڊل "ويب سائيٽن ۽ ويب ايپليڪيشنن لاء پليٽ فارم" بڻجي چڪو آهي.

ماضي ۾، اڪثر سسٽم پروگرام، بشمول BIOS، بوٽ لوڊ ڪندڙ ۽ فرم ویئر، اسيمبليء جي ٻولي ۾ لکيل هئا. 1960ع واري ڏهاڪي ۾، اعليٰ سطحي ٻولين لاءِ هارڊويئر سپورٽ مهيا ڪرڻ لاءِ تجربا شروع ٿيا، جن جي نتيجي ۾ ٻولين جهڙوڪ PL/S، BLISS، BCPL، ۽ ALGOL 68 ٺاهيا ويا.

ان کان پوء، 1970s ۾، ڊينس رچي يونڪس آپريٽنگ سسٽم لاء سي پروگرامنگ ٻولي ٺاهي. B پروگرامنگ ٻولي ۾ ٺاهي وئي، جنهن ۾ ٽائپنگ جي سهولت به نه هئي، سي طاقتور اعلي سطحي ڪمن سان ڀريل هو جيڪي آپريٽنگ سسٽم ۽ ڊرائيور لکڻ لاء بهترين هئا. UNIX جا ڪيترائي حصا، بشمول ان جي ڪنيل، آخرڪار سي ۾ لکيا ويا. ان کان پوء، ڪيترائي ٻيا سسٽم پروگرام، بشمول اوراڪيل ڊيٽابيس، ونڊوز سورس ڪوڊ جو گهڻو حصو، ۽ لينڪس آپريٽنگ سسٽم، پڻ سي ۾ لکيو ويو.

سي کي ان سلسلي ۾ زبردست مدد ملي آهي. پر ڇا واقعي ڊولپرز ان کي تبديل ڪيو؟ ٽريپلٽ يقين رکي ٿو ته ڊولپرز کي حوصلا افزائي ڪرڻ لاءِ هڪ پروگرامنگ ٻولي کان ٻئي ڏانهن سوئچ ڪرڻ لاءِ ، بعد ۾ پهريان لازمي طور تي پراڻين خصوصيتن کي وڃائڻ کان سواءِ نوان خاصيتون مهيا ڪرڻ گهرجن.

پهرين، ٻولي کي "معقول طور تي متاثر ڪندڙ" نيون خاصيتون پيش ڪرڻ گهرجن. ”هو وڌيڪ بهتر نه ٿي سگهي. اهو ضروري آهي ته ڪوشش ۽ انجنيئرنگ جي وقت جو جواز پيش ڪرڻ لاءِ اهو بهتر آهي ته اهو منتقلي ڪرڻ ۾ وٺندو آهي ،“ هو وضاحت ڪري ٿو. اسيمبليءَ جي ٻوليءَ جي مقابلي ۾، سي وٽ پيش ڪرڻ لاءِ تمام گهڻيون شيون هيون. اهو ڪجهه حد تائين قسم جي محفوظ رويي جي حمايت ڪئي، اعلي سطحي تعميرات سان بهتر پوربليت ۽ ڪارڪردگي مهيا ڪئي، ۽ مجموعي طور تي وڌيڪ پڙهڻ جي قابل ڪوڊ ٺاهي.

ٻيو، ٻولي کي پراڻي خاصيتن لاء سپورٽ مهيا ڪرڻ گهرجي، جنهن جو مطلب آهي ته سي جي منتقلي جي تاريخ ۾، ڊولپرز کي پڪ ڪرڻ گهرجي ته اهو اسيمبليء جي ٻولي کان گهٽ ڪم نه آهي. Triplett وضاحت ڪري ٿو: "هڪ نئين ٻولي صرف بهتر نه ٿي سگهي، اهو پڻ سٺو هجڻ گهرجي." ان کان علاوه تيز هجڻ ۽ ڪنهن به ڊيٽا جي قسم کي سپورٽ ڪرڻ جيڪا اسيمبلي جي ٻولي استعمال ڪري سگهي ٿي، سي وٽ پڻ هئي جنهن کي ٽرپلٽ سڏيو ويندو آهي "فرار هيچ" يعني، اهو پنهنجي اندر اسيمبلي جي ٻولي ڪوڊ داخل ڪرڻ جي حمايت ڪري ٿو.

"زنگ سسٽم پروگرامنگ جو مستقبل آهي، سي نئون اسمبلر آهي" - انٽيل جي معروف انجنيئرن مان هڪ تقرير

ٽرپلٽ جو خيال آهي ته سي هاڻي ٿي رهيو آهي جيڪا اسيمبلي جي ٻولي ڪيترائي سال اڳ هئي. ”سي نئون اسمبلر آهي،“ هو اعلان ڪري ٿو. ھاڻي ڊولپرز ھڪ نئين اعليٰ سطحي ٻولي ڳولي رھيا آھن جيڪي نه رڳو انھن مسئلن کي حل ڪنديون جيڪي سي ۾ جمع ٿيل آھن جيڪي ھاڻي حل نه ٿي سگھن ٿيون، پر دلچسپ نيون خصوصيتون پڻ پيش ڪن ٿيون. اهڙي ٻولي ڊولپرز کي ان ۾ تبديل ڪرڻ لاءِ ڪافي مجبور ڪرڻ گهرجي، محفوظ هجڻ گهرجي، خودڪار ياداشت جي انتظام مهيا ڪرڻ، ۽ گهڻو ڪجهه.

"ڪنهن به ٻولي جيڪا C کان بهتر ٿيڻ چاهي ٿي، ان کي صرف بفر اوور فلو تحفظ کان وڌيڪ پيش ڪرڻ گهرجي جيڪڏهن اها واقعي هڪ زبردست متبادل ٿيڻ چاهي ٿي. ڊولپرز استعمال جي قابليت ۽ ڪارڪردگي ۾ دلچسپي رکن ٿا، لکڻ جو ڪوڊ جيڪو خود وضاحت ڪندڙ آهي ۽ گهٽ لائينن ۾ وڌيڪ ڪم ڪري ٿو. سيڪيورٽي مسئلن کي پڻ خطاب ڪرڻ جي ضرورت آهي. استعمال جي آسانيءَ ۽ ڪارڪردگيءَ ۾ ھٿ ھليو وڃي. گهٽ ڪوڊ توهان کي ڪجهه حاصل ڪرڻ لاءِ لکڻو پوندو ، گهٽ موقعو توهان کي ڪا غلطي ڪرڻ جو ، سيڪيورٽي سان لاڳاپيل يا نه ، ”ٽريپلٽ وضاحت ڪري ٿو.

زنگ ۽ سي جو مقابلو

2006 ۾ واپس، Graydon Hoare، هڪ Mozilla ملازم، هڪ ذاتي منصوبي جي طور تي Rust لکڻ شروع ڪيو. ۽ 2009 ۾، Mozilla پنھنجي ضرورتن لاءِ Rust جي ترقي کي اسپانسر ڪرڻ شروع ڪيو، ۽ ٻوليءَ کي وڌيڪ ترقي ڏيڻ لاءِ ٽيم کي بھ وڌايو.

Mozilla جي نئين ٻوليءَ ۾ دلچسپيءَ جو هڪ سبب اهو آهي ته Firefox C++ ڪوڊ جي 4 ملين کان وڌيڪ لائينن ۾ لکيل هو ۽ ان ۾ ڪافي ڪجهه نازڪ خاميون هيون. زنگ کي سلامتي ۽ اتفاق سان ذهن ۾ رکندي ٺاهيو ويو هو، اهو هڪ مثالي انتخاب آهي فائر فاڪس جي ڪيترن ئي حصن کي ٻيهر لکڻ لاءِ Quantum پروجيڪٽ جي حصي طور برائوزر جي فن تعمير کي مڪمل طور تي نئين سر ترتيب ڏيڻ لاءِ. Mozilla پڻ استعمال ڪري رهيو آهي Rust کي ترقي ڪرڻ لاءِ Servo، هڪ HTML رينڊرنگ انجڻ جيڪو آخرڪار موجوده فائر فاڪس رينڊرنگ انجڻ کي تبديل ڪندو. ڪيتريون ئي ٻيون ڪمپنيون استعمال ڪرڻ شروع ڪيون ويون آهن Rust پنهنجي منصوبن لاءِ، جن ۾ Microsoft، Google، Facebook، Amazon، Dropbox، Fastly، Chef، Baidu ۽ ٻيا ڪيترائي شامل آهن.

Rust حل ڪري ٿو هڪ اهم مسئلو C ٻوليءَ جي. اهو پيش ڪري ٿو خودڪار ميموري مئنيجمينٽ ان ڪري ڊولپرز کي دستي طور تي مختص ڪرڻ جي ضرورت نه آهي ۽ پوءِ ان کي ايپليڪيشن ۾ هر شئي لاءِ آزاد ڪري. جيڪا شيءِ Rust کي ٻين جديد ٻولين کان مختلف بڻائي ٿي، اها آهي ته ان ۾ ڪو گاربيج ڪليڪٽر نه آهي جيڪو خودڪار طريقي سان غير استعمال ٿيل شيون ميموري مان ڪڍي ٿو، ۽ نه ئي ان کي ڪم ڪرڻ لاءِ گهربل رن ٽائم ماحول آهي، جهڙوڪ جاوا لاءِ جاوا رن ٽائم ماحول. ان جي بدران، مورچا وٽ ملڪيت، قرض وٺڻ، حوالا، ۽ زندگي گذارڻ جا تصور آهن. ”رسٽ وٽ هڪ نظام آهي ڪالن جو اعلان ڪرڻ لاءِ ڪنهن اعتراض کي ظاهر ڪرڻ لاءِ ته مالڪ ان کي استعمال ڪري رهيو آهي يا صرف ان کي قرض وٺي رهيو آهي. جيڪڏهن توهان صرف ڪنهن شئي کي قرض کڻندا آهيو، مرتب ڪندڙ ان کي ٽريڪ ڪندو ۽ يقيني بڻائيندو ته اصل جڳهه تي رهي ٿو جيستائين توهان ان جو حوالو ڏيو. زنگ پڻ انهي ڳالهه کي يقيني بڻائيندو ته شئي کي ميموري مان هٽايو ويندو آهي جيئن ئي ان جو استعمال مڪمل ٿئي ٿو، ڪوڊ ۾ هڪ لاڳاپيل ڪال داخل ڪندي ڪوڊ ۾ اضافي وقت کان سواء، "ٽريپلٽ چوي ٿو.

هڪ ڏيهي رن ٽائم جي کوٽ به مورچا جي هڪ مثبت خصوصيت سمجهي سگهجي ٿو. ٽرپلٽ مڃي ٿو ته ٻوليون جيڪي ان تي هلن ٿيون انهن کي سسٽم پروگرامنگ اوزار طور استعمال ڪرڻ ڏکيو آهي. جيئن ته هو وضاحت ڪري ٿو: "توهان کي هن رن ٽائم کي شروع ڪرڻ گهرجي ان کان اڳ جو توهان ڪنهن به ڪوڊ کي ڪال ڪري سگهو، توهان کي هن رن ٽائم کي استعمال ڪرڻ گهرجي افعال کي ڪال ڪرڻ لاءِ، ۽ رن ٽائم خود توهان جي پوئتي پٺيان اضافي ڪوڊ هلائي سگهي ٿو غير متوقع وقتن تي."

مورچا پڻ محفوظ متوازي پروگرامنگ مهيا ڪرڻ جي ڪوشش ڪري ٿو. اهي ئي خاصيتون جيڪي هن کي ميموري کي محفوظ بڻائين ٿيون انهن شين کي ٽريڪ ڪن ٿيون جهڙوڪ ڪهڙي ٿريڊ ڪهڙي شئي جي مالڪ آهي ۽ ڪهڙيون شيون ٿريڊ جي وچ ۾ گذري سگهن ٿيون ۽ جن کي تالا جي ضرورت آهي.

اهي سڀئي خاصيتون زنگ کي ڪافي مجبور ڪن ٿيون ڊولپرز لاءِ ان کي چونڊڻ لاءِ سسٽم پروگرامنگ لاءِ نئين اوزار طور. بهرحال، متوازي ڪمپيوٽنگ جي لحاظ کان، مورچا اڃا تائين ٿورو پوئتي آهي C.

Triplett هڪ خاص ڪم ڪندڙ گروپ ٺاهڻ جو ارادو رکي ٿو جيڪو ضروري خاصيتن کي متعارف ڪرائڻ تي ڌيان ڏيندو Rust ۾ ته جيئن اهو مڪمل طور تي برابر ڪري سگهي ٿو، اڳتي وڌائي سگهي ٿو ۽ سسٽم پروگرامنگ جي ميدان ۾ سي کي تبديل ڪري ٿو. IN Reddit تي موضوع، پنهنجي تقرير کي وقف ڪندي، هن چيو ته "FFI/C برابري گروپ ٺاهڻ جي عمل ۾ آهي ۽ اڃا تائين ڪم شروع نه ڪيو آهي،" هن وقت تائين هو ڪنهن به سوال جو جواب ڏيڻ لاء تيار آهي، ۽ مستقبل ۾ هو ضرور فوري منصوبن کي شايع ڪندو. سڀني دلچسپي پارٽين لاء هن جي شروعات جي حصي طور مورچا جي ترقي لاء.

اهو فرض ڪري سگهجي ٿو ته FFI/C برابري گروپ سڀ کان پهريان مورچا ۾ ملٽي ٿريڊنگ سپورٽ کي بهتر بڻائڻ تي ڌيان ڏيندو، BFLOAT16 لاءِ سپورٽ متعارف ڪرايو، هڪ سچل پوائنٽ فارميٽ جيڪو ظاهر ٿيو آهي نئين Intel Xeon Scalable پروسيسرز، ۽ گڏوگڏ اسمبلي کي مستحڪم ڪرڻ. ڪوڊ داخل ڪرڻ.



جو ذريعو: 3dnews.ru

تبصرو شامل ڪريو