إصدار Linux 5.17 kernel

بعد شهرين من التطوير، قدم لينوس تورفالدس إصدار Linux kernel 5.17. من بين أبرز التغييرات: نظام جديد لإدارة الأداء لمعالجات AMD، والقدرة على تعيين معرفات المستخدم بشكل متكرر في أنظمة الملفات، ودعم برامج BPF المجمعة المحمولة، وانتقال مولد الأرقام العشوائية الزائفة إلى خوارزمية BLAKE2s، وأداة RTLA المساعدة لتحليل التنفيذ في الوقت الفعلي، وواجهة خلفية fscache جديدة للتخزين المؤقت لأنظمة ملفات الشبكة، والقدرة على إرفاق أسماء بعمليات mmap مجهولة.

يتضمن الإصدار الجديد 14203 إصلاحًا من 1995 مطورًا، وحجم التصحيح 37 ميجابايت (أثرت التغييرات على 11366 ملفًا، وتمت إضافة 506043 سطرًا من التعليمات البرمجية، وتم حذف 250954 سطرًا). حوالي 44% من جميع التغييرات التي تم إدخالها في 5.17 تتعلق ببرامج تشغيل الأجهزة، وحوالي 16% من التغييرات تتعلق بتحديث التعليمات البرمجية الخاصة ببنيات الأجهزة، و15% تتعلق بمكدس الشبكة، و4% تتعلق بأنظمة الملفات، و4% ترتبط بالأنظمة الفرعية للنواة الداخلية.

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

  • نظام القرص الفرعي ، I / O وأنظمة الملفات
    • تم تنفيذ إمكانية التعيين المتداخل لمعرفات المستخدم لأنظمة الملفات المثبتة، المستخدمة لمقارنة ملفات مستخدم معين على قسم خارجي مثبت مع مستخدم آخر على النظام الحالي. تتيح لك الميزة المضافة استخدام التعيين بشكل متكرر أعلى أنظمة الملفات التي تم تطبيق التعيين عليها بالفعل.
    • تمت إعادة كتابة النظام الفرعي fscache، المستخدم لتنظيم التخزين المؤقت في نظام الملفات المحلي للبيانات المنقولة عبر أنظمة ملفات الشبكة، بالكامل. يتميز التنفيذ الجديد بتبسيط كبير للكود واستبدال العمليات المعقدة لتخطيط وتتبع حالات الكائن بآليات أبسط. يتم تنفيذ دعم fscache الجديد في نظام ملفات CIFS.
    • ينفذ النظام الفرعي لتتبع الأحداث في fanotify FS نوعًا جديدًا من الأحداث، FAN_RENAME، والذي يسمح لك باعتراض عملية إعادة تسمية الملفات أو الدلائل على الفور (في السابق، تم استخدام حدثين منفصلين FAN_MOVED_FROM وFAN_MOVED_TO لمعالجة عمليات إعادة التسمية).
    • قام نظام الملفات Btrfs بتحسين عمليات التسجيل وعمليات fsync للأدلة الكبيرة، ويتم تنفيذها عن طريق نسخ مفاتيح الفهرس فقط وتقليل كمية البيانات الوصفية المسجلة. تم توفير الدعم للفهرسة والبحث حسب حجم سجلات المساحة الحرة، مما أدى إلى تقليل زمن الوصول بنسبة 30% تقريبًا وتقليل وقت البحث. يسمح بمقاطعة عمليات إلغاء التجزئة. يتم تعطيل القدرة على إضافة الأجهزة عند الموازنة بين محركات الأقراص، أي. عند تركيب نظام ملفات باستخدام خيار Skip_balance.
    • تم اقتراح بناء جملة جديد لتثبيت نظام ملفات Ceph، مما يؤدي إلى حل المشكلات الحالية المرتبطة بالربط بعناوين IP. بالإضافة إلى عناوين IP، يمكنك الآن استخدام معرف المجموعة (FSID) لتحديد الخادم: mount -t ceph [البريد الإلكتروني محمي]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • انتقل نظام الملفات Ext4 إلى واجهة برمجة التطبيقات الجديدة المتصاعدة التي تفصل بين خطوات تحليل خيارات التثبيت وخطوات تكوين الكتلة الفائقة. لقد قمنا بإسقاط الدعم لخيارات Lazytime وnolazytime Mount، والتي تمت إضافتها كتغيير مؤقت لتسهيل انتقال util-linux لاستخدام علامة MS_LAZYTIME. تمت إضافة دعم لإعداد وقراءة التسميات في FS (ioctl FS_IOC_GETFSLABEL وFS_IOC_SETFSLABEL).
    • أضاف NFSv4 دعمًا للعمل في أنظمة الملفات غير الحساسة لحالة الأحرف في أسماء الملفات والدلائل. يضيف NFSv4.1+ دعمًا لتحديد الجلسات المجمعة (التوصيل).
  • خدمات الذاكرة والنظام
    • تمت إضافة برنامج تشغيل amd-pstate لتوفير التحكم الديناميكي في التردد للحصول على الأداء الأمثل. يدعم برنامج التشغيل وحدات المعالجة المركزية AMD ووحدات APU بدءًا من جيل Zen 2، والذي تم تطويره بالاشتراك مع Valve ويهدف إلى تحسين كفاءة إدارة الطاقة. بالنسبة لتغييرات التردد التكيفية، يتم استخدام آلية CPPC (التحكم في أداء المعالج التعاوني)، والتي تسمح لك بتغيير المؤشرات بشكل أكثر دقة (لا تقتصر على ثلاثة مستويات أداء) والاستجابة بسرعة أكبر لتغيرات الحالة مقارنة بحالة P المستندة إلى ACPI المستخدمة سابقًا برامج التشغيل (CPUFreq).
    • يوفر نظام eBPF الفرعي معالج bpf_loop()، والذي يوفر طريقة بديلة لتنظيم الحلقات في برامج eBPF، بشكل أسرع وأسهل للتحقق من خلال أداة التحقق.
    • على مستوى kernel، يتم تنفيذ آلية CO-RE (ترجمة مرة واحدة - تشغيل في كل مكان)، والتي تسمح لك بتجميع كود برامج eBPF مرة واحدة فقط واستخدام محمل عالمي خاص يكيف البرنامج المحمل مع أنواع kernel وBTF الحالية (تنسيق نوع BPF).
    • من الممكن تعيين أسماء لمناطق الذاكرة الخاصة المجهولة (المخصصة عبر malloc)، والتي يمكن أن تبسط تصحيح الأخطاء وتحسين استهلاك الذاكرة في التطبيقات. يتم تعيين الأسماء عبر prctl مع علامة PR_SET_VMA_ANON_NAME ويتم عرضها في /proc/pid/maps و /proc/pid/smaps في النموذج "[anon: ]".
    • يوفر برنامج جدولة المهام تتبعًا وعرضًا في /proc/PID/sched للوقت الذي تستغرقه العمليات في حالة الخمول القسري، ويستخدم، على سبيل المثال، لتقليل الحمل عند ارتفاع درجة حرارة المعالج.
    • تمت إضافة وحدة gpio-sim، المصممة لمحاكاة شرائح GPIO للاختبار.
    • تمت إضافة أمر فرعي "زمن الاستجابة" إلى الأمر "perf ftrace" لإنشاء رسوم بيانية تحتوي على معلومات زمن الوصول.
    • تمت إضافة مجموعة من أدوات "RTLA" المساعدة لتحليل العمل في الوقت الفعلي. يتضمن أدوات مساعدة مثل osnoise (يحدد تأثير نظام التشغيل على تنفيذ المهمة) وtimerlat (يغير التأخير المرتبط بالمؤقت).
    • تم دمج سلسلة ثانية من التصحيحات مع تنفيذ مفهوم أوراق الصفحة، التي تشبه الصفحات المركبة، ولكنها تحتوي على دلالات محسنة وتنظيم أكثر وضوحًا للعمل. يتيح لك استخدام المجلدات تسريع إدارة الذاكرة في بعض أنظمة kernel الفرعية. أكملت التصحيحات المقترحة تحويل ذاكرة التخزين المؤقت للصفحة إلى استخدام المجلدات وإضافة الدعم الأولي للمجلدات في نظام ملفات XFS.
    • تمت إضافة وضع البناء "make mod2noconfig"، الذي ينشئ تكوينًا يجمع كل الأنظمة الفرعية المعطلة في شكل وحدات kernel.
    • تم رفع متطلبات إصدار LLVM/Clang الذي يمكن استخدامه لبناء النواة. يتطلب البناء الآن إصدار LLVM 11 على الأقل.
  • المحاكاة الافتراضية والأمن
    • يُقترح تنفيذ محدث لمولد الأرقام العشوائية الزائفة RDRAND، المسؤول عن تشغيل الأجهزة /dev/random و/dev/urandom، مع ملاحظة الانتقال إلى استخدام دالة التجزئة BLAKE2s بدلاً من SHA1 لعمليات خلط الإنتروبيا. أدى هذا التغيير إلى تحسين أمان مولد الأرقام العشوائية الزائفة من خلال إزالة خوارزمية SHA1 التي بها مشكلات والتخلص من الكتابة فوق متجه تهيئة RNG. نظرًا لأن خوارزمية BLAKE2s تتفوق على SHA1 في الأداء، فقد كان لاستخدامها أيضًا تأثير إيجابي على الأداء.
    • حماية إضافية ضد الثغرات الأمنية في المعالجات الناتجة عن التنفيذ التخميني للتعليمات بعد عمليات القفز للأمام غير المشروطة. تحدث المشكلة بسبب المعالجة الوقائية للتعليمات التي تتبع تعليمات الفرع مباشرة في الذاكرة (SLS، تخمين الخط المستقيم). يتطلب تمكين الحماية البناء باستخدام الإصدار الاختباري الحالي لـGC 12.
    • تمت إضافة آلية لتتبع العد المرجعي (إعادة العد، العد المرجعي)، بهدف تقليل عدد الأخطاء في العد المرجعي التي تؤدي إلى الوصول إلى الذاكرة بعد تحريرها. تقتصر الآلية حاليًا على النظام الفرعي للشبكة، ولكن في المستقبل يمكن تكييفها مع أجزاء أخرى من النواة.
    • تم تنفيذ عمليات فحص موسعة للإدخالات الجديدة في جدول صفحات ذاكرة العملية، مما يسمح باكتشاف أنواع معينة من الضرر وإيقاف النظام، ومنع الهجمات في مرحلة مبكرة.
    • تمت إضافة القدرة على تفريغ وحدات kernel مباشرةً بواسطة kernel نفسها، وليس بواسطة معالج في مساحة المستخدم، مما يسمح باستخدام وحدة LoadPin LSM لضمان تحميل وحدات kernel في الذاكرة من جهاز تخزين تم التحقق منه.
    • يتم توفير التجميع مع علامة "-Wcast-function-type"، والتي تتيح التحذيرات حول إرسال مؤشرات الوظيفة إلى نوع غير متوافق.
    • تمت إضافة برنامج تشغيل المضيف الظاهري pvUSB لبرنامج Hypervisor Xen، مما يوفر الوصول إلى أجهزة USB المعاد توجيهها إلى أنظمة الضيف (يسمح لأنظمة الضيف بالوصول إلى أجهزة USB الفعلية المخصصة لنظام الضيف).
    • تمت إضافة وحدة تسمح لك بالتفاعل عبر Wi-Fi مع النظام الفرعي IME (Intel Management Engine)، والذي يأتي في معظم اللوحات الأم الحديثة مع معالجات Intel ويتم تنفيذه كمعالج دقيق منفصل يعمل بشكل مستقل عن وحدة المعالجة المركزية.
    • بالنسبة لبنية ARM64، تم تنفيذ الدعم لأداة تصحيح الأخطاء KCSAN (Kernel Concurrency Sanitizer)، المصممة لاكتشاف حالات السباق ديناميكيًا داخل kernel.
    • بالنسبة لأنظمة ARM 32 بت، تمت إضافة القدرة على استخدام آلية KFENCE لاكتشاف الأخطاء عند العمل مع الذاكرة.
    • يضيف برنامج Hypervisor KVM دعمًا لتعليمات AMX (امتدادات المصفوفة المتقدمة) المطبقة في معالجات خادم Intel Xeon Scalable القادمة.
  • النظام الفرعي للشبكة
    • تمت إضافة دعم لتفريغ العمليات المتعلقة بإدارة حركة المرور إلى جانب أجهزة الشبكة.
    • تمت إضافة القدرة على استخدام MCTP (بروتوكول نقل مكونات الإدارة) عبر الأجهزة التسلسلية. يمكن استخدام MCTP للتواصل بين وحدات التحكم الإدارية والأجهزة المرتبطة بها (المعالجات المضيفة والأجهزة الطرفية وما إلى ذلك).
    • تم تحسين مكدس TCP، على سبيل المثال، لتحسين أداء مكالمات recvmsg، وتم تنفيذ الإصدار المؤجل للمخازن المؤقتة للمأخذ.
    • على مستوى سلطة CAP_NET_RAW، يُسمح بتعيين الوضعين SO_PRIORITY وSO_MARK من خلال وظيفة setockopt.
    • بالنسبة إلى IPv4، يُسمح للمقابس الأولية بالارتباط بعناوين IP غير المحلية باستخدام خيارات IP_FREEBIND وIP_TRANSPARENT.
    • تمت إضافة sysctl arp_missed_max لتكوين الحد الأدنى لعدد حالات الفشل أثناء فحص مراقبة ARP، وبعد ذلك يتم وضع واجهة الشبكة في حالة تعطيل.
    • توفير القدرة على تكوين قيم sysctl min_pmtu وmtu_expires المنفصلة لمساحات أسماء الشبكة.
    • تمت إضافة القدرة على ضبط وتحديد حجم المخازن المؤقتة للحزم الواردة والصادرة إلى واجهة برمجة تطبيقات ethtool.
    • أضاف Netfilter دعمًا لتصفية حركة مرور PPPOE العابرة في جسر الشبكة.
    • أضافت وحدة ksmbd، التي تنفذ خادم ملفات باستخدام بروتوكول SMB3، دعمًا لتبادل المفاتيح، ومكّنت منفذ الشبكة 445 لـ smbdirect، وأضافت دعمًا لمعلمة "smb2 max Credit".
  • معدات
    • تمت إضافة دعم شاشات عرض المعلومات السرية إلى النظام الفرعي drm (Direct Renderering Manager) وبرنامج التشغيل i915، على سبيل المثال، تم تجهيز بعض أجهزة الكمبيوتر المحمولة بشاشات ذات وضع عرض سري مدمج، مما يجعل من الصعب مشاهدتها من الخارج . تسمح لك التغييرات المضافة بتوصيل برامج التشغيل المتخصصة لهذه الشاشات والتحكم في أوضاع التصفح السرية من خلال تعيين الخصائص في برامج تشغيل KMS العادية.
    • يتضمن برنامج التشغيل amdgpu دعمًا لتقنية تصحيح الأخطاء STB (Smart Trace Buffer) لجميع وحدات معالجة الرسومات AMD التي تدعمها. يعمل STB على تسهيل تحليل حالات الفشل وتحديد مصدر المشكلات عن طريق تخزين معلومات في مخزن مؤقت خاص حول الوظائف التي تم تنفيذها قبل الفشل الأخير.
    • يضيف برنامج التشغيل i915 دعمًا لشرائح Intel Raptor Lake S ويتيح دعم النظام الفرعي للرسومات لرقائق Intel Alder Lake P بشكل افتراضي، ومن الممكن التحكم في الإضاءة الخلفية للشاشة عبر واجهة VESA DPCD.
    • تم إرجاع الدعم لتسريع تمرير الأجهزة في وحدة التحكم في برامج تشغيل fbcon/fbdev.
    • استمرار تكامل التغييرات لدعم شرائح Apple M1. تم تنفيذ القدرة على استخدام برنامج التشغيل simpledrm على الأنظمة المزودة بشريحة Apple M1 للإخراج من خلال مخزن الإطارات المؤقت الذي توفره البرامج الثابتة.
    • تمت إضافة دعم لـ ARM SoС والأجهزة واللوحات Snapdragon 7c و845 و888 (Sony Xperia XZ2 / XZ2C / XZ3 وXperia 1 III / 5 III وSamsung J5 وMicrosoft Surface Duo 2) وMediatek MT6589 (Fairphone FP1) وMediatek MT8183 ( Acer Chromebook 314)، Mediatek MT7986a/b (المستخدم في أجهزة توجيه Wi-fi)، Broadcom BCM4908 (Netgear RAXE500)، Qualcomm SDX65، Samsung Exynos7885، Renesas R-Car S4-8، TI J721s2، TI SPEAR320s، NXP i.MX8 ULP8 , Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6000/t6001 MacBook Pro 14/16.
    • تمت إضافة دعم لمعالجات ARM Cortex-M55 وCortex-M33.
    • تمت إضافة دعم للأجهزة المعتمدة على CPU MIPS: Linksys WRT320N v1، Netgear R6300 v1، Netgear WN2500RP v1/v2.
    • تمت إضافة دعم لـ StarFive JH7100 SoC استنادًا إلى بنية RISC-V.
    • تمت إضافة برنامج تشغيل lenovo-yogabook-wmi للتحكم في الإضاءة الخلفية للوحة المفاتيح والوصول إلى أجهزة الاستشعار المختلفة في Lenovo Yoga Book.
    • تمت إضافة برنامج تشغيل asus_wmi_sensors للوصول إلى المستشعرات المستخدمة في اللوحات الأم Asus X370 وX470 وB450 وB550 وX399 المستندة إلى معالجات AMD Ryzen.
    • تمت إضافة برنامج تشغيل x86-android-tablets لأجهزة الكمبيوتر اللوحية المستندة إلى x86 والتي يتم شحنها مع نظام Android الأساسي.
    • تمت إضافة دعم لشاشات اللمس TrekStor SurfTab duo W1 والقلم الإلكتروني لأجهزة Chuwi Hi10 Plus وPro اللوحية.
    • أضافت برامج تشغيل SoC Tegra 20/30 دعمًا لإدارة الطاقة والجهد. يتيح التشغيل على أجهزة Tegra SoC الأقدم 32 بت مثل ASUS Prime TF201 وPad TF701T وPad TF300T وInfinity TF700T وEeePad TF101 وPad TF300TG.
    • تمت إضافة برامج تشغيل لأجهزة الكمبيوتر الصناعية Siemens.
    • تمت إضافة دعم لشاشات Sony Tulip Truly NT35521 وVivax TPC-9150 وInnolux G070Y2-T02 وBOE BF060Y8M-AJ0 وJDI R63452 وNovatek NT35950 وWanchanglong W552946ABA وTeam Source Display TST043015CMHX.
    • تمت إضافة دعم لأنظمة الصوت وبرامج الترميز AMD Renoir ACP وAsahi Kasei Microdevices AKM4375 وأنظمة Intel التي تستخدم NAU8825/MAX98390 وMediatek MT8915 وnVidia Tegra20 S/PDIF وQualcomm ALC5682I-VS وTexas Instruments TLV320ADC3xxx. تم حل مشاكل الصوت Tegra194 HD. تمت إضافة دعم HDA لبرامج الترميز CS35L41. دعم محسّن لأنظمة الصوت لأجهزة الكمبيوتر المحمولة Lenovo وHP، بالإضافة إلى اللوحات الأم من Gigabyte.

المصدر: opennet.ru

إضافة تعليق