انتشار هسته لینوکس 5.16

پس از دو ماه توسعه، لینوس توروالدز نسخه 5.16 هسته لینوکس را ارائه کرد. از جمله قابل توجه ترین تغییرات: فراخوانی سیستم futex_waitv برای بهبود عملکرد بازی های ویندوز در Wine، ردیابی خطا در FS از طریق fanotify، مفهوم برگه ها در سیستم مدیریت حافظه، پشتیبانی از دستورالعمل های پردازنده AMX، امکان ذخیره حافظه برای سوکت های شبکه، پشتیبانی از طبقه بندی بسته ها در مرحله نت فیلتر "خروج"، استفاده از زیرسیستم DAMON برای خارج کردن فعالانه مناطق حافظه استفاده نشده، بهبود مدیریت بارهای اضافی با حجم زیادی از عملیات نوشتن، پشتیبانی از هارد دیسک های چند درایو.

نسخه جدید شامل 15415 اصلاحات از 2105 توسعه دهنده است، اندازه پچ 45 مگابایت است (تغییرات روی 12023 فایل تأثیر گذاشت، 685198 خط کد اضافه شد، 263867 خط حذف شد). حدود 44 درصد از کل تغییرات معرفی شده در 5.16 مربوط به درایورهای دستگاه، تقریباً 16 درصد تغییرات مربوط به به روز رسانی کدهای خاص معماری سخت افزار، 16 درصد مربوط به پشته شبکه، 4 درصد مربوط به سیستم های فایل و 4 درصد است. مربوط به زیرسیستم های هسته داخلی هستند.

