انتشار هسته Linux 6.18

پس از دو ماه توسعه، لینوس توروالدز هسته را منتشر کرد. Linux ۶.۱۸. از جمله قابل توجه‌ترین تغییرات: dm-pcache برای ذخیره‌سازی دیسک در حافظه غیرفرار (PMEM)، حذف Bcachefs، حالت بررسی آنلاین XFS، درایورهای Binder (Android IPC) و Tyr (GPU Mali) در Rust، امکان ایجاد درایورهای USB در Rust، بهینه‌سازی ذخیره‌سازی در تخصیص‌دهنده حافظه SLUB، آدرس‌دهی فضاهای نام توسط توصیف‌گرهای فایل، افزایش سرعت swap، تأیید برنامه‌های BPF توسط امضای دیجیتال، مجازی‌سازی Intel CET در KVM، پروتکل شبکه PSP (ترکیبی از TLS و IPsec)، پشتیبانی از افزونه IP AccECN، بهینه‌سازی پشته UDP.

نسخه جدید شامل ۱۵۹۴۵ اصلاحیه از ۲۱۵۴ توسعه‌دهنده است، اندازه پچ ۵۹ مگابایت است (تغییرات روی ۱۳۵۹۶ فایل تأثیر گذاشته، ۷۳۹۶۰۸ خط کد اضافه شده، ۳۱۲۱۶۸ خط حذف شده است). آخرین نسخه شامل ۱۲۱۱۵ اصلاحیه از ۱۹۸۴ توسعه‌دهنده بود، حجم پچ ۳۹ مگابایت بود. حدود ۴۱٪ از کل تغییرات معرفی‌شده در نسخه ۶.۱۵ مربوط به درایورهای دستگاه، حدود ۱۶٪ تغییرات مربوط به به‌روزرسانی کد مختص معماری‌های سخت‌افزار، ۱۳٪ مربوط به پشته شبکه، ۵٪ مربوط به سیستم‌های فایل و ۴٪ مربوط به زیرسیستم‌های داخلی هسته است.

