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

پس از دو ماه توسعه، لینوس توروالدز نسخه 5.15 هسته لینوکس را ارائه کرد. تغییرات قابل توجه عبارتند از: درایور جدید NTFS با پشتیبانی نوشتن، ماژول ksmbd با اجرای سرور SMB، زیرسیستم DAMON برای نظارت بر دسترسی به حافظه، قفل اولیه در زمان واقعی، پشتیبانی از fs-verity در Btrfs، فراخوان سیستم process_mrelease برای حافظه سیستم های پاسخ به گرسنگی، ماژول گواهی از راه دور dm-ima.

نسخه جدید شامل 13499 اصلاحات از 1888 توسعه دهنده است، اندازه پچ 42 مگابایت است (تغییرات روی 10895 فایل تأثیر گذاشت، 632522 خط کد اضافه شد، 299966 خط حذف شد). حدود 45 درصد از کل تغییرات معرفی شده در 5.15 مربوط به درایورهای دستگاه، تقریبا 14 درصد تغییرات مربوط به به روز رسانی کدهای خاص معماری سخت افزاری، 14 درصد مربوط به پشته شبکه، 6 درصد مربوط به سیستم های فایل و 3 درصد است. مربوط به زیرسیستم های هسته داخلی هستند.

نوآوری های اصلی:

  • زیرسیستم دیسک، I/O و سیستم های فایل
    • هسته پیاده سازی جدیدی از سیستم فایل NTFS را که توسط نرم افزار Paragon باز شده است، پذیرفته است. درایور جدید می تواند در حالت نوشتن کار کند و از تمام ویژگی های نسخه فعلی NTFS 3.1 پشتیبانی می کند، از جمله ویژگی های فایل توسعه یافته، لیست های دسترسی (ACL)، حالت فشرده سازی داده ها، کار موثر با فضاهای خالی در فایل ها (پراکنده) و پخش مجدد تغییرات از ورود به سیستم برای بازیابی یکپارچگی پس از شکست.
    • سیستم فایل Btrfs از مکانیزم fs-verity پشتیبانی می‌کند که برای کنترل شفاف یکپارچگی و اعتبار فایل‌های فردی با استفاده از هش‌های رمزنگاری یا کلیدهای مرتبط با فایل‌ها، ذخیره‌شده در ناحیه ابرداده استفاده می‌شود. پیش از این، fs-verity فقط برای سیستم های فایل Ext4 و F2fs در دسترس بود.

      Btrfs همچنین برای نقشه‌برداری شناسه‌های کاربر برای سیستم‌های فایل نصب شده (که قبلاً برای سیستم‌های فایل FAT، ext4 و XFS پشتیبانی می‌شد) پشتیبانی می‌کند. این ویژگی به شما امکان می دهد فایل های یک کاربر خاص را در یک پارتیشن خارجی نصب شده با کاربر دیگری در سیستم فعلی مقایسه کنید.

      سایر تغییرات Btrfs عبارتند از: افزودن سریع کلیدها به فهرست فهرست برای بهبود عملکرد ایجاد فایل. توانایی کار با raid0 با یک دستگاه و raid10 با دو (به عنوان مثال، در طول فرآیند پیکربندی مجدد آرایه). گزینه “rescue=ibadroots” برای نادیده گرفتن درخت مقدار نادرست. تسریع عملیات "ارسال"؛ کاهش درگیری های قفل در طول عملیات تغییر نام؛ امکان استفاده از بخش های 4K در سیستم هایی با اندازه صفحه حافظه 64K.

    • در XFS قابلیت استفاده از تاریخ های بعد از 2038 در سیستم فایل تثبیت شده است. مکانیزمی را برای غیرفعال سازی تاخیری inode و پشتیبانی از نصب تاخیری و حذف ویژگی های فایل پیاده سازی کرد. برای از بین بردن مشکلات، امکان غیرفعال کردن سهمیه دیسک برای پارتیشن‌های نصب شده از قبل حذف شده است (شما می‌توانید به اجبار سهمیه‌ها را غیرفعال کنید، اما محاسبه مرتبط با آنها ادامه خواهد داشت، بنابراین برای غیرفعال کردن کامل آنها، نصب مجدد لازم است).
    • در EXT4، کار برای افزایش عملکرد نوشتن بافرهای delalloc و پردازش فایل‌های یتیم انجام شده است که به دلیل باز ماندن آنها، اما مرتبط با دایرکتوری نیستند، همچنان وجود دارند. پردازش عملیات دور انداختن از رشته jbd2 kthread برای جلوگیری از مسدود شدن عملیات با ابرداده خارج شده است.
    • F2FS گزینه «discard_unit=block|segment|section» را اضافه کرد تا عملیات صرف‌نظر کردن (علامت‌گذاری بلوک‌های آزاد شده که ممکن است دیگر به صورت فیزیکی ذخیره نشوند) به تراز نسبت به یک بلوک، بخش، بخش یا بخش اضافه شود. پشتیبانی برای ردیابی تغییرات در تاخیر I/O اضافه شده است.
    • سیستم فایل EROFS (سیستم فایل فقط خواندنی قابل ارتقا) پشتیبانی مستقیم ورودی/خروجی را برای فایل‌های ذخیره‌شده بدون فشرده‌سازی و همچنین پشتیبانی از فیمپ اضافه می‌کند.
    • OverlayFS مدیریت صحیح پرچم‌های مانت "غیرقابل تغییر"، "فقط پیوست"، "همگام‌سازی" و "noatime" را پیاده‌سازی می‌کند.
    • NFS مدیریت موقعیت‌هایی را که سرور NFS به درخواست‌ها پاسخ نمی‌دهد، بهبود بخشیده است. قابلیت نصب از سروری که از قبل در حال استفاده است، اما از طریق یک آدرس شبکه دیگر قابل دسترسی است، اضافه شده است.
    • آماده سازی برای بازنویسی زیرسیستم FSCACHE آغاز شده است.
    • اضافه شدن پشتیبانی از پارتیشن های EFI با قرار دادن غیر استاندارد جداول GPT.
    • مکانیسم fanotify یک پرچم جدید به نام FAN_REPORT_PIDFD را پیاده سازی می کند که باعث می شود pidfd در ابرداده های برگشتی گنجانده شود. Pidfd به مدیریت موقعیت‌های استفاده مجدد از PID برای شناسایی دقیق‌تر فرآیندهایی که به فایل‌های نظارت شده دسترسی دارند کمک می‌کند (یک pidfd با یک فرآیند خاص مرتبط است و تغییر نمی‌کند، در حالی که یک PID می‌تواند پس از پایان فرآیند فعلی مرتبط با آن PID با فرآیند دیگری مرتبط شود).
    • قابلیت افزودن نقاط اتصال به گروه‌های اشتراک‌گذاری شده موجود را به فراخوانی سیستمی ()mount_mount اضافه کرد که مشکلات مربوط به ذخیره و بازیابی وضعیت فرآیند در CRIU را در زمانی که چندین فضای نصب در کانتینرهای جدا شده به اشتراک گذاشته شده است، حل می‌کند.
    • محافظت در برابر شرایط مسابقه پنهان که به طور بالقوه می تواند باعث خرابی فایل در هنگام خواندن حافظه پنهان هنگام پردازش حفره های موجود در یک فایل شود، اضافه شده است.
    • پشتیبانی از قفل اجباری (اجباری) فایل، که از طریق مسدود کردن تماس‌های سیستمی که منجر به تغییر فایل می‌شوند، اجرا می‌شود، متوقف شده است. با توجه به شرایط مسابقه احتمالی، این قفل ها غیرقابل اعتماد در نظر گرفته شدند و سال ها پیش منسوخ شدند.
    • زیرسیستم LightNVM حذف شده است که اجازه دسترسی مستقیم به درایو SSD را می دهد و لایه شبیه سازی را دور می زند. LightNVM پس از ظهور استانداردهای NVMe که منطقه بندی (ZNS، Zoned Namespace) را فراهم می کند، معنای خود را از دست داد.
  • خدمات حافظه و سیستم
    • زیرسیستم DAMON (Data Access MONitor) پیاده‌سازی شده است که به شما امکان می‌دهد فعالیت‌های مربوط به دسترسی به داده‌ها در RAM را در رابطه با فرآیند انتخابی در حال اجرا در فضای کاربر نظارت کنید. این زیرسیستم به شما امکان می دهد تا تجزیه و تحلیل کنید که فرآیند در طول کل عملیات به چه مناطق حافظه دسترسی داشته است و کدام مناطق حافظه بدون ادعا باقی مانده است. DAMON دارای بار کم CPU، مصرف حافظه کم، دقت بالا و سربار ثابت قابل پیش بینی، مستقل از اندازه است. این زیرسیستم را می‌توان هم توسط هسته برای بهینه‌سازی مدیریت حافظه و هم توسط ابزارهای کاربردی در فضای کاربر برای فهمیدن اینکه یک فرآیند دقیقاً در حال انجام چه کاری است و بهینه‌سازی استفاده از حافظه، به عنوان مثال، آزاد کردن حافظه اضافی برای سیستم استفاده می‌شود.
    • فراخوانی سیستم process_mrelease برای سرعت بخشیدن به فرآیند آزادسازی حافظه فرآیندی که اجرای آن را کامل می کند، پیاده سازی شده است. در شرایط عادی، انتشار منبع و خاتمه فرآیند آنی نیستند و ممکن است به دلایل مختلف به تعویق بیفتند، که در سیستم‌های پاسخ اولیه حافظه فضای کاربر مانند oomd (ارائه شده توسط systemd) و lmkd (استفاده شده توسط Android) تداخل ایجاد می‌کند. با فراخوانی process_mrelease، چنین سیستم هایی می توانند به طور قابل پیش بینی بیشتری بازیابی حافظه را از فرآیندهای اجباری آغاز کنند.
    • از شاخه هسته PREEMPT_RT که پشتیبانی از عملیات بلادرنگ را توسعه می دهد، انواع اولیه برای سازماندهی قفل های mutex، ww_mutex، rw_semaphore، spinlock و rwlock، بر اساس زیرسیستم RT-Mutex، منتقل شده اند. برای بهبود عملکرد در حالت PREEMPT_RT و کاهش تاثیر بر وقفه ها، تغییراتی به تخصیص دهنده اسلب SLUB اضافه شده است.
    • پشتیبانی از ویژگی زمانبندی وظیفه SCHED_IDLE به cgroup اضافه شده است که به شما امکان می دهد این ویژگی را برای تمام فرآیندهای یک گروه موجود در یک cgroup خاص ارائه دهید. آن ها این فرآیندها فقط زمانی اجرا می شوند که هیچ کار دیگری در انتظار اجرا در سیستم نباشد. برخلاف تنظیم ویژگی SCHED_IDLE برای هر فرآیند به صورت جداگانه، هنگام اتصال SCHED_IDLE به یک گروه c، وزن نسبی وظایف درون گروه هنگام انتخاب یک کار برای اجرا در نظر گرفته می‌شود.
    • مکانیسم محاسبه مصرف حافظه در cgroup با قابلیت ردیابی ساختارهای داده هسته اضافی، از جمله ساختارهایی که برای نظرسنجی، پردازش سیگنال و فضاهای نام ایجاد شده اند، گسترش یافته است.
    • پشتیبانی از زمان‌بندی نامتقارن اتصال وظایف به هسته‌های پردازنده در معماری‌هایی اضافه شده است که در آن برخی از CPUها اجازه اجرای وظایف 32 بیتی را می‌دهند و برخی فقط در حالت 64 بیتی کار می‌کنند (به عنوان مثال، ARM). حالت جدید به شما این امکان را می دهد که در زمان برنامه ریزی وظایف 32 بیتی فقط CPU هایی را در نظر بگیرید که از وظایف 32 بیتی پشتیبانی می کنند.
    • رابط ورودی/خروجی ناهمزمان io_uring اکنون از باز کردن فایل‌ها به طور مستقیم در جدول فهرست فایل ثابت، بدون استفاده از توصیفگر فایل پشتیبانی می‌کند، که سرعت قابل توجهی در برخی از انواع عملیات ممکن می‌سازد، اما برخلاف فرآیند سنتی یونیکس در استفاده از توصیفگرهای فایل است. برای باز کردن فایل ها

      io_uring برای زیرسیستم BIO (Block I/O Layer) مکانیزم بازیافت جدیدی ("بازیافت BIO") را پیاده سازی می کند که باعث کاهش هزینه های اضافی در فرآیند مدیریت حافظه داخلی می شود و تعداد عملیات I/O پردازش شده در هر ثانیه را تقریباً 10٪ افزایش می دهد. . io_uring همچنین برای فراخوانی های سیستم mkdirat()، symlinkat() و linkat() پشتیبانی می کند.

    • برای برنامه های BPF، قابلیت درخواست و پردازش رویدادهای تایمر اجرا شده است. یک تکرار کننده برای سوکت های یونیکس اضافه شده است و قابلیت دریافت و تنظیم گزینه های سوکت برای setsockopt پیاده سازی شده است. دامپر BTF اکنون از داده های تایپ شده پشتیبانی می کند.
    • در سیستم‌های NUMA با انواع مختلف حافظه که از نظر عملکرد متفاوت هستند، وقتی فضای خالی تمام می‌شود، صفحات حافظه خارج‌شده به جای حذف این صفحات از حافظه پویا (DRAM) به حافظه دائمی کندتر (حافظه دائمی) منتقل می‌شوند. آزمایش‌ها نشان داده‌اند که چنین تاکتیک‌هایی معمولاً عملکرد چنین سیستم‌هایی را بهبود می‌بخشند. NUMA همچنین توانایی تخصیص صفحات حافظه برای یک فرآیند از مجموعه انتخاب شده از گره های NUMA را فراهم می کند.
    • برای معماری ARC، پشتیبانی از جداول صفحه حافظه سه و چهار سطح پیاده سازی شده است که پشتیبانی از پردازنده های ARC 64 بیتی را بیشتر می کند.
    • برای معماری s390 قابلیت استفاده از مکانیزم KFENCE برای تشخیص خطاها در هنگام کار با حافظه پیاده سازی شده و پشتیبانی از آشکارساز وضعیت مسابقه KCSAN اضافه شده است.
    • اضافه شدن پشتیبانی برای فهرست کردن لیست پیام‌های خروجی از طریق printk()، که به شما امکان می‌دهد همه این پیام‌ها را به یکباره بازیابی کنید و تغییرات فضای کاربر را دنبال کنید.
    • mmap () پشتیبانی از گزینه VM_DENYWRITE را حذف کرده است، و کد هسته از حالت MAP_DENYWRITE حذف شده است، که تعداد موقعیت‌هایی را که منجر به مسدود شدن نوشته‌های یک فایل با خطای ETXTBSY می‌شود، کاهش داده است.
    • نوع جدیدی از چک‌ها، "کاوشگر رویداد" به زیرسیستم ردیابی اضافه شده است که می‌تواند به رویدادهای ردیابی موجود متصل شود و فرمت خروجی شما را تعریف کند.
    • هنگام ساختن هسته با استفاده از کامپایلر Clang، اسمبلر پیش فرض پروژه LLVM اکنون استفاده می شود.
    • به عنوان بخشی از یک پروژه برای خلاص کردن هسته از کد که منجر به خروج اخطار توسط کامپایلر می شود، آزمایشی با حالت "-Werror" به طور پیش فرض فعال شده بود، که در آن هشدارهای کامپایلر به عنوان خطا پردازش می شوند، انجام شد. در آماده سازی برای انتشار نسخه 5.15، لینوس شروع به پذیرش تنها تغییراتی کرد که در هنگام ساختن هسته منجر به هشدار نمی شد و ساختمان را با "-Werror" فعال کرد، اما سپس موافقت کرد که چنین تصمیمی زودرس است و فعال کردن "-Werror" به طور پیش فرض را به تاخیر انداخت. . گنجاندن پرچم "-Werror" در هنگام مونتاژ با استفاده از پارامتر WERROR کنترل می شود که به طور پیش فرض روی COMPILE_TEST تنظیم شده است. در حال حاضر فقط برای ساخت های آزمایشی فعال است.
  • مجازی سازی و امنیت
    • یک کنترل کننده dm-ima جدید به Device Mapper (DM) با اجرای مکانیزم صدور گواهی از راه دور بر اساس زیرسیستم IMA (معماری اندازه گیری یکپارچگی) اضافه شده است که به یک سرویس خارجی اجازه می دهد تا وضعیت زیرسیستم های هسته را تأیید کند تا از صحت آنها اطمینان حاصل کند. . در عمل، dm-ima به شما امکان می‌دهد تا با استفاده از Device Mapper، ذخیره‌سازی‌هایی ایجاد کنید که به سیستم‌های ابری خارجی مرتبط هستند، که در آن اعتبار پیکربندی هدف DM راه‌اندازی شده با استفاده از IMA بررسی می‌شود.
    • prctl() یک گزینه جدید PR_SPEC_L1D_FLUSH را پیاده‌سازی می‌کند، که وقتی فعال می‌شود، باعث می‌شود تا هر بار که سوئیچ متنی رخ می‌دهد، هسته محتویات کش سطح اول (L1D) را پاک کند. این حالت به طور انتخابی برای مهمترین فرآیندها اجازه می دهد تا حفاظت اضافی را در برابر استفاده از حملات کانال جانبی که برای تعیین داده هایی که در کش در نتیجه آسیب پذیری های ناشی از اجرای گمانه زنی دستورالعمل ها در CPU انجام می شود، اجرا کند. هزینه فعال کردن PR_SPEC_L1D_FLUSH (به طور پیش فرض فعال نیست) جریمه عملکرد قابل توجهی است.
    • ساخت هسته با افزودن پرچم "-fzero-call-used-regs=used-gpr" به GCC امکان پذیر است، که اطمینان حاصل می کند که همه ثبات ها قبل از بازگرداندن کنترل از تابع به صفر بازنشانی می شوند. این گزینه به شما امکان می دهد در برابر نشت اطلاعات از عملکردها محافظت کنید و تعداد بلوک های مناسب برای ساخت ابزارهای ROP (برنامه نویسی بازگشت گرا) را تا 20٪ کاهش دهید.
    • قابلیت ساخت کرنل برای معماری ARM64 در قالب کلاینت برای هایپروایزر Hyper-V پیاده سازی شده است.
    • یک چارچوب توسعه درایور جدید "VDUSE" پیشنهاد شده است که امکان پیاده‌سازی دستگاه‌های بلوک مجازی را در فضای کاربر و استفاده از Virtio به‌عنوان وسیله‌ای برای دسترسی از سیستم‌های مهمان فراهم می‌کند.
    • درایور Virtio برای گذرگاه I2C اضافه شده است که شبیه‌سازی کنترل‌کننده‌های I2C را در حالت paravirtualization با استفاده از باطن‌های جداگانه ممکن می‌سازد.
    • درایور Virtio gpio-virtio اضافه شد تا به مهمانان اجازه دسترسی به خطوط GPIO ارائه شده توسط سیستم میزبان را بدهد.
    • قابلیت محدود کردن دسترسی به صفحات حافظه برای درایورهای دستگاه با پشتیبانی از DMA در سیستم‌های بدون I/O MMU (واحد مدیریت حافظه) اضافه شده است.
    • هایپروایزر KVM قابلیت نمایش آمار به صورت هیستوگرام های خطی و لگاریتمی را دارد.
  • زیر سیستم شبکه
    • ماژول ksmbd با اجرای یک سرور فایل با استفاده از پروتکل SMB3 به هسته اضافه شده است. این ماژول تکمیل کننده اجرای کلاینت SMB است که قبلاً در هسته موجود بود و بر خلاف سرور SMB در حال اجرا در فضای کاربر، از نظر عملکرد، مصرف حافظه و ادغام با قابلیت های هسته پیشرفته کارآمدتر است. Ksmbd به عنوان یک افزونه Samba با کارایی بالا و آماده تعبیه شده که در صورت نیاز با ابزارها و کتابخانه های Samba ادغام می شود. قابلیت‌های ksmbd شامل پشتیبانی بهبودیافته از فناوری ذخیره‌سازی فایل‌های توزیع شده (اجاره‌های SMB) در سیستم‌های محلی است که می‌تواند ترافیک را به میزان قابل توجهی کاهش دهد. در آینده، آنها قصد دارند پشتیبانی از RDMA ("smbdirect") و پسوندهای پروتکل مربوط به افزایش قابلیت اطمینان رمزگذاری و تأیید با استفاده از امضای دیجیتال را اضافه کنند.
    • مشتری CIFS دیگر از NTLM و الگوریتم‌های احراز هویت ضعیف‌تر مبتنی بر DES که در پروتکل SMB1 استفاده می‌شود، پشتیبانی نمی‌کند.
    • پشتیبانی Multicast در پیاده سازی پل های شبکه برای vlan ها اجرا می شود.
    • درایور پیوند، که برای جمع‌آوری رابط‌های شبکه استفاده می‌شود، پشتیبانی از زیرسیستم XDP (مسیر داده eXpress) را اضافه کرده است که به شما امکان می‌دهد بسته‌های شبکه را در مرحله قبل از پردازش توسط پشته شبکه هسته لینوکس دستکاری کنید.
    • پشته بی سیم mac80211 از 6GHZ STA (مجوز موقت ویژه) در حالت های LPI، SP و VLP و همچنین توانایی تنظیم TWT (Target Wake Time) در حالت نقطه دسترسی پشتیبانی می کند.
    • پشتیبانی اضافه شده برای MCTP (مدیریت پروتکل حمل و نقل مؤلفه)، که برای تعامل بین کنترل‌کننده‌های مدیریت و دستگاه‌های مرتبط (پردازنده‌های میزبان، دستگاه‌های جانبی و غیره) استفاده می‌شود.
    • ادغام در هسته MPTCP (MultiPath TCP)، توسعه پروتکل TCP برای سازماندهی عملیات اتصال TCP با تحویل بسته ها به طور همزمان در طول چندین مسیر از طریق رابط های شبکه مختلف مرتبط با آدرس های IP مختلف. نسخه جدید پشتیبانی از آدرس ها در حالت تمام مش را اضافه می کند.
    • هندلرهای جریان های شبکه محصور در پروتکل SRv6 (Segment Routing IPv6) به netfilter اضافه شده اند.
    • پشتیبانی sockmap برای سوکت های جریان یونیکس اضافه شده است.
  • Оборудование
    • درایور amdgpu از APU های Cyan Skillfish (مجهز به پردازنده های گرافیکی Navi 1x) پشتیبانی می کند. APU Yellow Carp اکنون از کدک های ویدیویی پشتیبانی می کند. پشتیبانی از GPU Aldebaran بهبود یافته است. شناسه های نقشه جدید بر اساس GPU Navi 24 "Beige Goby" و RDNA2 اضافه شد. یک پیاده سازی بهبود یافته از صفحه نمایش مجازی (VKMS) پیشنهاد شده است. پشتیبانی از نظارت بر دمای تراشه های AMD Zen 3 اجرا شده است.
    • درایور amdkfd (برای پردازنده‌های گرافیکی گسسته، مانند Polaris) یک مدیر حافظه مجازی مشترک (SVM، حافظه مجازی مشترک) را بر اساس زیرسیستم HMM (مدیریت حافظه ناهمگن) پیاده‌سازی می‌کند، که امکان استفاده از دستگاه‌هایی را با واحدهای مدیریت حافظه خود (MMU) فراهم می‌کند. ، واحد مدیریت حافظه)، که می تواند به حافظه اصلی دسترسی داشته باشد. به طور خاص، با استفاده از HMM، می توانید یک فضای آدرس مشترک بین GPU و CPU سازماندهی کنید، که در آن GPU می تواند به حافظه اصلی فرآیند دسترسی داشته باشد.
    • درایور i915 برای کارت‌های ویدئویی اینتل، استفاده از مدیر حافظه ویدئویی TTM را گسترش می‌دهد و شامل توانایی مدیریت مصرف انرژی بر اساس GuC (گرافیک میکرو کنترلر) است. آماده سازی برای اجرای پشتیبانی از کارت گرافیک Intel ARC Alchemist و پردازنده گرافیکی Intel Xe-HP آغاز شده است.
    • درایور nouveau کنترل نور پس زمینه را برای پانل های eDP با استفاده از DPCD (DisplayPort Configuration Data) پیاده سازی می کند.
    • پشتیبانی از پردازنده‌های گرافیکی Adreno 7c Gen 3 و Adreno 680 به درایور msm اضافه شده است.
    • درایور IOMMU برای تراشه Apple M1 پیاده سازی شده است.
    • درایور صدا برای سیستم های مبتنی بر APU های ون گوگ AMD اضافه شد.
    • درایور Realtek R8188EU به شاخه مرحله بندی اضافه شده است که جایگزین نسخه قدیمی درایور (rtl8188eu) برای تراشه های بی سیم Realtek RTL8188EU 802.11 b/g/n شده است.
    • درایور ocp_pt برای برد PCIe که توسط متا (فیس بوک) توسعه یافته است، با پیاده سازی یک ساعت اتمی مینیاتوری و یک گیرنده GNSS گنجانده شده است که می تواند برای سازماندهی عملکرد سرورهای همگام سازی زمان دقیق جداگانه استفاده شود.
    • پشتیبانی از Sony Xperia 10II (Snapdragon 665)، Xiaomi Redmi 2 (Snapdragon MSM8916)، Samsung Galaxy S3 (Snapdragon MSM8226)، گوشی های هوشمند Samsung Gavini/Codina/Kyle اضافه شده است.
    • پشتیبانی از ARM SOс و NVIDIA JETSON TX2 NX KIT ، SANCLOUD BBE LITE ، PICOITX ، DRC02 ، SOLIDRUN SOLIDSENSE ، SKOV I.MX6 ، Nitrogen8 ، Traverse Ten64 ، GW7902 ، Microchip Sama7 ، Ualcomm Snapdragon SDM636/SDM8150/SM3 برد -2G/M3e-2G، Marvell CN913x، ASpeed ​​AST2600 (بردهای سرور فیس‌بوک، Elbert و Fuji)، 4KOpen STiH418-b2264.
    • پشتیبانی از پنل‌های LCD Gopher 2b، EDT ETM0350G0DH6/ETMV570G2DHU، LOGIC Technologies LTTD800480070-L6WH-RT، Multi-Innotechnology MI1010AIT-1CP1، Innolux EJ030، Innolux EJ3.0 -KCA، سامسونگ ATNA9341XC3300 33، سامسونگ DB20، WideChips WS7430 .
    • درایور LiteETH با پشتیبانی از کنترلرهای اترنت مورد استفاده در SoC های نرم افزار LiteX (برای FPGA) اضافه شد.
    • یک گزینه lowlatency به درایور usb-audio اضافه شده است تا گنجاندن عملکرد در حالت حداقل تأخیر را کنترل کند. همچنین گزینه quirk_flags برای عبور تنظیمات خاص دستگاه اضافه شده است.