نوآوری های کلیدی در هسته 5.16:

  • زیرسیستم دیسک، I/O و سیستم های فایل
    • ابزارهایی به مکانیسم fanotify برای نظارت بر وضعیت سیستم فایل و ردیابی وقوع خطاها اضافه شده است. اطلاعات مربوط به خطاها با استفاده از نوع جدیدی از رویدادها منتقل می شود - FAN_FS_ERROR، که می تواند در سیستم های نظارتی در حال اجرا در فضای کاربر برای اطلاع فوری به مدیر یا راه اندازی فرآیندهای بازیابی رهگیری شود. هنگامی که یک سری از خطاها به صورت آبشاری رخ می دهد، fanotify تضمین می کند که اولین پیام خطا همراه با یک شمارنده مشکل کلی تحویل داده می شود تا تجزیه و تحلیل بعدی علت خرابی را ساده کند. پشتیبانی ردیابی خطا در حال حاضر فقط برای سیستم فایل Ext4 اجرا می شود.
    • بهبود مدیریت ازدحام نوشتن، که زمانی رخ می‌دهد که حجم عملیات نوشتن از توان درایو بیشتر شود و سیستم مجبور شود درخواست‌های نوشتن یک فرآیند را تا زمانی که درخواست‌هایی که قبلاً ارسال شده تکمیل شوند، مسدود کند. در نسخه جدید، مکانیسم هسته مورد استفاده برای به دست آوردن اطلاعات در مورد وقوع اضافه بار و مسدود کردن وظایف، به طور کامل دوباره طراحی شده است، زیرا در اجرای قدیمی مشکلاتی در ارتباط با پردازش اضافه بار نوشتن با جابجایی صفحات حافظه در مبادله وجود داشت. زمانی که حافظه کافی در سیستم وجود ندارد.
    • Btrfs از فناوری منطقه‌بندی دستگاه (Zoned Namespace) استفاده می‌کند که در هارد دیسک‌ها یا SSD‌های NVMe برای تقسیم فضای ذخیره‌سازی به مناطق، که گروه‌هایی از بلوک‌ها یا بخش‌ها را تشکیل می‌دهند، که فقط به صورت متوالی داده‌ها در آن‌ها مجاز است، استفاده می‌شود و کل گروه را به‌روزرسانی می‌کند. بلوک ها علاوه بر این، بهینه‌سازی‌های جزئی برای ورود به سیستم inode انجام شد که باعث افزایش 3 درصدی در آزمایش dbench و کاهش تأخیر 11 درصدی شد. مکانیسم ثبت دایرکتوری دوباره طراحی شده است که در آن تعداد عملیات جستجو و مسدود کردن در درخت کاهش یافته است تا کارایی افزایش یابد. درج عناصر در ساختار btree در حالت دسته ای تسریع شده است (زمان درج انبوه عناصر تا 4% و حذف 12%) کاهش یافته است. پشتیبانی محدود برای استفاده از فشرده سازی در هنگام نوشتن صفحات جزئی و همچنین امکان یکپارچه سازی صفحات فرعی اضافه شده است. آماده سازی برای فعال کردن پشتیبانی از نسخه دوم پروتکل برای فرمان "ارسال" انجام شده است.
    • سیستم فایل XFS با استفاده از حافظه پنهان جداگانه برای موارد پرکاربرد و کاهش برخی از ساختارهای داده، مصرف حافظه را کاهش می دهد.
    • در سیستم فایل Ext4، فقط رفع اشکال و محاسبه دقیق تر پارامترهای اولیه تنبل جدول Inode ذکر شده است.
    • بهینه‌سازی‌ها در سطح دستگاه بلوک اجرا شده‌اند تا کارایی اتصال عملیات به هسته‌های CPU را به میزان قابل توجهی افزایش دهند.
    • اضافه شدن پشتیبانی اولیه برای هارد دیسک‌های دارای درایوهای مستقل (چند محرک) که امکان دسترسی همزمان به چندین بخش در مناطق مختلف صفحه مغناطیسی را فراهم می‌کند.
    • یک دستور ioctl جدید CDROM_TIMED_MEDIA_CHANGE برای تشخیص رویدادهای تغییر رسانه در درایو دیسک نوری اضافه کرد.
    • سیستم فایل EROFS (Enhanced Read-Only File System) قابلیت کار بر روی چندین دستگاه ذخیره سازی را اضافه کرده است. دستگاه های مختلف را می توان به یک فضای آدرس بلوک 32 بیتی نگاشت کرد. پشتیبانی از فشرده سازی با استفاده از الگوریتم LZMA نیز اضافه شده است.
    • گزینه های نصب به سیستم فایل F2FS اضافه شده است تا قطعه قطعه شدن فایل را در هنگام قرار دادن در فضای ذخیره سازی کنترل کند (به عنوان مثال، برای اشکال زدایی بهینه سازی برای کار با ذخیره سازی تکه تکه شده).
    • CEPH ایجاد و حذف دایرکتوری ناهمزمان را به طور پیش‌فرض فعال می‌کند (برای بازگشت به رفتار قبلی از پرچم "-o wsync" هنگام نصب استفاده کنید). اضافه شدن نگهداری معیارهایی که عملیات کپی کردن اشیاء خارجی را ردیابی می کند.
    • یک پارامتر mount tcpnodelay به CIFS اضافه شده است که حالت tcp_sock_set_nodelay را برای سوکت شبکه تنظیم می‌کند، که انتظار برای پر کردن پشته TCP را غیرفعال می‌کند. هنگام نصب مجدد، پشتیبانی از پیوندهای DFS تو در تو (سیستم فایل توزیع شده) اضافه شده است.
    • پشتیبانی برای تکمیل درخواست ها به یک دستگاه بلوک در حالت دسته ای اضافه شده است. آزمایش این تغییر، افزایش شدت عملیات خواندن تصادفی از درایوهای Optane را از 6.1 به 6.6 میلیون IOPS در یک هسته CPU نشان داد.
  • خدمات حافظه و سیستم
    • یک فراخوانی سیستمی جدید futex_waitv اضافه شده است، که به شما امکان می دهد با استفاده از یک تماس سیستمی، وضعیت چندین فوتکس را به طور همزمان نظارت کنید. این ویژگی یادآور قابلیت WaitForMultipleObjects موجود در ویندوز است که شبیه سازی آن از طریق futex_waitv می تواند برای بهبود عملکرد بازی های ویندوزی که تحت Wine یا Proton اجرا می شوند مفید باشد. علاوه بر این، انتظار همزمان برای futexes نیز می تواند برای بهینه سازی عملکرد ساخت های بومی بازی ها برای لینوکس مورد استفاده قرار گیرد.
    • مفهوم برگه های صفحه پیاده سازی شده است که استفاده از آن در برخی از زیرسیستم های هسته، مدیریت حافظه را تحت بارهای کاری معمولی سرعت می بخشد. در حال حاضر زیرسیستم مدیریت حافظه اصلی در هسته و پیاده سازی کش صفحه قبلاً به folios منتقل شده است و برنامه ریزی شده است که فایل سیستم ها در آینده منتقل شوند. همچنین در آینده برنامه ریزی شده است که پشتیبانی از برگه های چند صفحه ای به هسته اضافه شود.

      توم ها شبیه صفحات مرکب هستند، اما معنایی بهبود یافته و سازماندهی واضح تری از کار دارند. برای مدیریت حافظه سیستم، RAM موجود به صفحات حافظه تقسیم می شود که اندازه آن بر اساس معماری متفاوت است، اما در سیستم های x86 با کیلوبایت (معمولا 4096 بایت) اندازه گیری می شود. سیستم های مدرن با ده ها گیگابایت رم عرضه می شوند که مدیریت حافظه را به دلیل نیاز به پردازش تعداد زیادی از صفحات حافظه پیچیده تر می کند. برای کاهش تعداد صفحات، هسته قبلاً مفهوم صفحات مرکب را با ساختارهایی که بیش از یک صفحه فیزیکی از حافظه را در بر می گرفت، پیاده سازی کرد. اما API برای دستکاری صفحات حافظه ادغام شده چیزهای زیادی را باقی گذاشت و منجر به سربار اضافی شد.

    • یک کنترل کننده به زمانبندی کار اضافه شده است که خوشه بندی کش در CPU را در نظر می گیرد. در برخی از پردازنده ها، مانند Kunpeng 920 (ARM) و Intel Jacobsville (x86)، تعداد معینی از هسته های CPU، معمولاً 4، می توانند حافظه نهان L3 یا L2 را ترکیب کنند. در نظر گرفتن چنین توپولوژی‌هایی می‌تواند کارایی توزیع وظایف بین هسته‌های CPU در زمان‌بندی وظایف را به‌طور قابل‌توجهی بهبود بخشد، زیرا جابجایی وظایف در یک کلاستر CPU باعث افزایش توان دسترسی به حافظه و کاهش اختلاف کش می‌شود.
    • پشتیبانی از دستورالعمل‌های AMX (Advanced Matrix Extensions) که در پردازنده‌های سرور مقیاس‌پذیر Intel Xeon با کد Sapphire Rapids اجرا شده است. AMX رجیسترهای قابل تنظیم TMM "TILE" و دستورالعمل‌هایی را برای دستکاری داده‌ها در این ثبات‌ها ارائه می‌کند، مانند TMUL (Tile matrix MULtiply) برای ضرب ماتریس.
    • چندین ویژگی جدید بر اساس زیرسیستم DAMON (Data Access MONitor) که در آخرین نسخه اضافه شده است، پیاده سازی شده است، که به شما امکان می دهد دسترسی به داده ها را در RAM در رابطه با فرآیند انتخاب شده در حال اجرا در فضای کاربر نظارت کنید. به عنوان مثال، زیرسیستم این امکان را فراهم می کند تا تجزیه و تحلیل کند که فرآیند در طول کل عملیات به چه مناطق حافظه دسترسی داشته است و کدام مناطق حافظه بدون ادعا باقی مانده است.
      • DAMON_RECLAIM برای شناسایی و حذف نواحی حافظه ای که به آنها دسترسی نداشته اند. زمانی که حافظه آزاد در حال اتمام است، می توان از این مکانیسم برای حذف فعال صفحات حافظه استفاده کرد.
      • DAMOS (طرح‌های عملیات مبتنی بر نظارت بر دسترسی به داده) برای اعمال عملیات madvise() مشخص، مانند آزاد کردن حافظه آزاد اضافی، برای پردازش مناطق حافظه که فرکانس مشخصی از دسترسی به حافظه برای آنها ثابت است. پارامترهای DAMOS از طریق debugfs پیکربندی می شوند.
      • امکان نظارت بر فضای آدرس فیزیکی حافظه (قبلاً فقط آدرس های مجازی قابل نظارت بودند).
    • پیاده سازی الگوریتم فشرده سازی zstd به نسخه 1.4.10 به روز شده است که عملکرد زیرسیستم های مختلف هسته را که از فشرده سازی استفاده می کنند به طور قابل توجهی بهبود بخشیده است (به عنوان مثال، باز کردن یک تصویر هسته تا 35٪ تسریع یافته است، عملکرد باز کردن بسته بندی داده های فشرده شده است. در Btrfs و SquashFS 15٪ و در ZRAM - 30٪ افزایش یافته است. هسته در ابتدا از یک پیاده سازی جداگانه از zstd بر اساس نسخه 1.3.1 استفاده می کرد که بیش از سه سال پیش منتشر شد و شامل بهینه سازی های مهم زیادی نبود. علاوه بر انتقال به نسخه فعلی، وصله اضافه شده همگام سازی با شاخه بالادست zstd را نیز ساده می کند و به شما امکان می دهد کدی را برای گنجاندن در هسته مستقیماً از مخزن اصلی zstd ایجاد کنید. در آینده، کد zstd در هسته برنامه ریزی شده است تا با انتشار نسخه های جدید کتابخانه zstd به روز شود.
    • بخش بزرگی از بهبودها در زیرسیستم eBPF انجام شده است. قابلیت فراخوانی توابع ماژول هسته از برنامه های BPF اضافه شده است. تابع bpf_trace_vprintk() پیاده سازی شده است، برخلاف bpf_trace_printk()، که به شما اجازه می دهد تا بیش از سه آرگومان را در یک زمان خروجی بگیرید. یک فیلتر شکوفایی ساختار ذخیره سازی داده جدید (نقشه BPF) اضافه شده است که به شما امکان می دهد از ساختار داده احتمالی به همین نام برای تعیین وجود یک عنصر در مجموعه استفاده کنید. یک ویژگی جدید BTF_KIND_TAG اضافه شده است که می تواند در برنامه های BPF برای اتصال برچسب ها به پارامترهای تابع استفاده شود، به عنوان مثال، برای ساده کردن تشخیص خطاها در برنامه های کاربر. در libbpf، این امکان وجود دارد که بخش‌های .rodata.*/.data.* خود را ایجاد کنید، پشتیبانی از رویدادهای uprobe و kprobe trace پیاده‌سازی شده است و یک 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() اضافه شده است.
    • کد هسته کاملاً عاری از عبارات case پیوسته در سوئیچ است (بعد از هر بلوک case هیچ بازگشت یا شکستی وجود ندارد). هنگام ساخت هسته، اکنون می توان از حالت "-Wimplicit-fallthrough" استفاده کرد.
    • در هنگام اجرای تابع ()memcpy شامل تغییراتی برای بررسی محدودیت‌های محدود می‌شود.
    • رابط ورودی/خروجی ناهمزمان io_uring توانایی اعمال سیاست های امنیتی تعریف شده توسط ماژول های SELinux و Smack را برای عملیات I/O پیاده سازی می کند.
    • زیرسیستم IMA (معماری اندازه‌گیری یکپارچگی) که به یک سرویس خارجی اجازه می‌دهد تا وضعیت زیرسیستم‌های هسته را تأیید کند تا از صحت آنها اطمینان حاصل کند، توانایی اعمال قوانین را بر اساس شناسه گروه (GID) که فایل به آن تعلق دارد یا کاربر به آن تعلق دارد، پیاده‌سازی می‌کند. دسترسی به فایل متعلق است.
    • برخی از مکانیسم‌های پیشرفته برای محافظت از رشته‌های seccomp() در برابر حملات Spectre به‌طور پیش‌فرض غیرفعال شد، که غیرضروری در نظر گرفته می‌شدند و امنیت را به طور قابل توجهی بهبود نمی‌دادند، اما بر عملکرد تأثیر منفی می‌گذاشتند. استفاده از محافظ Retpoline تجدید نظر شده است.
    • پیاده سازی مکانیزم cryptoloop حذف شده است که در سال 2004 با dm-crypt جایگزین شد و در صورت لزوم از همان الگوریتم ها پشتیبانی می کند.
    • به طور پیش فرض، دسترسی غیرمجاز به زیرسیستم eBPF ممنوع است. این تغییر برای جلوگیری از استفاده از برنامه های BPF برای دور زدن حفاظت در برابر حملات کانال جانبی ایجاد شد. در صورت لزوم، مدیر می‌تواند قابلیت استفاده از eBPF را برای کاربران غیرمجاز بازیابی کند.
    • هایپروایزر ACRN، طراحی شده برای کارهای بلادرنگ و استفاده در سیستم های حیاتی، پشتیبانی از ایجاد/حذف دستگاه های مجازی و ارسال دستگاه های MMIO را اضافه کرده است.
    • پشتیبانی از تعاریف KPP (Key-Agreement Protocol Primitives) به موتور کریپتو اضافه شده است که منطق توسعه درایورها را برای سیستم های رمزنگاری ساده می کند.
    • Hyper-V هایپروایزر اکنون از حالت ایزوله ماشین مجازی پشتیبانی می کند که شامل رمزگذاری محتویات حافظه است.
    • هایپروایزر KVM پشتیبانی از معماری RISC-V را اضافه کرده است. توانایی انتقال ماشین‌های مجازی در حال اجرا با استفاده از پسوندهای AMD SEV و SEV-ES در محیط میزبان پیاده‌سازی شده است. API اضافه شده برای انتقال زنده سیستم های مهمان رمزگذاری شده با استفاده از AMD SEV (مجازی رمزگذاری شده امن).
    • برای معماری PowerPC، حالت STRICT_KERNEL_RWX به طور پیش فرض فعال است، که استفاده از صفحات حافظه را که به طور همزمان برای نوشتن و اجرا در دسترس هستند، مسدود می کند.
    • در سیستم های 32 بیتی x86، پشتیبانی از hotplug حافظه متوقف شده است، که بیش از یک سال است که غیر فعال بوده است.
    • کتابخانه liblockdep از هسته حذف شده است و اکنون جدا از هسته نگهداری می شود.
  • زیر سیستم شبکه
    • برای سوکت ها گزینه جدیدی SO_RESERVE_MEM پیاده سازی شده است که با آن می توانید مقدار مشخصی حافظه را برای یک سوکت رزرو کنید که همیشه برای سوکت در دسترس خواهد بود و حذف نمی شود. استفاده از این گزینه به شما امکان می دهد تا با کاهش تخصیص حافظه و عملیات بازیابی در پشته شبکه، به ویژه زمانی که شرایط حافظه کم در سیستم رخ می دهد، به افزایش عملکرد دست یابید.
    • پشتیبانی از پروتکل Automatic Multicast Tunneling (RFC 7450) اضافه شده است، که اجازه می دهد ترافیک چندپخشی را از شبکه هایی که از Multicast پشتیبانی می کنند به گیرندگان در شبکه های بدون Multicast ارائه دهد. پروتکل از طریق کپسوله سازی در بسته های UDP کار می کند.
    • کپسوله سازی بهبود یافته IOAM (عملیات، مدیریت و نگهداری در محل) در بسته های حمل و نقل.
    • قابلیت کنترل حالت های مصرف انرژی فرستنده گیرنده به API netlink ethtool اضافه شده است.
    • زیرسیستم netfilter توانایی طبقه بندی بسته ها را در سطح خروجی، یعنی. در مرحله ای که راننده یک بسته از پشته شبکه هسته دریافت می کند. در 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 را فراهم می کند. برای APUهای Cyan Skillfish (مجهز به GPU Navi 1x) پشتیبانی از کنترلرهای نمایشگر اضافه شده است. پشتیبانی از APU های Yellow Carp (پردازنده های موبایل Ryzen 6000 "Rembrandt") گسترش یافته است.
    • درایور i915 پشتیبانی از تراشه های Intel Alderlake S را تثبیت می کند و از فناوری Intel PXP (مسیر محافظت شده Xe) پشتیبانی می کند، که به شما امکان می دهد یک جلسه گرافیکی محافظت شده با سخت افزار را در سیستم هایی با تراشه های Xe اینتل سازماندهی کنید.
    • کار در درایور nouveau برای رفع اشکالات و بهبود سبک کد انجام شده است.
    • پشتیبانی از پردازنده های Vortex سازگار با x86 (Vortex86MX) اضافه شده است. لینوکس قبلاً روی پردازنده‌های مشابه کار کرده است، اما برای غیرفعال کردن محافظت در برابر حملات Spectre/Meltdown، که برای تراشه‌های مشخص‌شده قابل اجرا نیستند، شناسایی صریح پردازنده‌های مشخص شده لازم بود.
    • پشتیبانی اولیه برای پلتفرم های x86 برای Surface Pro 8 و Surface Laptop Studio اضافه شد.
    • درایور برای پشتیبانی از تراشه‌های صوتی مورد استفاده در AMD Yellow Carp، Van Gogh APU اضافه شد، همچنین پشتیبانی از سیستم‌های صوتی و کدک‌های Cirrus CS35L41، Maxim MAX98520/MAX98360A، Mediatek MT8195، Nuvoton NAU8821، NVIDIA Tegra210M، RealMaxReachP، NXM. ALC8I-VS، RT5682S، RT5682، Rockchip RV9120 و RK1126.
    • درایور ishtp_eclite برای دسترسی به کنترل‌کننده‌های تعبیه‌شده PSE اینتل (موتور خدمات قابل برنامه‌ریزی) با استفاده از ISHTP (پروتکل انتقال حسگر یکپارچه)، مانند باتری، دما، و رابط اطلاعات مربوط به UCSI (نرم‌افزار سیستم اتصال USB نوع C) اضافه شد.
    • یک درایور برای کنترلرهای بازی Nintendo Switch اضافه شد که از Switch Pro و Joy-Cons پشتیبانی می کند. پشتیبانی از تبلت های Wacom Intuos BT (CTL-4100WL/CTL-6100WL) و صفحه کلید جادویی اپل 2021 اضافه شده است. پشتیبانی بهبود یافته از کنترلرهای سونی پلی استیشن DualSense. اضافه شدن پشتیبانی از دکمه های کناری ماوس Mi Xiaomi.
    • درایور RT89 با پشتیبانی از تراشه های بی سیم Realtek 802.11ax و همچنین درایورهای آداپتورهای اترنت Asix AX88796C-SPI و سوئیچ های 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، sama7gAputov، Samsung Exeginos RK5 , RK9 ROCK Pi 3566A+, RK3399 ROCK Pi 4B+, Firefly ROC-RK3399-PC, Firefly ROC-RK4-PC-PLUS, ASUS Chromebook Tablet CT3328, Pine3399 Quartz100-Scale, Pine64 QuartzEMgear-A,GlobalX64 P S110G7040، رن اصل R32A2M*، Xilinx Kria، Radxa Zero، JetHub D8/H779، Netronix E1K1.

منبع: opennet.ru

اضافه کردن نظر