هسته لینوکس 5.13 منتشر شد


بعد از دو ماه توسعه ، لینوس توروالدز هسته لینوکس 5.13 را منتشر کرد. از جمله بارزترین تغییرات: پشتیبانی اولیه از تراشه های Apple M1 ، کنترل کننده "متغیر" cgroup ، پشتیبانی قطع شده از / dev / kmem ، پشتیبانی از GPU های جدید Intel و AMD ، امکان فراخوانی مستقیم توابع هسته از برنامه های BPF ، تصادفی شدن هسته پشته برای هر تماس سیستم ، توانایی ساخت Clang با حفاظت CFI (کنترل جریان یکپارچگی) ، ماژول LSM Landlock برای محدودیت بیشتر فرآیندها ، دستگاه صدای مجازی مبتنی بر virtio ، حالت چند عکس در io_uring.

نسخه جدید 17189 اصلاحیه را از 2150 توسعه دهنده دریافت کرده است (بزرگترین مورد در تاریخ) ، اندازه پچ – 60 مگابایت (تغییرات 12996 پرونده را تحت تأثیر قرار داده ، 794705 خط کد اضافه کرده ، 399590 خط حذف شده است). حدود 47٪ از کل تغییرات وارد شده در 5.13 مربوط به درایورهای دستگاه است ، حدود 14٪ تغییرات ایجاد شده است
نگرش نسبت به به روزرسانی کد مخصوص معماری های سخت افزاری ، 13٪
مربوط به پشته شبکه ، 5٪ به سیستم فایل ها و 4٪ به داخلی است
زیر سیستم های هسته

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

  • زیر سیستم دیسک ، سیستم ورودی و خروجی دیسک
    • گزینه "rasize" mount برای سیستم فایل SMB3 پیاده سازی شده است که با استفاده از آن می توانید اندازه پنجره readahead را تعیین کنید تا عملکرد انواع خاصی از کار را افزایش دهد.
    • سیستم فایل ext4 رونویسی از ورودی های دایرکتوری را هنگام پاک کردن پرونده ها فراهم می کند تا اطمینان حاصل شود که نام پرونده های پاک شده پاک شده است. با پیش بارگذاری بیت مپ های بلوک ، عملکرد کد برای تخصیص بلوک در FS های تازه نصب شده بهبود می یابد. Ext4 همچنین امکان استفاده همزمان از حالت بدون حروف بزرگ و رمزگذاری را فراهم می کند.
    • پشتیبانی از دستور ioctl FITRIM (دور انداختن) به FS exFAT ، برای درایو در مورد بلوک های استفاده نشده در FS ، اضافه شد.
    • توانایی حذف فضا از آخرین گروه توزیع در سیستم فایل به سیستم فایل XFS اضافه شد که اولین پیوند در اجرای عملکرد کاهش اندازه پارتیشن های موجود با سیستم فایل XFS بود. چندین بهینه سازی عملکرد انجام شده است.
    • در Btrfs استفاده از read-forward در دستور ارسال اضافه شده است ، كه باعث می شود زمان ارسال كامل 10٪ و 25٪ افزایشی كاهش یابد. برای دستگاههای بلوک بندی شده منطقه ای ، توزیع مجدد خودکار زمینه پس زمینه ها هنگام عبور از آستانه 75٪ فضای بلا استفاده انجام می شود.
    • پشتیبانی از حالت "big pcluster" به EROFS (سیستم فایل فقط خواندنی پیشرفته) اضافه شد ، که می تواند عملکرد فشرده سازی داده ها را به طور قابل توجهی افزایش دهد.
    • فراخوانی سیستمی جدیدی به نام quactl_path اضافه شد ، كه با quotactl تفاوت دارد به این دلیل كه به شما اجازه می دهد سهمیه ها را نه از طریق یك فایل دستگاه خاص ، بلكه از طریق تعیین مسیر رسیدن به نقطه نصب FS مدیریت كنید.
    • در مکانیزم fanotify
      قابلیت های پیشرفته موجود برای کاربران غیرمحرمان. به عنوان مثال ، با تشبیه با inotify بدون امتیازات SYS_CAP_ADMIN ، اکنون می توانید رویدادهای OPEN ، ACCESS ، MODIFY و CLOSE را برای پرونده ها و دایرکتوری ها کنترل کنید.

    • اکنون سیستم پرونده توزیع شده OrangeFS (ادامه PVFS) از عملیات پیش خواندن پشتیبانی می کند ، که به طور قابل توجهی عملکرد عملیات خواندن را افزایش داده است (در تست ها ، توان عملیاتی از 21.8 MB / s به 386 MB / s افزایش یافته است).
    • افزایش مقیاس پذیری هش دستگاه دستگاه با تغییر وضعیت به rbtree. پشتیبانی اضافه شده برای عملیات "دور انداختن" در dm-whole.
  • خدمات حافظه و سیستم
    • یک کنترل کننده cgroup جدید اضافه کرد – "Misc" (CONFIG_CGROUP_MISC) ، برای محدود کردن و ردیابی منابع مقیاسی قابل کنترل با استفاده از یک شمارنده ساده است و با تنظیم حداکثر مقادیر مجاز طراحی شده است. به عنوان نمونه ای از استفاده از کنترل کننده cgroup جدید ، مدیریت شناسه های فضای آدرس مورد استفاده در سازوکار AMD SEV (مجازی سازی رمزگذاری شده امن) ذکر شده است.
    • در رابط I / O ناهمزمان io_uring برای درخواست های POLL ، حالت "چند عکس" اجرا می شود که در آن POLL پس از ایجاد رویداد حذف نمی شود ، اما همچنان فعال است و می تواند چندین رویداد ایجاد کند.
    • کد را از شاخه هسته بیدرنگ منتقل کرد تا وقفه های نرم افزاری ایجاد شده در رشته های هسته را کنترل کند ، که به آنها اجازه می دهد با فرایندهای با اولویت بالاتر به بیرون رانده شوند.
    • کتابخانه داخلی netfs اضافه شده است ، که شامل توابع معمولی مورد استفاده در سیستم های پرونده شبکه است.
    • برای معماری PowerPC ، پشتیبانی از فضای نامی زمان اجرا شده است ، به شما این امکان را می دهد که از وقت خود در ظرف استفاده کنید.
    • برای معماری RISC-V ، پشتیبانی از kexec ، crash dump ، kprobe و اجرای هسته در محل اجرا می شود.
    • برنامه های ردیابی BPF اکنون توانایی استفاده از فضای ذخیره سازی محلی را دارند که با اتصال داده ها به یک کنترل کننده خاص BPF عملکرد بالاتری را فراهم می کند.
    • مکانیزم جدیدی برای فراخوانی مستقیم توابع هسته از برنامه های BPF اجرا شده است که قبلاً در اجرای الگوریتم های اضافه بار TCP استفاده شده است. به دلایل امنیتی ، توابع فراخوانی شده باید به طور مشخص در لیست سفید قرار گیرند.
    • گزینه func-no-تکرار به سیستم ردیابی عملکرد ftrace اضافه شده است تا تماس های عملکردی متوالی تکراری را به عنوان شمارنده منعکس کند.
    • توانایی مدیریت خطاهای جزئی هنگامی که صفحه ای از حافظه وجود دارد اضافه شده است اما هیچ ورودی در جدول صفحه در فراخوان سیستم userfaultfd () برای رسیدگی به خطاهای صفحه در فضای کاربر وجود ندارد.
    • پشتیبانی از پرونده ویژه / dev / kmem که می تواند برای دسترسی به کل فضای آدرس هسته استفاده شود ، رها شد. مشخص شده است که این پرونده قدیمی است و مشکلات امنیتی ایجاد می کند.
    • درایور جدیدی برای مدیریت خنک کننده برای تراشه های اینتل اجرا شده است ، که به شما امکان می دهد در صورت خطر گرم شدن بیش از حد ، فرکانس پردازنده را کاهش دهید. بر خلاف مکانیسم فعال سازی TCC (مدار کنترل حرارتی) موجود ، درایور جدید مقادیر نسبی را دستکاری می کند ، یعنی می تواند فرکانس را در مرحله آغاز افزایش قابل توجه دما کاهش دهد ، اما بدون انتظار برای عبور از آستانه.
    • توانایی شستشوی همزمان بافرهای انجمنی ترجمه محلی و خارجی (TLB) را اجرا کرد ، که منجر به افزایش سرعت آزمون Sysbench 1-4 شد.
  • مجازی سازی و امنیت
    • شامل ماژول جداسازی برنامه Landlock LSM برای محدود کردن تعامل با محیط خارجی یک گروه فرآیندی و با چشم انداز مکانیزم های ایزوله مانند XNU Sandbox ، FreeBSD Capsicum و OpenBSD Pledge / رونمایی منطق اعطا با استفاده از یک برنامه BPF تعریف شده است ، اما برخلاف seccomp-bpf ، Landlock تماس های سیستم و آرگومان های آنها را فیلتر نمی کند ، بلکه استفاده از اشیا k هسته مانند سلسله مراتب پرونده را محدود می کند. با کمک Landlock ، هر فرآیندی ، از جمله فرآیندهای غیر ریشه ، می تواند به طور قابل اعتماد خود را جدا کرده و از کنارگذاشتن انزوا در صورت آسیب پذیری یا تغییرات مخرب در برنامه جلوگیری کند. Landlock به یک فرآیند امکان ایجاد جعبه های ماسه ایمن را می دهد که به عنوان یک لایه اضافی در بالای مکانیزم های کنترل دسترسی سیستم موجود اجرا می شوند. به عنوان مثال ، یک برنامه ممکن است خود را از دسترسی به پرونده های خارج از فهرست کار محروم کند.
    • توانایی تصادفی کردن جابجایی ها در پشته هسته هنگام پردازش تماس های سیستم به منظور پیچیده کردن حملات پشته. ماهیت حفاظت پیشنهادی در انتخاب جابجایی پشته تصادفی در هر تماس سیستم است ، که تعیین طرح پشته در حافظه را حتی در صورت دریافت اطلاعات در مورد آدرس ها پیچیده تر می کند ، زیرا آدرس پایه پشته در سیستم بعدی تغییر خواهد کرد زنگ زدن. برای فعال کردن تصادفی سازی ، پارامتر خط فرمان هسته "randomize_kstack_offset = روشن / خاموش" و تنظیمات CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT ارائه شده است. هزینه های سربار تقریباً 1٪ بهره وری از دست رفته تخمین زده می شود.
    • پشتیبانی از ساخت هسته با گنجاندن مکانیزم محافظت CFI (کنترل جریان یکپارچگی) در کامپایلر Clang اضافه شده است ، که قبل از هر تماس غیرمستقیم یک تابع بررسی را برای تشخیص برخی از انواع رفتارهای تعریف نشده که به طور بالقوه منجر به کنترل می شود ، اضافه می کند در نتیجه نقض جریان ، بهره برداری می کند که نشانگرهای عملکرد ذخیره شده در حافظه را اصلاح می کند. پارامتر CONFIG_CFI_CLANG برای فعال کردن CFI پیشنهاد شده است.
    • در سرویس زنگ کلید ارائه شده توسط هسته ، مکانیسم Trusted Keys اکنون نه تنها کلیدهای TPM ، بلکه همچنین محیط های Trusted Execution En محیط (TEE) را در بر می گیرد. پارامتر راه اندازی "trusted.source" برای کنترل منبع کلیدهای مطمئن ارائه شده است. علاوه بر این ، توانایی مدیریت کلیدهای اعتماد در قالب ASN.1 اضافه شده است.
    • پارامتر اضافه شده برای بارگیری CRL در زمان راه اندازی هسته. مسئله رفع شده (CVE-2020-26541) با نادیده گرفتن مجوزهای موجود در لیست سیاه UEFI Secure Boot ارائه شده در قالب EFI_CERT_X509_GUID ، به سیستم اجازه می دهد تا با یک گواهی لغو شده راه اندازی شود.
    • پشتیبانی برای بررسی امضاهای دیجیتالی ECDSA بر اساس منحنی های بیضوی به زیر سیستم رمزنگاری هسته.
    • توانایی تأیید سیاست های SELinux را با استفاده از زیر سیستم IMA (Integrity Measurement Architecture) که پایگاه داده هش را برای بررسی یکپارچگی داده ها حفظ می کند ، اجرا کرد.
  • زیر سیستم شبکه
    • پشتیبانی از فناوری WiMAX را که دیگر در شبکه های عمومی استفاده نمی شود حذف کرد و در هسته تنها درایوری که می توان از WiMAX با آن استفاده کرد درایور منسوخ Intel 2400m است. پشتیبانی WiMAX در NetworkManager در سال 2015 متوقف شد. در حال حاضر ، WiMax تقریباً به طور کامل توسط فناوری هایی مانند LTE ، HSPA + و Wi-Fi 802.11n جایگزین می شود.
    • درایور برای Microsoft Azure Network Adapter (MANA) اضافه شد.
    • پشتیبانی از ماژول های بی سیم Qualcomm QCN9074 802.11ax به درایور ath11k اضافه شد.
    • درایور iwlwifi اسکن غیرفعال کانالهای 6 گیگاهرتز را اجرا می کند. پشتیبانی اضافه شده برای روشن / خاموش برای اوکراین
      IEEE 802.11ax براساس تنظیمات BIOS است.
    • بهینه سازی سیستم فرعی XDP (eXpress Data Path) ، که به شما امکان می دهد بسته های شبکه را در مرحله قبل از پردازش توسط شبکه هسته هسته لینوکس ، دستکاری کنید. آزمایشات انجام شده افزایش 4-8 درصدی عملکرد XDP را نشان می دهد. برای دستگاه های مجازی ، عملکرد پردازش نرم افزار AF_XDP می تواند تا 33٪ سریعتر باشد.
    • ICMP پشتیبانی از پیام های گسترده PROBE را همانطور که در RFC 8335 تعریف شده است ، پیاده سازی می کند.
    • ادغام مداوم با هسته MPTCP (MultiPath TCP) ، توسعه یافته پروتکل TCP برای سازماندهی اتصال TCP با تحویل بسته ها به طور همزمان در چندین مسیر از طریق رابط های شبکه مختلف که به آدرس های IP مختلف متصل هستند. نسخه جدید پشتیبانی از sockopt را برای تنظیم گزینه های عمومی TCP اضافه می کند. قابلیت تنظیم مجدد جریان های فرعی فردی اجرا شده است.
    • پشتیبانی از مدیریت منابع با استفاده از سلسله مراتب v2 cgroups در netfilter اضافه شد.
    • Ethtool یک رابط برای خواندن آمار IEEE MIB با پشتیبانی از mlx5 و bnxt پیاده سازی می کند. درایورهای شبکه مجاز به استخراج داده های دلخواه از SFP EEPROM هستند ، و نه بسته اندازه افست + اندازه ، بلکه صفحات حافظه را دستکاری می کنند.
  • سخت افزار
    • پشتیبانی اولیه از تراشه ARM Apple M1 اجرا شده است ، از جمله کنترل وقفه ، تایمر ، UART ، توابع SMP ، توابع ورودی / خروجی و MMIO. مهندسی معکوس GPU هنوز کامل نشده است ، پشتیبانی از framebuffer و کنسول سریال برای سازماندهی خروجی ارائه شده است.
    • با تمیز کردن هسته از درایورهای قدیمی ، درایورهای "واشر" (Google ASIC) ، "sysace" ، "umem" و چندین درایور قدیمی را برای درگاه های سریال بردارید.
    • پس از 13 سال در شاخه صحنه سازی ، راننده "کمدی" تثبیت شده و برای پشتیبانی از جمع آوری داده ها به جریان اصلی منتقل شده است.
    • درایور GUD (نمایشگر USB عمومی) با اجرای درایور اساسی برای صفحه ها و آداپتورهای تلویزیون متصل شده از طریق USB ، اضافه شد. درایور ویژگی های DRM (Direct Rendering Manager) را برای چرخش تصویر ، کنترل روشنایی ، دسترسی EDID ، تنظیم حالت فیلم و اتصال تلویزیون فراهم می کند ، که می تواند به عنوان پایه ای برای ایجاد درایورهای خاص دستگاه مورد استفاده قرار گیرد.
    • پشتیبانی از پردازنده Loongson-2K1000 که شامل دو هسته MIPS64r2 است.
    • درایور صدای "virtio" با اجرای دستگاه صدای مجازی اضافه شده است که می تواند در سیستم های مهمان برای خروجی و ضبط صدا بدون دسترسی به کارت صدا و بدون تقلید استفاده شود.
    • پشتیبانی اولیه GPU Aldebaran (gfx90a) در درایور amdgpu اضافه شد. شامل پشتیبانی اولیه از FreeSync Adaptive Sync برای HDMI (که قبلاً برای DisplayPort در دسترس بود) ، که به شما امکان می دهد نرخ تازه سازی صفحه را تنظیم کنید. پشتیبانی از ASSR (Alternate Scrambler Seed Reset) گنجانده شده است. ioctl به قابلیت رمزگذاری و رمزگشایی ویدئو اضافه شد.
      حالت CONFIG_DRM_AMD_SECURE_DISPLAY برای تشخیص تغییرات در نمایشگرهایی که اطلاعات مهم را نشان می دهند ، اضافه شد. پشتیبانی اضافه شده از مکانیسم صرفه جویی در انرژی ASPM.

    • درایور i915 برای کارت گرافیک های Intel شامل پشتیبانی از تراشه های Intel Alderlake-S است. پشتیبانی اضافه شده از eDP MSO (عملکرد چند منظوره DisplayPort تعبیه شده).
    • پشتیبانی از کنترلر بازی Luna (آمازون) ، و همچنین Hycon HY46XX ، ILITEK Lego Series و MStar MSG2638 صفحه نمایش لمسی

همزمان ، بنیاد نرم افزار آزاد آمریکای لاتین تشکیل شد
هسته کاملا رایگان 5.13 – Linux-libre 5.13-gnu ، از عناصر سیستم عامل و درایورهای حاوی اجزای غیر رایگان یا بخش کد ، که دامنه محدود شده توسط سازنده است ، محروم است. در نسخه جدید ، درایور کمدی تمیز شده است. تمیز کردن توقف درایورهای سیکلاد ، isicom tty و i2400m wimax که از هسته برداشته شدند. کد پاک شده لکه در درایورها و سیستم های فرعی amdgpu ، i915 csr ، r8152 usb ، mhi bus ، صفحه نمایش لمسی x86 و qualcomm arm64 به روز شده است.

OpenNET


نظر شما