إصدار Linux 5.16 kernel

بعد شهرين من التطوير، قدم لينوس تورفالدس إصدار Linux kernel 5.16. ومن أبرز التغييرات: استدعاء نظام futex_waitv لتحسين أداء ألعاب Windows في Wine، وتتبع الأخطاء في FS عبر fanotify، ومفهوم الأوراق في نظام إدارة الذاكرة، ودعم تعليمات معالج AMX، والقدرة على حجز الذاكرة لـ مآخذ الشبكة، ودعم تصنيف الحزم في مرحلة "الخروج" من netfilter، باستخدام نظام DAMON الفرعي لإخلاء مناطق الذاكرة غير المستخدمة بشكل استباقي، وتحسين التعامل مع الأحمال الزائدة مع حجم كبير من عمليات الكتابة، ودعم محركات الأقراص الثابتة متعددة الأقراص.

يتضمن الإصدار الجديد 15415 إصلاحًا من 2105 مطورًا، وحجم التصحيح 45 ميجابايت (أثرت التغييرات على 12023 ملفًا، وتمت إضافة 685198 سطرًا من التعليمات البرمجية، وتم حذف 263867 سطرًا). حوالي 44% من جميع التغييرات التي تم إدخالها في 5.16 تتعلق ببرامج تشغيل الأجهزة، وحوالي 16% من التغييرات تتعلق بتحديث التعليمات البرمجية الخاصة ببنيات الأجهزة، و16% تتعلق بمكدس الشبكة، و4% تتعلق بأنظمة الملفات، و4% ترتبط بالأنظمة الفرعية للنواة الداخلية.

