معياري سي لائبريري جو رليز Cosmopolitan 2.0، ترقي يافته پورٽبل ايگزيڪيوٽو فائلن لاءِ

ڪاسموپوليٽن 2.0 پروجيڪٽ، جيڪو هڪ معياري سي لائبريري ۽ هڪ عالمگير ايگزيڪيوٽو فارميٽ تيار ڪري ٿو جيڪو مختلف آپريٽنگ سسٽم ۾ پروگرامن کي ورهائڻ لاءِ استعمال ڪري سگهجي ٿو بغير ڪنهن ترجمان يا ورچوئل مشين جي ضرورت جي، جاري ڪيو ويو آهي. GCC ۽ Clang سان گڏ ڪرڻ سان هڪ جامد طور تي ڳنڍيل عالمگير ايگزيڪيوٽو فائل پيدا ٿئي ٿي جيڪا ڪنهن به تقسيم تي هلائي سگهجي ٿي. Linux, macOS, Windows، فري بي ايس ڊي، اوپن بي ايس ڊي، نيٽ بي ايس ڊي، ۽ حتي بايوس رسائي. پروجيڪٽ جو ڪوڊ ISC لائسنس (MIT/BSD لائسنس جو هڪ آسان نسخو) تحت ورهايو ويو آهي.

يونيورسل ايگزيڪيوٽوبل فائلن جي ٺهڻ لاءِ ڪنٽينر هڪ فائل ۾ مختلف آپريٽنگ سسٽم لاءِ مخصوص حصن ۽ هيڊرز (PE، ELF، MACHO، OPENBSD) کي گڏ ڪرڻ تي ٻڌل آهي، يونڪس ۾ استعمال ٿيندڙ ڪيترن ئي مختلف فارميٽ کي گڏ ڪندي، Windows и macOSانهي کي يقيني بڻائڻ لاءِ ته هڪ ايگزيڪيوٽو فائل لانچ ڪري سگهجي ٿي Windows ۽ يونڪس سسٽم فائل انڪوڊنگ سان لاڳاپيل هڪ چال استعمال ڪندا آهن Windows پي اي هڪ شيل اسڪرپٽ جي طور تي، ٿامپسن شيل جي "#!" اسڪرپٽ مارڪر جي کوٽ جو فائدو وٺندي. پروگرام ٺاهڻ لاءِ جيڪي گھڻن فائلن کي شامل ڪن ٿا (سڀني وسيلن کي هڪ فائل ۾ گڏ ڪندي)، ايگزيڪيوٽو فائل کي خاص طور تي فارميٽ ٿيل زپ آرڪائيو جي طور تي ٺاهي سگهجي ٿو. تجويز ڪيل فارميٽ (مثال: hello.com ايپليڪيشن):

MZqFpD='BIOS بوٽ سيڪٽر' exec 7 $(command -v $0) printf '\177ELF...LINKER-ENCODED-FREEBSD-HEADER' >&7 exec "$0" "$@" exec qemu-x86_64 "$0" "$ @" نڪرڻ 1 ريئل موڊ… ايلف سيگمينٽس… اوپن بي ايس ڊي نوٽ… ماچو هيڊرز… ڪوڊ ۽ ڊيٽا… زپ ڊاريڪٽري…

فائل جي شروعات ۾، "MZqFpD" ليبل ظاهر ڪيو ويو آهي، جيڪو فارميٽ هيڊر طور سمجهيو ويندو آهي. Windows PE. هي سلسلو "pop %r10 ; jno 0x4a ; jo 0x4a," هدايتن ۾ ۽ "\177ELF" اسٽرنگ کي "jg 0x47" هدايتن ۾ ڊيڪوڊ ڪري ٿو، جيڪي داخلا پوائنٽ ڏانهن ريڊائريڪشن لاءِ استعمال ٿين ٿا. يونڪس سسٽم تي، شيل ڪوڊ کي exec ڪمانڊ استعمال ڪندي عمل ۾ آندو ويندو آهي، هڪ نامعلوم پائپ ذريعي عمل ۾ آڻڻ وارو ڪوڊ پاس ڪندي. تجويز ڪيل طريقي جي هڪ حد اها آهي ته ان کي صرف يونڪس جهڙي آپريٽنگ سسٽم تي شيل استعمال ڪندي هلائي سگهجي ٿو جيڪي ٿامپسن شيل مطابقت موڊ کي سپورٽ ڪن ٿا.