ویژگی‌های اصلی جدید در هسته ۶.۱۷ (۱، ۲، ۳):

  • زیرسیستم دیسک، I/O و سیستم های فایل
    • کنترل‌کننده dm-pcache به Device Mapper اضافه شده است تا از حافظه پایدار (حافظه CXL که از طریق یک دستگاه DAX آدرس‌دهی می‌شود) به عنوان یک حافظه پنهان اضافی با عملکرد بالا در مقابل دیسک‌ها یا فلش درایوهای سنتی کندتر استفاده کند. Dm-pcache با استفاده از حافظه غیرفرار، تکثیر فراداده‌ها و تأیید صحت داده‌ها و فراداده‌ها با استفاده از چک‌سام‌های CRC32، تضمین می‌کند که محتویات حافظه پنهان در صورت خرابی (ایمن در برابر خرابی) حفظ می‌شوند. در حال حاضر، فقط از ذخیره‌سازی با قابلیت نوشتن مجدد پشتیبانی می‌شود.
    • کد سیستم فایل Bcachefs از هسته حذف شده است و اکنون به عنوان یک ماژول خارجی ساخته شده با استفاده از زنجیره ابزار DKMS (پشتیبانی ماژول هسته پویا) توزیع خواهد شد. کد Bcachefs ممکن است پس از اینکه کنت اوورستریت توانایی خود را در تعامل صحیح با سایر توسعه‌دهندگان هسته و پایبندی به دستورالعمل‌های توسعه تعیین شده نشان دهد، دوباره به هسته معرفی شود.
    • پرچم RWF_NOSIGNAL به فراخوانی سیستمی pwritev2() اضافه شده است تا ارسال سیگنال SIGPIPE را هنگام نوشتن روی لوله‌ها یا سوکت‌های بدون نام شکسته غیرفعال کند.
    • یک گزینه mount از نوع "pidns" برای مشخص کردن فضاهای نام شناسه فرآیند (فضاهای نام PID) به Procfs اضافه شده است. برای مثال: "mount -t proc -o pidns=/proc/self/ns/pid proc /tmp/proc".
    • XFS به صورت پایدار اعلام شده و به طور پیش‌فرض فعال شده است تا از ابزار fsck برای بررسی و رفع مشکلات شناسایی شده به صورت آنلاین، بدون نیاز به جدا کردن سیستم فایل، استفاده کند. فراخوانی‌های سیستمی file_getattr و file_setattr برای تغییر ویژگی‌های فایل‌های خاص (هر inode) اضافه شده‌اند. گزینه‌های XFS_SUPPORT_V4 (XFS نسخه ۴) و XFS_SUPPORT_ASCII_CI (حالت ASCII بدون حساسیت به حروف بزرگ و کوچک) اکنون به طور پیش‌فرض در KConfig غیرفعال و منسوخ شده‌اند. گزینه‌های منسوخ شده‌ی attr2، noattr2، ikeep و noikeep برای mount حذف شده‌اند.
    • MD RAID نوع جدیدی از بیت‌مپ‌ها - llbitmap (بیت‌مپ بدون قفل) - را پیاده‌سازی می‌کند که بدون قفل عمل می‌کند و عملکرد بالاتری را ارائه می‌دهد.
    • اطلاعات مربوط به رمزگذاری و تأیید (اشاره‌گرهای i_crypt_info و i_verity_info) از ساختار کلی "inode" خارج شده‌اند. این تغییر، مصرف حافظه را در سیستم‌های فایلی که از رمزگذاری و تأیید پشتیبانی نمی‌کنند، کاهش می‌دهد.
    • زیرسیستم FUSE اکنون از فراخوانی سیستمی copy_file_range() و کپی مستقیم محدوده با استفاده از یک نوع داده با اندازه ۶۴ بیتی پشتیبانی می‌کند (قبلاً فقط اندازه ۳۲ بیتی پشتیبانی می‌شد). پشتیبانی از مقداردهی اولیه همزمان در طول mount (FUSE_DEV_IOC_SYNC_INIT) اضافه شده است.
    • سیستم فایل ext4 اکنون از استفاده از شناسه‌های کاربری ۳۲ بیتی (uid) و شناسه‌های گروهی (gid) هنگام دسترسی به بلوک‌های رزرو شده پشتیبانی می‌کند. عملیات Ioctl برای تنظیم و خواندن پارامترهای superblock برای سیستم فایل های mount شده اضافه شده است (tune2fs اکنون می‌تواند پارامترهای superblock را بدون نیاز به دسترسی نوشتن به دستگاه بلوک تغییر دهد). تنظیمات منسوخ شده مخصوص ext3 به طور کامل حذف شده‌اند.
    • گزینه mount "lookup_mode" به f2fs اضافه شده است تا حالت جستجو را انتخاب کنید: perf (جستجوی هش)، compat (جستجوی خطی) یا auto (انتخاب خودکار). تغییر حالت برای پیکربندی‌هایی با دایرکتوری‌های غیر حساس به حروف بزرگ و کوچک مفید است. حالت جستجوی فعلی را می‌توانید در فایل "/sys/fs/f2fs/" پیدا کنید. قابلیت رزرو inodeهایی که فقط برای کاربران ممتاز قابل دسترسی هستند، اضافه شد. /effective_lookup_mode".
    • Overlayfs اکنون از عملیات غیرحساس به حروف بزرگ و کوچک پشتیبانی می‌کند، که می‌تواند در سطح لایه سیستم فایل فعال شود (تنظیم برای دایرکتوری‌های جداگانه هنوز پشتیبانی نمی‌شود).
    • BTRFS موازی‌سازی عملیات با بارهای خواندن بالا و بارهای نوشتن پایین را بهبود می‌بخشد، زمان انجام تراکنش را کاهش می‌دهد و زمان همگام‌سازی را به طور قابل توجهی (از چند دقیقه به ده‌ها ثانیه) کاهش می‌دهد. اکنون امکان استفاده از بلوک‌ها (bs) بزرگتر از یک صفحه حافظه (ps) در دسترس است.
    • پارامتری به ksmbd (یک سرور SMB مبتنی بر هسته) اضافه شده است تا حداکثر تعداد اتصالات از یک آدرس های IP.smbdirect، smbclient و smbserver به استفاده از ساختارهای استاندارد هسته تغییر یافته‌اند.
    • SQUASHFS اکنون از گزینه‌های SEEK_DATA و SEEK_HOLE در فراخوانی سیستمی lseek() برای جستجوی داده‌ها و حفره‌ها در فایل‌های پراکنده پشتیبانی می‌کند. برخی آزمایش‌ها بهبود عملکرد تا ۱۵۰ برابر را برای کپی کردن فایل‌های پراکنده نشان داده‌اند.
    • EXFAT اکنون از ioctls های FS_IOC_GETFSLABEL و FS_IOC_SETFSLABEL برای خواندن و نوشتن برچسب‌های پارتیشن پشتیبانی می‌کند. اکنون امکان تغییر گزینه‌های mount در هنگام remounting را فراهم می‌کند. عملکرد بارگذاری Bitmap بهبود یافته است.
    • NTFS3 پشتیبانی از ioctls FS_IOC_GETFSLABEL و FS_IOC_SETFSLABEL را برای خواندن و تنظیم برچسب‌های پارتیشن اضافه کرده است.
  • خدمات حافظه و سیستم
    • پیاده‌سازی مکانیزم ارتباط بین‌پردازشی Binder، که به زبان Rust نوشته شده است، اتخاذ شده است. Binder در موارد زیر استفاده می‌شود: Android برای سازماندهی تعامل بین فرآیندها و فراخوانی‌های متد از راه دور (یک فرآیند) Android ممکن است یک متد یا تابع را در فرآیند دیگری فراخوانی کند Android، با استفاده از Binder برای شناسایی، فراخوانی و انتقال آرگومان‌ها بین فرآیندها). کد Binder به عنوان بخشی از ابتکار امنیتی گوگل در Rust بازنویسی شد. Android.
    • SLUB، تخصیص‌دهنده حافظه هسته، یک لایه ذخیره‌سازی اختیاری "sheaves" را پیاده‌سازی می‌کند. این لایه از چندین حافظه پنهان استفاده می‌کند که هر کدام با یک هسته CPU جداگانه مرتبط هستند و امکان محلی‌سازی عملیات تخصیص و آزادسازی حافظه را در یک هسته واحد فراهم می‌کنند. این حافظه پنهان با حذف مراحل اولیه همگام‌سازی غیرضروری که هنگام درگیر شدن با چندین هسته CPU مورد نیاز است، عملکرد تخصیص و آزادسازی حافظه در هسته را بهبود می‌بخشد. در آزمایش‌های ما، افزایش عملکرد بسته به حجم کار از 6.3٪ تا 31٪ متغیر بود.
    • قابلیت ایجاد توصیف‌گرهای فایل مرتبط با یک فضای نام خاص اضافه شد. برخلاف دسترسی به فضاهای نام از طریق شناسه‌ها (/proc/) /ns/)، توصیفگر فایل به یک نمونه فضای نام خاص اختصاص داده می‌شود و از تخصیص مجدد شناسه و اشاره به شیء دیگری جلوگیری می‌کند. مشابه pidfds، باز کردن توصیفگرهای فایل که به فضاهای نام اشاره می‌کنند با استفاده از توابع open_by_handle_at() و name_to_handle_at() انجام می‌شود.
    • یک مکانیزم "جدول تعویض" برای بهبود عملکرد تعویض پیاده‌سازی شده است. این بهبود با کاهش درگیری در حافظه پنهان تعویض، جستجوی کارآمدتر حافظه پنهان و کاهش قطعه قطعه شدن حاصل می‌شود. یک backend مبتنی بر جدول تعویض برای ذخیره سازی تعویض به جای backend XArray استفاده می‌شود و منجر به بهبود عملکرد متوسط ​​۵ تا ۲۰ درصد شده است. در تست usemem، توان عملیاتی ۱۷ تا ۲۸ درصد افزایش یافت، در تست بازسازی هسته چند رشته‌ای، زمان ساخت ۱.۱۲ تا ۳.۱۹ درصد کاهش یافت و تست redis-benchmark با BGSAVE افزایش ۶ تا ۷ درصدی در تعداد درخواست‌های پردازش شده را نشان داد.
    • زیرسیستم Zswap به جای لایه zpool که دیگر در هیچ کجا استفاده نمی‌شود و اکنون از هسته حذف شده است، مستقیماً از سیستم تخصیص حافظه zsmalloc استفاده می‌کند.
    • برای کنترل رفتار میکروکد بوت لودر در سیستم‌های x86، گزینه خط فرمان "microcode=flaglist" پیاده‌سازی شده است. در شکل فعلی، این گزینه جدید جایگزین "microcode.force_minrev" می‌شود و همچنین به شما امکان می‌دهد حداقل نسخه میکروکد مجاز برای بوت را مشخص کنید.
    • کار بر روی سازماندهی مجدد ساختار بیش از حد حجیم "page" که برای مدیریت صفحات RAM استفاده می‌شود، آغاز شده است. نوع 'memdesc_flags_t' برای فیلدهایی با پرچم‌های عمومی اضافه شده است که می‌توانند پس از جداسازی مورد انتظار ساختارهای جداگانه برای صفحات و برگ‌ها از ساختار "page" در آینده، مورد استفاده قرار گیرند.
    • برای معماری nios2 که در پردازنده‌های Altera Nios II (پردازنده نرم مبتنی بر FPGA) استفاده می‌شود، پشتیبانی از فراخوانی سیستمی clone3() پیاده‌سازی شده است.
    • ویژگی "transitional" به پیکربندی هسته (KConfig) اضافه شده است. می‌توان از آن برای علامت‌گذاری تنظیماتی که در رابط‌های کاربری نمایش داده نمی‌شوند، مانند "make menuconfig" و در فایل‌های پیکربندی تولید شده گنجانده نشده‌اند، استفاده کرد. هدف اصلی این ویژگی، ساده‌سازی تغییر نام گزینه‌ها در عین حفظ سازگاری با نسخه‌های قبلی است.
    • حداقل نسخه کامپایلر Clang که می‌تواند هسته را بسازد به LLVM 15 افزایش یافته است. Debian ۷.۹ و Ubuntu LLVM 14 در تاریخ 22.04 منتشر شد.
    • ادامه‌ی مهاجرت تغییرات از شاخه‌ی Rust-for-Linuxمربوط به استفاده از Rust به عنوان زبان دوم برای توسعه درایورها و ماژول‌های هسته (پشتیبانی از Rust به طور پیش‌فرض فعال نیست و Rust را به عنوان یک وابستگی اجباری برای ساخت هسته شامل نمی‌شود). نسخه جدید عملیات حافظه اتمی، ساختار درخت افرا، امکان ایجاد فایل‌های DebugFS و توابع دستکاری بیت‌مپ برای کد Rust را پیاده‌سازی می‌کند. دسترسی به API توسعه درایور گسترش یافته است. مجموعه‌ای کامل از انتزاع‌ها برای توسعه درایورهای دستگاه USB اضافه شده است (مثال درایور USB). ابزار perf اکنون از نمادهای اشکال‌زدایی تولید شده توسط کامپایلر rustc پشتیبانی می‌کند.
  • مجازی سازی و امنیت
    • پشتیبانی از تأیید رمزنگاری برنامه‌های BPF دانلود شده با استفاده از امضای دیجیتال اضافه شده است. این قابلیت بیشتر گسترش خواهد یافت تا شامل ابزارهایی برای تعریف قوانین برای دانلود برنامه‌های BPF امضا شده و فعال کردن کاربران غیرمجاز برای استفاده از برنامه‌های BPF تأیید شده باشد.
    • هایپروایزر KVM از افزونه مجازی‌سازی Intel CET (Control-flow Enforcement Technology) پشتیبانی می‌کند که با استفاده از تکنیک‌های برنامه‌نویسی بازگشت‌گرا (ROP) در برابر سوءاستفاده‌ها محافظت می‌کند. این محافظت با ذخیره آدرس بازگشت یک تابع نه تنها در پشته معمولی، بلکه در یک پشته سایه جداگانه نیز عمل می‌کند که نمی‌توان آن را مستقیماً تغییر داد.
    • قابلیت استفاده از بیش از ۲۵۵ پردازنده در ماشین‌های مجازی مهمان که هایپروایزر Bhyve را روی میزبان‌های FreeBSD 15 اجرا می‌کنند، اضافه شد.
    • لایه dibs (اشتراک‌گذاری مستقیم بافر داخلی) برای اشتراک‌گذاری کنترل‌شده بافرها در یک محیط ایزوله مانند یک hypervisor یا نمونه هسته اضافه شده است. Linux.
    • زیرسیستم حسابرسی اکنون از کار با چندین ماژول LSM که به طور همزمان فعال هستند پشتیبانی می‌کند (Linux ماژول امنیتی).
    • درایور virtio spi-virtio برای دسترسی به دستگاه SPI (رابط جانبی سریال) از ... اضافه شد. ماشین‌های مجازی.
    • هایپروایزر KVM اکنون از حالت پنهان‌سازی متن رمز SEV-SNP پشتیبانی می‌کند که خواندن متن رمز حافظه سیستم مهمان محافظت‌شده را روی یک CPU غیرمجاز مسدود می‌کند.
    • درایور qtee برای محیط‌های TEE (محیط اجرای مطمئن) تراشه‌های کوالکام اضافه شد.
  • زیر سیستم شبکه
    • پشتیبانی از اتصالات TCP رمزگذاری شده با استفاده از پروتکل امنیتی PSP (PSP) که توسط گوگل برای رمزگذاری ترافیک بین مراکز داده توسعه داده شده است، اضافه شده است. PSP رمزگذاری، کنترل یکپارچگی رمزنگاری و احراز هویت منبع را فراهم می‌کند و ترکیبی منحصر به فرد از قابلیت‌های TLS و IPsec را پیاده‌سازی می‌کند. PSP رمزگذاری را در سطح اتصالات شبکه منفرد اعمال می‌کند، نه کل کانال ارتباطی. PSP از کلیدهای رمزگذاری جداگانه برای اتصالات TCP تونل شده مختلف استفاده می‌کند تا ترافیک را به شدت از برنامه‌ها و کنترل‌کننده‌های مختلف جدا کند. برای کاهش بار CPU، عملیات رمزگذاری و رمزگشایی به کارت‌های شبکه منتقل می‌شوند (offload). UDP به عنوان پروتکل انتقال داده استفاده می‌شود که از طریق آن محتویات بسته TCP اصلی ارسال می‌شود.

      انتشار هسته Linux 6.18
    • پشتیبانی اولیه برای افزونه‌ی «اعلان دقیق و صریح ازدحام» (AcECN) اضافه شده است. این افزونه، نسخه‌ی بهبودیافته‌ی افزونه‌ی ECN است که به میزبان‌ها اجازه می‌دهد در صورت ازدحام، بسته‌های IP را به جای حذف آنها، علامت‌گذاری کنند و تشخیص شروع ازدحام در کانال‌های ارتباطی را بدون از دست دادن بسته امکان‌پذیر می‌سازد. افزونه‌ی اصلی ECN محدودیتی دارد که فقط اجازه می‌دهد یک سیگنال ازدحام در طول یک رفت و برگشت TCP (RTT، زمان رفت و برگشت، ارسال درخواست و دریافت پاسخ) ایجاد شود. AccECN این محدودیت را حذف می‌کند و به گیرنده اجازه می‌دهد بیش از یک سیگنال ازدحام را در هدر بسته‌ی TCP به فرستنده ارسال کند. الگوریتم‌های کنترل ازدحام می‌توانند از این اطلاعات برای پاسخ دقیق‌تر به ازدحام و جلوگیری از کاهش ناگهانی نرخ بسته در هنگام وقوع ازدحام جزئی استفاده کنند.
    • پشته UDP برای پردازش بسته‌های ورودی تحت حملات DDoS که منجر به رسیدن تعداد زیادی بسته به یک یا چند سوکت UDP می‌شود، بهینه شده است. بهینه‌سازی‌هایی مانند کاهش تداخل، بهینه‌سازی چیدمان ساختارهای داده در حافظه و استفاده از قفل‌های آگاه از NUMA (دسترسی غیریکنواخت به حافظه)، عملکرد دریافت بسته‌های UDP را در شرایط بحرانی تا ۴۷٪ یا بیشتر افزایش داده‌اند.
    • قابلیت غیرفعال کردن ذخیره‌سازی ورودی/خروجی (I/O caching) در سرور NFS پیاده‌سازی شده است که امکان استفاده از سرور NFS را در سیستم‌هایی با حافظه محدود (مثلاً محیط‌های ابری محدود) فراهم می‌کند. غیرفعال کردن حافظه پنهان همچنین می‌تواند در سرورهای NFS با بارگذاری سنگین مفید باشد تا از حذف داده‌های مرتبط با فضای ذخیره‌سازی محلی از حافظه پنهان به دلیل آزاد شدن حافظه برای حافظه پنهان NFS جلوگیری شود.
    • حداکثر اندازه بافر بسته‌های ورودی و خروجی برای سوکت‌های شبکه (net.core.rmem_max و net.core.wmem_max) از ۲ مگابایت به ۴ مگابایت افزایش یافته است. اندازه پیش‌فرض بدون تغییر باقی مانده است (net.core.rmem_default و net.core.wmem_default = ۲ مگابایت).
    • درایور شتاب‌دهنده شبکه Qualcomm PPE (موتور پردازش بسته) که در Qualcomm IPQ9574 SoC استفاده می‌شود، اضافه شد.
  • Оборудование
    • درایور Tyr که با زبان برنامه‌نویسی Rust نوشته شده، در هسته ادغام شده است. این درایور از پردازنده‌های گرافیکی ARM Mali که از فناوری Command Stream Frontend (CSF) استفاده می‌کنند، مانند Mali G310، G510 و G710، پشتیبانی می‌کند. این درایور هنوز برای استفاده منظم توسط کاربران عادی آماده نیست و به عنوان یک نمونه اولیه آزمایشی برای آزمایش انتزاع‌ها برای توسعه درایور در Rust در نظر گرفته می‌شود.
    • پشتیبانی از تاچ‌پدها با بازخورد لمسی و حسگرهای فشار به درایورهای دستگاه‌های ورودی HID (دستگاه رابط انسانی) اضافه شده است.
    • کار بر روی درایور Xe DRM (مدیر رندر مستقیم) برای پردازنده‌های گرافیکی مبتنی بر معماری Intel Xe که در کارت‌های گرافیکی سری Intel Arc و گرافیک‌های مجتمع استفاده می‌شود، با شروع از پردازنده‌های Tiger Lake ادامه یافته است. نسخه جدید رابط madvise را اضافه می‌کند، پشتیبانی از SR-IOV PF (عملکرد فیزیکی مجازی‌سازی ورودی/خروجی تک ریشه) را فعال می‌کند، پشتیبانی از حالت Intel PSMI را برای اعتبارسنجی سخت‌افزار اضافه می‌کند، پردازش اطلاعات خطای منتقل شده توسط میان‌افزار را تضمین می‌کند، پروفایل توان SLPC را پیاده‌سازی می‌کند و پشتیبانی از بارگذاری میان‌افزار کمکی (مانند کنترل‌کننده فن و تنظیم‌کننده ولتاژ) را در طول اعتبارسنجی درایور اضافه می‌کند.
    • درایور AMDGPU اکنون از دستگاه‌هایی با APUهای Cyan Skillfish پشتیبانی می‌کند، پشتیبانی از AMD GCN 1.0 را بهبود می‌بخشد، سازگاری با جعبه ابزار criu را افزایش می‌دهد، معیارهای دما را به sysfs اضافه می‌کند و امکان درخواست‌های بازنگاشت MMIO از فضای کاربر را فراهم می‌کند.
    • درایور i915 شامل پشتیبانی از خانواده تراشه‌های Wildcat Lake می‌شود و عملکرد را با پردازنده‌های گرافیکی Jasper Lake، Elkhart Lake، Gen7 و Gen6 بهبود می‌بخشد.
    • درایور Nouveau به طور پیش‌فرض از میان‌افزار NVIDIA GSP استفاده می‌کند و مدیریت خطا در آن بهبود یافته است.
    • ادغام اجزای درایور Nova برای پردازنده‌های گرافیکی NVIDIA مجهز به میان‌افزار GSP، که از سری NVIDIA GeForce RTX 2000 مبتنی بر ریزمعماری Turing استفاده می‌شود، ادامه یافته است. این درایور با زبان Rust نوشته شده است. نسخه جدید، پشتیبانی از میان‌افزار GSP را گسترش می‌دهد، پیاده‌سازی ماکروی "register!" را بهبود می‌بخشد و پشتیبانی از کلاس‌های دستگاه PCI و شناسه‌های فروشنده را اضافه می‌کند.
    • درایور راکت برای شتاب‌دهنده‌های NPU مورد استفاده در Rockchip RK3588 SoC اضافه شد.
    • پارامتر هسته "boot_display" برای انتخاب دستگاه خروجی برای نمایش فرآیند بوت در سیستم‌هایی با چندین پردازنده گرافیکی اضافه شد.
    • درایور vesadrm از پالت‌های ۸ بیتی پشتیبانی می‌کند.
    • درایور msm برای پشتیبانی از پردازنده گرافیکی Adreno 663 به‌روزرسانی شده است و از فناوری کاهش مصرف برق IFPC (Inter Frame Power Collapse) پشتیبانی می‌کند.
    • درایور panthor پشتیبانی از پردازنده‌های گرافیکی Mali-G710، Mali-G510، Mali-G310، Mali-Gx15، Mali-Gx20 و Mali-Gx25 را اضافه کرده است.
    • پشتیبانی از سیستم‌های صوتی ASoC زیر اضافه شده است: Qualcomm Glymur و PM4125، Realtek RT1321، Shanghai FourSemi FS2104/5S، Texas Instruments PCM1754 و TAS2783A، qcs615، CS35L56 B2، tas2118، tas2x20 و tas5825. پشتیبانی از کارت‌های صدای USB Tascam US-144mkII و Presonus S1824c اضافه شده است.
    • پشتیبانی از پردازنده‌های ARM Cortex-A320/A520AE/A720AE و C1-Nano/Pro/Premium/Ultra اضافه شد.
    • پشتیبانی از بردها، SoCها و دستگاه‌های ARM اضافه شده است: Apple M2 Pro، M2 Max و M2 Ultr، Sony Xperia SP، Samsung Galaxy S22، Samsung Galaxy S20 FE، ASUS Eee Pad Slider SL101، Lenovo ThinkBook 16، HP Omnibook X14 X1P42100، Dell Inspiron 7441 / Latitude 7455، Sige1، NanoPi Zero2، Axis Artpec8، NXP i.MX91، ROCK 2A/2F، Qualcomm Lemans Auto، Renesas RZ/T2H، RZ/N2H، RZ/T2H و RZ/N2H، Aspeed AST27xx، Meta Clemente BMC، Netcube Nagami som، Tqma91xx، Ultratronik i.MX8MP Ultra-MACH، i.MX8ULP EVK9، Buffalo WXR-1750DHP،

در همان زمان، بنیاد نرم‌افزار آزاد آمریکای لاتین نسخه‌ای از هسته کاملاً رایگان ۶.۱۱ را ایجاد کرد - Linux-libre 6.18-gnu، از عناصر میان‌افزار و درایور حاوی اجزای غیرآزاد یا بخش‌های کد با دامنه محدود، پاک‌سازی شده است. نسخه ۶.۱۸ شامل کد پاکسازی blob به‌روزرسانی‌شده در درایورهای Nova-Core، Intel XE، TI PRUeth، Lantiq GSWIP و Marvell WiFi-Ex است. نام‌های blob در فایل‌های devicetree (.dts) برای تراشه‌های ARM کوالکام، مدیاتک و TI ARM64 پاک‌سازی شده‌اند. بارگذاری blob در درایورهای جدید FourSemi fs2104/5s، TI TAS2783 و Qualcomm GENI غیرفعال شده است.

منبع: opennet.ru

خرید هاست قابل اعتماد برای سایت های دارای حفاظت DDoS، سرورهای VPS VDS 🔥 خرید هاستینگ معتبر با محافظت در برابر حملات DDoS، سرورهای VPS و VDS | ProHoster