الابتكارات الرئيسية في kernel 5.16:

  • نظام القرص الفرعي ، I / O وأنظمة الملفات
    • تمت إضافة أدوات إلى آلية fanotify لمراقبة حالة نظام الملفات وتتبع حدوث الأخطاء. يتم إرسال المعلومات حول الأخطاء باستخدام نوع جديد من الأحداث - FAN_FS_ERROR، والتي يمكن اعتراضها في أنظمة المراقبة التي تعمل في مساحة المستخدم لإبلاغ المسؤول على الفور أو بدء عمليات الاسترداد. عند حدوث سلسلة من الأخطاء بشكل متتالي، يضمن fanotify تسليم رسالة الخطأ الأولى مع عداد مشكلة عام لتبسيط التحليل اللاحق لسبب الفشل. يتم حاليًا تنفيذ دعم تتبع الأخطاء لنظام الملفات Ext4 فقط.
    • معالجة محسنة لازدحام الكتابة، الذي يحدث عندما يتجاوز حجم عمليات الكتابة إنتاجية محرك الأقراص ويضطر النظام إلى حظر طلبات الكتابة الخاصة بالعملية حتى يتم إكمال الطلبات التي تم إرسالها بالفعل. في الإصدار الجديد، تمت إعادة تصميم آلية kernel المستخدمة للحصول على معلومات حول حدوث التحميل الزائد وحظر المهام بالكامل، حيث كانت هناك مشاكل في التنفيذ القديم في اقتران معالجة التحميل الزائد للكتابة مع إزاحة صفحات الذاكرة إلى المبادلة القسم عندما لا تكون هناك ذاكرة كافية في النظام.
    • تنفذ Btrfs دعمًا لتقنية تقسيم الأجهزة (Zoned Namespace)، المستخدمة في محركات الأقراص الثابتة أو محركات أقراص NVMe SSD لتقسيم مساحة التخزين إلى مناطق، والتي تشكل مجموعات من الكتل أو القطاعات، والتي يُسمح فيها بإضافة البيانات بشكل تسلسلي فقط، وتحديث المجموعة بأكملها من كتل. بالإضافة إلى ذلك، تم إجراء تحسينات طفيفة على تسجيل الدخول، مما أدى إلى زيادة الإنتاجية في اختبار dbench بنسبة 3% وتقليل زمن الوصول بنسبة 11%. تمت إعادة تصميم آلية تسجيل الدليل، حيث تم تقليل عدد عمليات البحث والحظر في الشجرة لزيادة الكفاءة. تم تسريع إدراج العناصر في بنية btree في الوضع الدفعي (تم تقليل وقت الإدراج المجمع للعناصر بنسبة 4%، والحذف بنسبة 12%). تمت إضافة دعم محدود لاستخدام الضغط عند كتابة صفحات جزئية، بالإضافة إلى القدرة على إلغاء تجزئة الصفحات الفرعية. تم إجراء الاستعدادات لتمكين دعم الإصدار الثاني من البروتوكول لأمر "الإرسال".
    • يعمل نظام ملفات XFS على تقليل استهلاك الذاكرة عن طريق استخدام ذاكرة تخزين مؤقت منفصلة للعناصر المستخدمة بشكل متكرر وتقليل بعض بنيات البيانات.
    • في نظام الملفات Ext4، تمت الإشارة فقط إلى إصلاحات الأخطاء والحسابات الأكثر دقة لمعلمات التهيئة البطيئة لجدول Inode.
    • تم تنفيذ التحسينات على مستوى جهاز الكتلة لزيادة كفاءة ربط العمليات بنوى وحدة المعالجة المركزية بشكل كبير.
    • تمت إضافة دعم أولي لمحركات الأقراص الصلبة ذات محركات أقراص مستقلة متعددة (مشغلات متعددة)، مما يجعل من الممكن الوصول في وقت واحد إلى عدة قطاعات في مناطق مختلفة من الطبق المغناطيسي.
    • تمت إضافة أمر ioctl جديد CDROM_TIMED_MEDIA_CHANGE لاكتشاف أحداث تغيير الوسائط في محرك الأقراص الضوئية.
    • أضاف نظام الملفات EROFS (نظام الملفات المحسن للقراءة فقط) القدرة على العمل على أجهزة تخزين متعددة. يمكن تعيين أجهزة مختلفة إلى مساحة عنوان كتلة واحدة 32 بت. تمت إضافة دعم الضغط باستخدام خوارزمية LZMA أيضًا.
    • تمت إضافة خيارات التثبيت إلى نظام الملفات F2FS للتحكم في تجزئة الملف عند وضعه في وحدة التخزين (على سبيل المثال، لتصحيح أخطاء التحسينات للعمل مع وحدة التخزين المجزأة).
    • يمكّن CEPH إنشاء الدليل غير المتزامن وحذفه افتراضيًا (استخدم العلامة '-o wsync' عند التثبيت للعودة إلى السلوك القديم). تمت إضافة صيانة للمقاييس التي تتعقب عمليات نسخ الكائنات الخارجية.
    • تمت إضافة معلمة تحميل tcpnodelay إلى CIFS، والتي تقوم بتعيين وضع tcp_sock_set_nodelay لمقبس الشبكة، مما يؤدي إلى تعطيل انتظار قائمة الانتظار لملء مكدس TCP. تمت إضافة دعم لارتباطات DFS المتداخلة (نظام الملفات الموزعة) عند إعادة التحميل.
    • تمت إضافة دعم لاستكمال الطلبات لجهاز الكتلة في الوضع الدفعي. أظهر اختبار التغيير زيادة في كثافة عمليات القراءة العشوائية من محركات أقراص Optane من 6.1 إلى 6.6 مليون IOPS على نواة وحدة المعالجة المركزية واحدة.
  • خدمات الذاكرة والنظام
    • تمت إضافة استدعاء نظام جديد futex_waitv، والذي يسمح لك بمراقبة حالة العديد من futexes في وقت واحد باستخدام مكالمة نظام واحدة. تذكرنا هذه الميزة بوظيفة WaitForMultipleObjects المتوفرة في Windows، والتي يمكن أن تكون محاكاتها عبر futex_waitv مفيدة لتحسين أداء ألعاب Windows التي تعمل تحت Wine أو Proton. بالإضافة إلى ذلك، يمكن أيضًا استخدام الانتظار المتزامن لـ futexes لتحسين أداء الإصدارات الأصلية من الألعاب لنظام التشغيل Linux.
    • لقد تم تنفيذ مفهوم أوراق الصفحة، والذي سيؤدي استخدامه في بعض أنظمة kernel الفرعية إلى تسريع إدارة الذاكرة في ظل أحمال العمل النموذجية. حاليًا، تم بالفعل نقل النظام الفرعي لإدارة الذاكرة الرئيسي في النواة وتنفيذ ذاكرة التخزين المؤقت للصفحة إلى الأوراق، ومن المخطط نقل أنظمة الملفات في المستقبل. في المستقبل، من المخطط أيضًا إضافة دعم للأوراق متعددة الصفحات إلى النواة.

      تشبه المجلدات الصفحات المركبة، ولكنها تحتوي على دلالات محسنة وتنظيم أكثر وضوحًا للعمل. لإدارة ذاكرة النظام، يتم تقسيم ذاكرة الوصول العشوائي المتوفرة إلى صفحات ذاكرة، ويختلف حجمها حسب البنية، ولكن في أنظمة x86 يتم قياسها بالكيلوبايت (عادةً 4096 بايت). تأتي الأنظمة الحديثة بعشرات الجيجابايت من ذاكرة الوصول العشوائي (RAM)، مما يجعل إدارة الذاكرة أكثر تعقيدًا بسبب الحاجة إلى معالجة عدد كبير من صفحات الذاكرة. لتقليل عدد الصفحات، نفذت النواة مسبقًا مفهوم الصفحات المركبة ذات الهياكل التي تغطي أكثر من صفحة فعلية واحدة من الذاكرة. لكن واجهة برمجة التطبيقات (API) لمعالجة صفحات الذاكرة المدمجة تركت الكثير مما هو مرغوب فيه وأدت إلى زيادة الحمل.

    • تمت إضافة معالج إلى برنامج جدولة المهام الذي يأخذ في الاعتبار تجميع ذاكرة التخزين المؤقت على وحدة المعالجة المركزية. في بعض المعالجات، مثل Kunpeng 920 (ARM) وIntel Jacobsville (x86)، يمكن لعدد معين من نوى وحدة المعالجة المركزية، عادة 4، الجمع بين ذاكرة التخزين المؤقت L3 أو L2. مع الأخذ في الاعتبار مثل هذه الهياكل يمكن أن يؤدي إلى تحسين كفاءة توزيع المهام عبر مراكز وحدة المعالجة المركزية في برنامج جدولة المهام بشكل كبير، نظرًا لأن نقل المهام داخل نفس مجموعة وحدة المعالجة المركزية يسمح بزيادة إنتاجية الوصول إلى الذاكرة وتقليل تنافس ذاكرة التخزين المؤقت.
    • تمت إضافة دعم لتعليمات AMX (امتدادات المصفوفة المتقدمة) التي تم تنفيذها في معالجات خادم Intel Xeon Scalable القادمة، والتي تحمل الاسم الرمزي Sapphire Rapids. تقدم AMX سجلات TMM "TILE" جديدة قابلة للتكوين وتعليمات لمعالجة البيانات في هذه السجلات، مثل TMUL (مصفوفة البلاط MULtiply) لمضاعفة المصفوفات.
    • تم تنفيذ العديد من الميزات الجديدة استنادًا إلى النظام الفرعي DAMON (مراقبة الوصول إلى البيانات) الذي تمت إضافته في الإصدار الأخير، والذي يسمح لك بمراقبة الوصول إلى البيانات في ذاكرة الوصول العشوائي (RAM) فيما يتعلق بالعملية المحددة التي يتم تشغيلها في مساحة المستخدم. على سبيل المثال، يتيح النظام الفرعي تحليل مناطق الذاكرة التي وصلت إليها العملية أثناء عملها بالكامل، وأي مناطق الذاكرة ظلت غير مطالب بها.
      • DAMON_RECLAIM لتحديد وإخلاء مناطق الذاكرة التي لم يتم الوصول إليها. يمكن استخدام الآلية لإخلاء صفحات الذاكرة بشكل استباقي عندما تكون الذاكرة الحرة على وشك النفاد.
      • DAMOS (أنظمة التشغيل القائمة على مراقبة الوصول إلى البيانات) لتطبيق عمليات madvise() المحددة، مثل تحرير ذاكرة حرة إضافية، لمعالجة مناطق الذاكرة التي تم إصلاح تردد معين للوصول إلى الذاكرة لها. يتم تكوين معلمات DAMOS عبر تصحيح الأخطاء.
      • القدرة على مراقبة مساحة العنوان الفعلي للذاكرة (سابقًا كان من الممكن مراقبة العناوين الافتراضية فقط).
    • تم تحديث تنفيذ خوارزمية الضغط zstd إلى الإصدار 1.4.10، مما أدى إلى تحسين أداء أنظمة kernel الفرعية المختلفة التي تستخدم الضغط بشكل ملحوظ (على سبيل المثال، تم تسريع عملية تفريغ صورة kernel بنسبة 35%، وأداء تفريغ البيانات المضغوطة) في Btrfs و SquashFS بنسبة 15٪، وفي ZRAM - بنسبة 30٪). استخدمت النواة في البداية تطبيقًا منفصلاً لـ zstd، استنادًا إلى الإصدار 1.3.1، الذي تم إصداره منذ أكثر من ثلاث سنوات ولم يتضمن العديد من التحسينات المهمة. بالإضافة إلى الانتقال إلى الإصدار الحالي، يعمل التصحيح المُضاف أيضًا على تبسيط المزامنة مع فرع zstd الرئيسي، مما يسمح لك بإنشاء تعليمات برمجية لتضمينها في kernel مباشرة من مستودع zstd الرئيسي. في المستقبل، من المقرر أن يتم تحديث كود zstd الموجود في النواة مع إصدار إصدارات جديدة من مكتبة zstd.
    • تم إجراء جزء كبير من التحسينات على النظام الفرعي eBPF. تمت إضافة القدرة على استدعاء وظائف وحدة kernel من برامج BPF. تم تنفيذ الدالة bpf_trace_vprintk()، على عكس bpf_trace_printk()، والتي تسمح لك بإخراج أكثر من ثلاث وسائط في وقت واحد. تمت إضافة مرشح ازدهار بنية تخزين البيانات (خريطة BPF) الجديد، والذي يسمح لك باستخدام بنية البيانات الاحتمالية التي تحمل الاسم نفسه لتحديد وجود عنصر في المجموعة. تمت إضافة سمة جديدة BTF_KIND_TAG، والتي يمكن استخدامها في برامج BPF لربط العلامات بمعلمات الوظيفة، على سبيل المثال، لتبسيط اكتشاف الأخطاء في برامج المستخدم. في libbpf، من الممكن إنشاء أقسام .rodata.*/.data.* الخاصة بك، وتم تنفيذ دعم أحداث التتبع uprobe وkprobe، وتمت إضافة واجهة برمجة التطبيقات (API) لنسخ جميع أنواع BTF من كائن إلى آخر. تم نقل دعم AF_XDP من libbpf إلى مكتبة libxdp منفصلة. بالنسبة لبنية MIPS، تم تطبيق مترجم JIT للجهاز الظاهري BPF.
    • بالنسبة لبنية ARM64، تم تنفيذ دعم امتدادات ARMv8.6 للمؤقت، بما في ذلك تلك التي تسمح بتمثيل سجلات النظام بالمزامنة الذاتية دون استخدام تعليمات ISB.
    • بالنسبة لبنية PA-RISC، تم تنفيذ القدرة على استخدام آلية KFENCE لاكتشاف الأخطاء عند العمل مع الذاكرة، وتمت إضافة دعم لكاشف حالة السباق KCSAN.
    • من الممكن تكوين حقوق الوصول إلى عمليات التتبع على مستوى المستخدمين والمجموعات الفردية؛ على سبيل المثال، يمكنك الآن السماح بالوصول إلى أدوات التتبع لأعضاء مجموعة معينة فقط.
  • المحاكاة الافتراضية والأمن
    • يقوم النظامان الفرعيان io_uring وdevice-mapper بتنفيذ الدعم لإنشاء أحداث التدقيق. يوفر io_uring القدرة على التحكم في الوصول من خلال وحدات LSM. تمت إضافة القدرة على تدقيق استدعاء النظام openat2().
    • رمز kernel خالٍ تمامًا من تعبيرات الحالة المستمرة في المحول (لا يوجد عودة أو انقطاع بعد كل كتلة حالة). عند بناء النواة، سيكون من الممكن الآن استخدام الوضع "-Wimplicit-fallthrough".
    • تم تضمين التغييرات لتشديد عمليات التحقق من الحدود عند تنفيذ وظيفة memcpy().
    • تنفذ واجهة الإدخال/الإخراج غير المتزامنة io_uring القدرة على تطبيق سياسات الأمان المحددة بواسطة وحدات SELinux وSmack على عمليات الإدخال/الإخراج.
    • النظام الفرعي IMA (هندسة قياس التكامل)، الذي يسمح لخدمة خارجية بالتحقق من حالة أنظمة kernel الفرعية للتأكد من صحتها، ينفذ القدرة على تطبيق القواعد بناءً على معرف المجموعة (GID) الذي ينتمي إليه الملف أو الذي ينتمي إليه المستخدم ينتمي الوصول إلى الملف.
    • يتم تعطيل بعض الآليات المتقدمة بشكل افتراضي لحماية سلاسل عمليات seccomp() من هجمات Spectre، والتي كانت تعتبر غير ضرورية ولم تحسن الأمان بشكل كبير، ولكنها أثرت سلبًا على الأداء. تمت مراجعة استخدام حماية Retpoline.
    • تمت إزالة تنفيذ آلية cryptoloop، والتي تم استبدالها في عام 2004 بـ dm-crypt، وإذا لزم الأمر، فإنها تدعم نفس الخوارزميات.
    • افتراضيًا، يُحظر الوصول غير المميز إلى نظام eBPF الفرعي. تم إجراء التغيير لمنع استخدام برامج BPF لتجاوز الحماية ضد هجمات القنوات الجانبية. إذا لزم الأمر، يمكن للمسؤول استعادة قدرة المستخدمين غير المميزين على استخدام eBPF.
    • أضاف برنامج Hypervisor ACRN، المصمم للمهام في الوقت الفعلي والاستخدام في الأنظمة ذات المهام الحرجة، دعمًا لإنشاء/حذف الأجهزة الافتراضية وإعادة توجيه أجهزة MMIO.
    • تمت إضافة دعم تعريفات KPP (أساسيات بروتوكول اتفاقية المفاتيح) إلى محرك التشفير، مما يبسط منطق تطوير برامج التشغيل لأنظمة التشفير.
    • يدعم برنامج Hyper-V Hypervisor الآن وضع عزل الجهاز الظاهري، والذي يتضمن تشفير محتويات الذاكرة.
    • أضاف برنامج Hypervisor KVM دعمًا لبنية RISC-V. تم تنفيذ القدرة على ترحيل الأجهزة الافتراضية التي تعمل باستخدام امتدادات AMD SEV وSEV-ES داخل البيئة المضيفة. تمت إضافة واجهة برمجة التطبيقات للترحيل المباشر لأنظمة الضيف المشفرة باستخدام AMD SEV (المحاكاة الافتراضية المشفرة الآمنة).
    • بالنسبة لبنية PowerPC، يتم تمكين وضع STRICT_KERNEL_RWX افتراضيًا، مما يمنع استخدام صفحات الذاكرة المتوفرة للكتابة والتنفيذ في نفس الوقت.
    • في أنظمة 32 بت x86، تم إيقاف دعم التوصيل السريع للذاكرة، والذي ظل غير فعال لأكثر من عام.
    • تمت إزالة مكتبة liblockdep من النواة وسيتم صيانتها الآن بشكل منفصل عن النواة.
  • النظام الفرعي للشبكة
    • بالنسبة للمقابس، تم تنفيذ خيار جديد SO_RESERVE_MEM، والذي يمكنك من خلاله حجز قدر معين من الذاكرة للمقبس، والذي سيظل متاحًا دائمًا للمقبس ولن تتم إزالته. يتيح لك استخدام هذا الخيار تحقيق أداء متزايد عن طريق تقليل تخصيص الذاكرة واستعادة العمليات في مكدس الشبكة، خاصة عند حدوث حالات انخفاض الذاكرة في النظام.
    • تمت إضافة دعم لبروتوكول نفق البث المتعدد التلقائي (RFC 7450)، والذي يسمح بتوصيل حركة مرور البث المتعدد من الشبكات التي تدعم البث المتعدد إلى المستلمين على الشبكات دون البث المتعدد. يعمل البروتوكول من خلال التغليف في حزم UDP.
    • تحسين تغليف بيانات IOAM (العمليات والإدارة والصيانة في الموقع) في حزم النقل.
    • تمت إضافة القدرة على التحكم في أوضاع استهلاك طاقة جهاز الإرسال والاستقبال إلى واجهة برمجة تطبيقات ethtool netlink.
    • ينفذ النظام الفرعي netfilter القدرة على تصنيف الحزم على مستوى الخروج، أي. في المرحلة التي يتلقى فيها برنامج التشغيل حزمة من مكدس شبكة kernel. في nftables، ظهر دعم المرشحات المقابلة في الإصدار 1.0.1. أضاف Netfilter القدرة على مقارنة وتغيير الرؤوس والبيانات الداخلية لـ UDP وTCP (الرأس الداخلي / الحمولة) التي تأتي بعد رأس النقل.
    • تمت إضافة معلمات sysctl جديدة arp_evict_nocarrier وndisc_evict_nocarrier، عند التعيين، سيتم مسح ذاكرة التخزين المؤقت ARP وجدول ndisc (اكتشاف الجوار) في حالة فشل الاتصال (NOCARRIER).
    • تمت إضافة أوضاع زمن الوصول المنخفض والخسارة المنخفضة والإنتاجية القابلة للتطوير (L4S) إلى آلية إدارة قائمة انتظار الشبكة fq_codel (التأخير المتحكم فيه).
  • معدات
    • يوفر برنامج التشغيل amdgpu الدعم الأولي لمواصفات DP 2.0 (DisplayPort 2.0) ونفق DisplayPort عبر USB4. بالنسبة لوحدات Cyan Skillfish APUs (المزودة بـ GPU Navi 1x)، تمت إضافة دعم لوحدات التحكم في العرض. تم توسيع الدعم لوحدات Yellow Carp APUs (معالجات Ryzen 6000 "Rembrandt" المحمولة).
    • يعمل برنامج التشغيل i915 على تثبيت دعم شرائح Intel Alderlake S وينفذ الدعم لتقنية Intel PXP (Protected Xe Path)، والتي تسمح لك بتنظيم جلسة رسومات محمية بالأجهزة على الأنظمة التي تحتوي على شرائح Intel Xe.
    • تم العمل في برنامج التشغيل الجديد لإصلاح الأخطاء وتحسين نمط التعليمات البرمجية.
    • تمت إضافة دعم لوحدات المعالجة المركزية Vortex المتوافقة مع x86 (Vortex86MX). لقد عمل Linux على معالجات مماثلة من قبل، ولكن كان من الضروري تحديد صريح لوحدات المعالجة المركزية المحددة لتعطيل الحماية ضد هجمات Spectre/Meltdown، والتي لا تنطبق على الشرائح المحددة.
    • تمت إضافة دعم أولي لمنصات x86 لجهاز Surface Pro 8 وSurface Laptop Studio.
    • تمت إضافة برنامج تشغيل لدعم شرائح الصوت المستخدمة في AMD Yellow Carp وVan Gogh APUs، كما تمت إضافة دعم لأنظمة الصوت وبرامج الترميز Cirrus CS35L41 وMaxim MAX98520/MAX98360A وMediatek MT8195 وNuvoton NAU8821 وNVIDIA Tegra210 وNXP i.MX8ULP وQualcomm AudioReach وRealtek ALC5682I-VS، RT5682S، RT9120، روكشيب RV1126 وRK3568.
    • تمت إضافة برنامج تشغيل ishtp_eclite للوصول إلى وحدات التحكم المضمنة Intel PSE (محرك الخدمة القابلة للبرمجة) باستخدام ISHTP (بروتوكول نقل محور الاستشعار المتكامل)، مثل واجهة المعلومات ذات الصلة بالبطارية ودرجة الحرارة وUCSI (برنامج نظام موصل USB من النوع C).
    • تمت إضافة برنامج تشغيل لأجهزة التحكم في ألعاب Nintendo Switch التي تدعم Switch Pro وJoy-Cons. تمت إضافة دعم لأجهزة Wacom Intuos BT اللوحية (CTL-4100WL/CTL-6100WL) ولوحة مفاتيح Apple 2021 Magic Keyboard. تحسين الدعم لوحدات تحكم Sony PlayStation DualSense. تمت إضافة دعم للأزرار الجانبية للماوس Xiaomi Mi.
    • تمت إضافة برنامج تشغيل RT89 مع دعم شرائح Realtek 802.11ax اللاسلكية، بالإضافة إلى برامج تشغيل لمحولات Asix AX88796C-SPI Ethernet ومحولات Realtek RTL8365MB-VC.
    • تمت إضافة برامج تشغيل PCI وPASemi i1c لشرائح Apple M2.
    • تمت إضافة دعم لـ ARM SoС والأجهزة واللوحات Raspberry Pi Compute Module 4 وFairphone 4 وSnapdragon 690 وLG G Watch R وSony Xperia 10 III وSamsung Galaxy S4 Mini Value Edition وXiaomi MSM8996 (Mi 5 وMi Note 2 وMi 5s ، Mi Mix، Mi 5s Plus وXiaomi Mi 5)، Sony Yoshino (Sony Xperia XZ1، وSony Xperia XZ Premium)، F(x)tec Pro1 QX1000، Microchip LAN966، CalAmp LMU5000، Exegin Q5xR5، sama7g5، Samsung ExynosAutov9، Rockchip RK3566 , RK3399 ROCK Pi 4A+, RK3399 ROCK Pi 4B+, Firefly ROC-RK3328-PC, Firefly ROC-RK3399-PC-PLUS, ASUS Chromebook Tablet CT100, Pine64 Quartz64-A, Netgear GS110EMX, Globalscale MOCHAbin 7040, NXP S32G2, Ren esas R8A779M*، Xilinx Kria، Radxa Zero، JetHub D1/H1، Netronix E70K02.

المصدر: opennet.ru

إضافة تعليق