qemu-x86_64 ڪال اضافي پورٽيبلٽي مهيا ڪري ٿي ۽ اجازت ڏئي ٿي ڪوڊ مرتب ڪيل x86_64 آرڪيٽيڪچر لاءِ نان-x86 پليٽ فارمن تي هلائڻ لاءِ، جيئن ته راسبري پي بورڊز ۽ ايپل ڊيوائسز جيڪي ARM پروسيسرز سان ليس هوندا آهن. پروجيڪٽ پڻ استعمال ڪري سگھجي ٿو پاڻمرادو ايپليڪيشنون ٺاهڻ لاءِ جيڪي آپريٽنگ سسٽم کان سواءِ هلن ٿيون (ننگي ڌاتو). اهڙين ايپليڪيشنن ۾، هڪ بوٽ لوڊر قابل عمل فائل سان ڳنڍيل آهي، ۽ پروگرام هڪ بوٽبل آپريٽنگ سسٽم طور ڪم ڪري ٿو.

پروجيڪٽ پاران تيار ڪيل معياري سي لائبريري libc 2024 فنڪشن پيش ڪري ٿي (پهرين رليز ۾ اٽڪل 1400 فنڪشن هئا). ڪارڪردگي جي لحاظ کان، Cosmopolitan glibc جيتري تيزيءَ سان ڪم ڪري ٿو ۽ واضح طور تي Musl ۽ Newlib کان اڳتي آهي، ان حقيقت جي باوجود ته Cosmopolitan glibc کان ڪوڊ سائيز ۾ ننڍو ۽ تقريبن Musl ۽ Newlib سان ملندڙ جلندڙ آهي. عام طور تي سڏايل افعال جهڙوڪ memcpy ۽ strlen کي بهتر ڪرڻ لاءِ، ”ٽريڪل-ڊائون پرفارمنس“ ٽيڪنڪ پڻ استعمال ڪئي ويندي آهي، جنهن ۾ فنڪشن کي ڪال ڪرڻ لاءِ ميڪرو بائنڊنگ استعمال ڪئي ويندي آهي، جنهن ۾ ڪمپلر کي سي پي يو رجسٽرز بابت ڄاڻ ڏني ويندي آهي جيڪي ڪوڊ جي عمل ۾ شامل هوندا آهن. پروسيس، جيڪو وسيلن کي بچائڻ جي اجازت ڏئي ٿو جڏهن صرف تبديل ٿيندڙ رجسٽرن کي محفوظ ڪندي CPU اسٽيٽ کي بچايو.