در همان زمان، بنیاد نرم‌افزار آزاد آمریکای لاتین نسخه‌ای از هسته کاملاً رایگان 5.15 - Linux-libre 5.15-gnu را تشکیل داد که از عناصر سفت‌افزار و درایورهای حاوی مؤلفه‌های غیرآزاد یا بخش‌های کد پاک شده است که دامنه آن محدود است. توسط سازنده نسخه جدید خروجی یک پیام به گزارش مربوط به اتمام تمیز کردن را پیاده سازی می کند. مشکلات تولید بسته ها با استفاده از mkspec برطرف شده است، پشتیبانی از بسته های snap بهبود یافته است. برخی از اخطارهای نمایش داده شده هنگام پردازش فایل هدر firmware.h حذف شد. خروجی برخی از انواع هشدارها ("قالب-فرمت-ارگ"، نظرات، توابع استفاده نشده و متغیرها) هنگام ساخت در حالت "-خطا" مجاز است. تمیز کردن درایور gehc-achc اضافه شد. کد پاکسازی حباب به روز شده در درایورها و زیر سیستم های adreno، btusb، btintel، brcmfmac، aarch64 qcom. تمیز کردن درایورهای prism54 (حذف شده) و rtl8188eu (جایگزین شده توسط r8188eu) متوقف شده است.

منبع: opennet.ru

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