تعرف على الإصدار الجديد من Cosmopolitan 2.0 ، مكتبة C القياسية عبر الأنظمة الأساسية

اطلاق ال .. انطلاق ال .. اقلاع ال النسخة الجديدة من المشروع "كوزموبوليتان 2.0"، الذي يطور مكتبة C قياسية وتنسيق ملف عالمي قابل للتنفيذ يمكن استخدامه لتوزيع البرامج لأنظمة تشغيل مختلفة دون استخدام مترجمين فوريين وأجهزة افتراضية.

الحاوية لإنشاء ملفات قابلة للتنفيذ عالمية يعتمد على الجمع بين شرائح ورؤوس معينة من أنظمة مختلفة أنظمة التشغيل في ملف واحد ، يجمع بين العديد من التنسيقات المختلفة المستخدمة في أنظمة التشغيل Unix و Windows و macOS.

لتتآكد من ذلك ملف واحد قابل للتنفيذ تعمل على الأنظمة ويندوز ويونيكس ، يتم استخدام خدعة لترميز ملفات Windows PE كبرنامج نصي للقذيفة ، الاستفادة من حقيقة أن Thompson Shell لا تستخدم علامة البرنامج النصي "#!".

لإنشاء برامج تتضمن ملفات متعددة (دمج جميع الموارد في ملف واحد) ، يتم دعم إنشاء ملف قابل للتنفيذ في شكل أرشيف مضغوط مصمم خصيصًا. مخطط التنسيق المقترح (مثال لتطبيق hello.com):

يتم توفير استدعاء qemu-x86_64 لإمكانية نقل إضافية ويسمح للكود المترجم لهندسة x86_64 بالعمل على منصات غير x86 ، مثل لوحات Raspberry Pi وأجهزة Apple المجهزة بمعالجات ARM. يمكن أيضًا استخدام المشروع لإنشاء تطبيقات قائمة بذاتها تعمل بدون نظام تشغيل (بدون نظام تشغيل). في مثل هذه التطبيقات ، يتم إرفاق أداة تحميل التشغيل بالملف القابل للتنفيذ ، ويعمل البرنامج كنظام تشغيل قابل للتمهيد.

المستجدات الرئيسية في كوزموبوليتان 2.0

في هذا الإصدار الجديد تم تسليط الضوء على أن تم تغيير مخطط الوصول إلى الموارد الداخلية في من ملف مضغوط (عند فتح الملفات ، يتم الآن استخدام المسارات المعتادة / zip /… بدلاً من استخدام الرمز البريدي: .. البادئة). وبالمثل ، للوصول إلى الأقراص في Windows ، من الممكن استخدام مسارات مثل "/ c / ..." بدلاً من "C: /…".

تم اقتراح محمل APE جديد (Actually Portable Executable) ، والتي تحدد تنسيق الملفات القابلة للتنفيذ العالمية. محمل الإقلاع الجديد يستخدم mmap لتخصيص البرنامج للذاكرة ولم يعد يغير المحتوى أثناء التنقل. إذا لزم الأمر ، يمكن تحويل الملف القابل للتنفيذ العام إلى ملفات تنفيذية منتظمة مرتبطة بالأنظمة الأساسية الفردية.

في نظام Linux ، من الممكن استخدام وحدة binfmt_misc kernel لتشغيل برامج APE. وتجدر الإشارة إلى أن استخدام binfmt_misc هو أسرع طريقة لبدء التشغيل ، بالإضافة إلى تنفيذ وظيفة استدعاءات نظام التعهد () وكشف النقاب () ، التي طورها مشروع OpenBSD ، بالإضافة إلى توفير واجهة برمجة تطبيقات لاستخدام بيانات الاتصال في برامج C و C ++ و Python و Redbean ، بالإضافة إلى أداة مساعدة من الوعد.com لعزل العمليات التعسفية.

يمكننا أن نجد ذلك أيضًا بالنسبة لنظام التشغيل Linux ، تم زيادة أداء مكالمات clock_gettime و gettimeofday حتى 10 مرات بسبب استخدام آلية vDSO (كائن افتراضي ديناميكي مشترك) ، والتي تسمح بنقل معالج استدعاء النظام إلى مساحة المستخدم وتجاوز سياق المحول.

يستخدم البناء Landlock Make، إصدار من GNU Make مع فحص التبعية الأكثر صرامة واستخدام استدعاء نظام Landlock لعزل البرنامج عن باقي النظام وتحسين كفاءة التخزين المؤقت. كخيار ، يتم الاحتفاظ بقدرة المترجم وصنع GNU المعتاد.

من ناحية أخرى ، فإنه يسلط الضوء أيضًا على ملف تم تنفيذ وظائف لتعدد مؤشرات الترابط: _spawn () و _join () ، وهي روابط عالمية عبر واجهات برمجة تطبيقات محددة لأنظمة تشغيل مختلفة. يجري العمل أيضًا على تنفيذ دعم سلاسل POSIX.

من التغييرات الأخرى التي تبرز:

  • تمت إضافة دعم لخيارات "–ftrace" و "–strace" إلى الملفات التنفيذية لإرسال معلومات حول جميع استدعاءات الوظائف والنظام إلى stderr.
  • دعم إضافي لمكالمة نظام closeefrom () المتوافقة مع Linux 5.9+ و FreeBSD 8+ و OpenBSD.
  • تم نقل الوظائف الرياضية للعمل مع الأعداد المركبة من مكتبة Musl.
  • تم تسريع العديد من وظائف الرياضيات.
  • تم اقتراح وظيفة nointernet () ، والتي تعطل قدرات الشبكة.
  • تمت إضافة وظائف جديدة لإلحاق السلاسل بكفاءة: appendd و appendf و appendr و appends و appendw و appendz و kappendf و kvappendf و vappendf.
  • تمت إضافة نسخة محمية من عائلة وظائف kprintf () ، المصممة للعمل بامتيازات مرتفعة.
  • تم تحسين أداء تطبيقات SSL و SHA و curve25519 و RSA بشكل ملحوظ.

أخيرًا ، إذا كنت مهتمًا بمعرفة المزيد عنها ، فيجب أن تعلم أن كود المشروعأو يتم توزيعها بموجب ترخيص ISC (نسخة مبسطة من MIT / BSD).


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.