نئين رليز ۾ تبديلين جي وچ ۾:

  • زپ فائل اندر اندروني وسيلن تائين رسائي جو طريقو تبديل ڪيو ويو آهي (فائلون کولڻ وقت، عام رستا /zip/… هاڻي استعمال ڪيا ويندا آهن انهن تائين رسائي جي بدران zip:.. پريفڪس ذريعي). ساڳئي طرح، ڊسڪ تائين رسائي Windows "C:/..." جي بدران "/c/..." جهڙا رستا استعمال ڪرڻ جي صلاحيت متعارف ڪرائي وئي آهي.
  • ھڪڙو نئون APE (اصل ۾ پورٽبل قابل عمل) لوڊر تجويز ڪيو ويو آھي، جيڪو عالمگير عمل ڪندڙ فائلن جي شڪل کي بيان ڪري ٿو. نئون لوڊر پروگرام کي ميموري ۾ رکڻ لاءِ mmap استعمال ڪري ٿو ۽ فلائي تي مواد کي تبديل نٿو ڪري. جيڪڏهن ضروري هجي ته، يونيورسل ايگزيڪيوٽو فائل کي انفرادي پليٽ فارمن سان ڳنڍيل باقاعده عملدار فائلن ۾ تبديل ڪري سگهجي ٿو.
  • پليٽ فارم تي Linux APE پروگرامن کي لانچ ڪرڻ لاءِ binfmt_misc ڪرنل ماڊيول استعمال ڪرڻ جي صلاحيت لاڳو ڪئي وئي آهي. اهو نوٽ ڪيو وڃي ٿو ته binfmt_misc استعمال ڪرڻ تيز ترين لانچ طريقو آهي.
  • لاء Linux اوپن بي ايس ڊي پروجيڪٽ پاران تيار ڪيل پليج() ۽ انويئل() سسٽم ڪالز جي عملدرآمد جي تجويز آهي. سي، سي++، پٿون، ۽ ريڊبين پروگرامن ۾ انهن ڪالز کي استعمال ڪرڻ لاءِ هڪ API مهيا ڪئي وئي آهي، انهي سان گڏ صوابديدي عملن کي الڳ ڪرڻ لاءِ پليج. ڪام يوٽيلٽي.
  • بلڊ استعمال ڪري ٿو لينڊ لاڪ ميڪ يوٽيليٽي - GNU Make جو هڪ ايڊيشن وڌيڪ سخت انحصار جي چڪاس سان ۽ لينڊ لاڪ سسٽم ڪال جو استعمال پروگرام کي باقي سسٽم کان الڳ ڪرڻ ۽ ڪيشنگ ڪارڪردگي کي بهتر ڪرڻ لاءِ. باقاعده GNU Make سان ٺاھڻ جي صلاحيت ھڪڙي اختيار جي طور تي رکيل آھي.
  • ملٽي ٿريڊنگ لاءِ افعال لاڳو ڪيا ويا آهن - _spawn() ۽ _join()، جيڪي مختلف آپريٽنگ سسٽم لاءِ مخصوص APIs تي عالمگير پابند آهن. POSIX Threads جي سپورٽ کي لاڳو ڪرڻ لاءِ ڪم پڻ جاري آهي.
  • اهو ممڪن آهي _Thread_local لفظ استعمال ڪرڻ لاءِ هر ٿريڊ لاءِ الڳ اسٽوريج استعمال ڪرڻ لاءِ (TLS، Thread-Local Storage). ڊفالٽ طور، سي رن ٽائم بنيادي سلسلي لاءِ TLS کي شروع ڪري ٿو، جنهن جي ڪري گھٽ ۾ گھٽ قابل عمل سائيز 12 KB کان 16 KB تائين وڌي وئي آهي.
  • "--ftrace" ۽ "--strace" پيرا ميٽرز لاءِ سپورٽ ايگزيڪيوٽيبل فائلن ۾ شامل ڪئي وئي آھي انفارميشن کي ٻاھر ڪڍڻ لاءِ سڀني فنڪشن ڪالن ۽ سسٽم ڪالن کي stderr.
  • closefrom() سسٽم ڪال لاءِ شامل ڪيل سپورٽ، ان ۾ سپورٽ ڪئي وئي Linux 5.9+، فري بي ايس ڊي 8+ ۽ اوپن بي ايس ڊي.
  • پليٽ فارم تي Linux vDSO (ورچوئل ڊائنامڪ شيئرڊ آبجيڪٽ) ميڪانيزم استعمال ڪندي clock_gettime ۽ gettimeofday ڪالن جي ڪارڪردگي کي 10 ڀيرا وڌايو ويو آهي، جيڪو سسٽم ڪال هينڊلر کي يوزر اسپيس ڏانهن منتقل ڪرڻ ۽ ڪنٽيڪسٽ سوئچز کان بچڻ ممڪن بڻائي ٿو.
  • پيچيده انگن سان ڪم ڪرڻ لاء رياضياتي افعال Musl لائبريري مان منتقل ڪيا ويا آهن. ڪيترن ئي رياضياتي ڪمن جي ڪم کي تيز ڪيو ويو آهي.
  • نيٽ ورڪ صلاحيتن کي غير فعال ڪرڻ لاءِ nointernet() فنڪشن تجويز ڪيو ويو آهي.
  • شامل ڪيا ويا نوان ڪارناما موثر طريقي سان شامل ڪرڻ لاءِ: appendd، appendf، appendr، appends، appendw، appendz، kappendf، kvappendf ۽ vappendf.
  • kprintf() خاندان جي افعال جو هڪ محفوظ نسخو شامل ڪيو ويو آهي، جيڪو اعليٰ امتياز سان ڪم ڪرڻ لاءِ ٺهيل آهي.
  • عملدرآمد جي ڪارڪردگي ۾ نمايان طور تي بهتري ايس ايس ايل، SHA، curve25519 ۽ RSA.

جو ذريعو: opennet.ru

DDoS تحفظ سان سائيٽن لاءِ قابل اعتماد هوسٽنگ خريد ڪريو، VPS VDS سرور 🔥 DDoS تحفظ سان قابل اعتماد ويب سائيٽ هوسٽنگ خريد ڪريو، VPS VDS سرورز | ProHoster