إصدار Linux 6.0 kernel

بعد شهرين من التطوير، قدم لينوس تورفالدس إصدار Linux 6.0 kernel. التغيير الكبير في رقم الإصدار هو لأسباب جمالية وهو خطوة رسمية لتخفيف الانزعاج الناتج عن تراكم عدد كبير من المشكلات في السلسلة (قال لينوس مازحًا إن سبب تغيير رقم الفرع كان على الأرجح بسبب نفاد أصابعه وأصابع القدم لحساب أرقام الإصدار). من بين أبرز التغييرات: دعم الكتابة المخزنة غير المتزامنة في XFS، وبرنامج تشغيل كتلة ublk، وتحسين جدولة المهام، وآلية التحقق من التشغيل الصحيح للنواة، ودعم تشفير كتلة ARIA.

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

  • نظام القرص الفرعي ، I / O وأنظمة الملفات
    • أضاف نظام ملفات XFS دعمًا للكتابة المخزنة مؤقتًا غير المتزامنة باستخدام آلية io_uring. تُظهر اختبارات الأداء التي تم إجراؤها باستخدام أدوات fio (خيط واحد، حجم كتلة 1 كيلو بايت، 4 ثانية، كتابة تسلسلية) زيادة في عمليات الإدخال/الإخراج في الثانية (IOPS) من 600 كيلو بايت إلى 77 كيلو بايت، وسرعة نقل البيانات من 209 ميجا بايت / ثانية إلى 314 ميجا بايت / ثانية، وانخفاض زمن الوصول من 854ns إلى 9600ns (120 مرة).
    • يطبق نظام الملفات Btrfs إصدارًا ثانيًا من البروتوكول لأمر "إرسال"، الذي ينفذ دعم البيانات الوصفية الإضافية، ويرسل البيانات في كتل أكبر (أكثر من 64 كيلو بايت) وينقل النطاقات في شكل مضغوط. تم زيادة أداء عمليات القراءة المباشرة بشكل ملحوظ (حتى 3 مرات) بسبب القراءة المتزامنة لما يصل إلى 256 قطاعًا. تقليل تنافس القفل وتسريع التحقق من البيانات التعريفية عن طريق تقليل بيانات التعريف المحجوزة للعناصر المؤجلة.
    • تمت إضافة عمليات ioctl الجديدة EXT4_IOC_GETFSUUID وEXT4_IC_SETFSUUID إلى نظام الملفات ext4 لاسترداد أو تعيين UUID المخزن في الكتلة الفائقة.
    • يوفر نظام الملفات F2FS وضع استهلاك منخفض للذاكرة، مما يعمل على تحسين التشغيل على الأجهزة التي تحتوي على كمية صغيرة من ذاكرة الوصول العشوائي (RAM) ويسمح لك بتقليل استهلاك الذاكرة على حساب انخفاض الأداء.
    • تمت إضافة دعم لمصادقة محرك NVMe.
    • يطبق خادم NFSv4 حدًا لعدد العملاء النشطين، والذي تم تعيينه على أنه 1024 عميلًا صالحًا لكل جيجابايت من ذاكرة الوصول العشوائي (RAM) في النظام.
    • أدى تطبيق عميل CIFS إلى تحسين الأداء في وضع الإرسال متعدد القنوات.
    • تمت إضافة علامة جديدة FAN_MARK_IGNORE إلى النظام الفرعي لتتبع الأحداث في fanotify FS لتجاهل أحداث معينة.
    • في Overlayfs FS، عند تركيبه أعلى FS مع تعيين معرف المستخدم، يتم توفير الدعم الصحيح لقوائم التحكم في الوصول المتوافقة مع POSIX.
    • تمت إضافة برنامج تشغيل كتلة ublk، الذي ينقل منطقًا محددًا إلى جانب عملية الخلفية في مساحة المستخدم ويستخدم النظام الفرعي io_uring.
  • خدمات الذاكرة والنظام
    • تمت إضافة ميزات جديدة إلى النظام الفرعي DAMON (مراقبة الوصول إلى البيانات)، مما يسمح ليس فقط بمراقبة وصول العملية إلى ذاكرة الوصول العشوائي من مساحة المستخدم، ولكن أيضًا للتأثير على إدارة الذاكرة. على وجه الخصوص، تم اقتراح وحدة نمطية جديدة "LRU_SORT"، والتي توفر إعادة تجميع قوائم LRU (الأقل استخدامًا مؤخرًا) لزيادة أولوية صفحات ذاكرة معينة.
    • تم تنفيذ القدرة على إنشاء مناطق ذاكرة جديدة باستخدام إمكانيات ناقل CXL (Compute Express Link)، المستخدم لتنظيم التفاعل عالي السرعة بين وحدة المعالجة المركزية وأجهزة الذاكرة. يتيح لك CXL توصيل مناطق الذاكرة الجديدة التي توفرها أجهزة الذاكرة الخارجية واستخدامها كموارد إضافية لمساحة العنوان الفعلية لتوسيع ذاكرة الوصول العشوائي للنظام (DDR) أو الذاكرة الدائمة (PMEM).
    • تم حل مشكلات الأداء مع معالجات AMD Zen الناتجة عن التعليمات البرمجية التي تمت إضافتها منذ 20 عامًا لحل مشكلة الأجهزة في بعض الشرائح (تمت إضافة تعليمات WAIT إضافية لإبطاء المعالج بحيث كان لدى مجموعة الشرائح الوقت الكافي للدخول في حالة الخمول). أدى التغيير إلى انخفاض الأداء في ظل أحمال العمل التي تتناوب بشكل متكرر بين حالات الخمول والانشغال. على سبيل المثال، بعد تعطيل الحل البديل، زاد متوسط ​​درجات اختبار tbench من 32191 ميجابايت/ثانية إلى 33805 ميجابايت/ثانية.
    • تمت إزالة التعليمات البرمجية ذات الاستدلالات من برنامج جدولة المهام، مما يضمن ترحيل العمليات إلى وحدات المعالجة المركزية الأقل تحميلًا، مع الأخذ في الاعتبار المكاسب المتوقعة في استهلاك الطاقة. خلص المطورون إلى أن الاستدلال لم يكن مفيدًا بما فيه الكفاية وأنه كان من الأسهل إزالته وترحيل العمليات دون تقييم إضافي كلما كان من المحتمل أن يؤدي هذا الترحيل إلى انخفاض استهلاك الطاقة (على سبيل المثال، عندما تكون وحدة المعالجة المركزية المستهدفة في مستوى طاقة أقل). أدى تعطيل الاستدلال إلى انخفاض استهلاك الطاقة عند أداء المهام المكثفة، على سبيل المثال، في اختبار فك تشفير الفيديو، انخفض استهلاك الطاقة بنسبة 5.6٪.
    • تم تحسين توزيع المهام عبر مراكز وحدة المعالجة المركزية على الأنظمة الكبيرة، مما أدى إلى تحسين الأداء لأنواع معينة من أعباء العمل.
    • توفر واجهة الإدخال/الإخراج غير المتزامنة io_uring علامة جديدة، IORING_RECV_MULTISHOT، والتي تسمح لك باستخدام وضع اللقطات المتعددة مع استدعاء نظام recv() لإجراء عمليات قراءة متعددة من نفس مقبس الشبكة في وقت واحد. يدعم io_uring أيضًا النقل عبر الشبكة دون تخزين مؤقت متوسط ​​(نسخة صفرية).
    • تم تنفيذ القدرة على وضع برامج BPF المرتبطة بـ uprobe في حالة السكون. يضيف BPF أيضًا مكررًا جديدًا ksym للعمل مع جداول رموز kernel.
    • تمت إزالة واجهة "efivars" القديمة في sysfs، المخصصة للوصول إلى متغيرات تمهيد UEFI، (يتم الآن استخدام efivars Virtual FS عالميًا للوصول إلى بيانات EFI).
    • تحتوي الأداة المساعدة للأداء على تقارير جديدة لتحليل تعارضات القفل والوقت الذي يقضيه المعالج في تنفيذ مكونات kernel.
    • تمت إزالة الإعداد CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3، مما سمح ببناء النواة في وضع التحسين "-O3". تجدر الإشارة إلى أنه يمكن إجراء تجارب أوضاع التحسين عن طريق تمرير العلامات أثناء التجميع ("make KCFLAGS=-O3")، وإضافة إعداد إلى Kconfig يتطلب تحديد مواصفات أداء متكررة، مما يوضح أن فك الحلقة المستخدمة في وضع "-O3" يعطي فائدة مقارنة بمستوى التحسين "-O2".
    • تمت إضافة واجهة debugfs للحصول على معلومات حول تشغيل "تقليصات الذاكرة" الفردية (يتم استدعاء المعالجات عندما لا تكون هناك ذاكرة كافية وتعبئة هياكل بيانات kernel لتقليل استهلاك الذاكرة).
    • بالنسبة لبنيتي OpenRISC وLoongArch، يتم توفير الدعم لناقل PCI.
    • بالنسبة لبنية RISC-V، تم تنفيذ امتداد "Zicbom" لإدارة الأجهزة ذات DMA غير المتماسكة مع ذاكرة التخزين المؤقت.
  • المحاكاة الافتراضية والأمن
    • تمت إضافة آلية التحقق من RV (التحقق من وقت التشغيل) للتحقق من التشغيل الصحيح على أنظمة موثوقة للغاية تضمن عدم حدوث أي أعطال. يتم إجراء التحقق في وقت التشغيل عن طريق ربط المعالجات بنقاط التتبع التي تتحقق من التقدم الفعلي للتنفيذ مقابل نموذج محدد مرجعي محدد مسبقًا للجهاز الذي يحدد السلوك المتوقع للنظام. يتم وضع التحقق باستخدام النموذج في وقت التشغيل باعتباره طريقة أكثر خفة الوزن وسهلة التنفيذ لتأكيد صحة التنفيذ على الأنظمة المهمة، مكملاً لطرق التحقق من الموثوقية الكلاسيكية. من بين مزايا RV هي القدرة على توفير التحقق الصارم دون تنفيذ منفصل للنظام بأكمله بلغة النمذجة، فضلا عن الاستجابة المرنة للأحداث غير المتوقعة.
    • مكونات kernel متكاملة لإدارة الجيوب استنادًا إلى تقنية Intel SGX2 (Software Guard eXtensions)، التي تسمح للتطبيقات بتنفيذ التعليمات البرمجية في مناطق مشفرة معزولة من الذاكرة، والتي يكون الوصول إليها محدودًا لبقية النظام. يتم دعم تقنية Intel SGX2 في شرائح Intel Ice Lake وGemini Lake، وتختلف عن Intel SGX1 في التعليمات الإضافية لإدارة الذاكرة الديناميكية للجيوب.
    • بالنسبة إلى بنية x86، تم تنفيذ القدرة على نقل البذور لمولد الأرقام العشوائية الزائفة من خلال إعدادات أداة تحميل التشغيل.
    • تتمتع وحدة SafeSetID LSM الآن بالقدرة على إدارة التغييرات التي تم إجراؤها من خلال استدعاء setgroups(). يسمح SafeSetID لخدمات النظام بإدارة المستخدمين بشكل آمن دون تصعيد الامتيازات (CAP_SETUID) ودون الحصول على امتيازات الجذر.
    • تمت إضافة دعم لتشفير كتلة ARIA.
    • توفر وحدة إدارة الأمان المستندة إلى BPF القدرة على إرفاق معالجات بالعمليات الفردية ومجموعات العمليات (cgroups).
    • تمت إضافة آلية مع تطبيق المراقبة لاكتشاف توقف أنظمة الضيف بناءً على مراقبة نشاط vCPU.
  • النظام الفرعي للشبكة
    • تمت إضافة معالجات لإنشاء ملفات تعريف الارتباط SYN والتحقق منها إلى نظام BPF الفرعي. تمت إضافة أيضًا مجموعة من الوظائف (kfunc) للوصول إلى حالة الاتصالات وتغييرها.
    • أضافت المجموعة اللاسلكية دعمًا لآلية MLO (تشغيل متعدد الارتباطات)، المحددة في مواصفات WiFi 7 وتسمح للأجهزة باستقبال البيانات وإرسالها في وقت واحد باستخدام نطاقات وقنوات تردد مختلفة، على سبيل المثال، لإنشاء عدة قنوات اتصال في وقت واحد بين شبكة واحدة. نقطة الوصول إلى جهاز العميل.
    • تم تحسين أداء بروتوكول TLS المدمج في النواة.
    • تمت إضافة خيار سطر أوامر kernel "hostname =" للسماح بتعيين اسم المضيف مبكرًا في عملية التمهيد، قبل بدء تشغيل مكونات مساحة المستخدم.
  • معدات
    • يوفر برنامج التشغيل i915 (Intel) الدعم لبطاقات الفيديو المنفصلة Intel Arc (DG2/Alchemist) A750 وA770. تم اقتراح تنفيذ أولي لدعم وحدات معالجة الرسوميات Intel Ponte Vecchio (Xe-HPC) وMeteor Lake. يستمر العمل لدعم منصة Intel Raptor Lake.
    • يستمر برنامج التشغيل amdgpu في تقديم الدعم لمنصات AMD RDNA3 (RX 7000) وCDNA (Instinct).
    • قام برنامج التشغيل Nouveau بإعادة صياغة رمز الدعم لمحركات العرض GPU NVIDIA nv50.
    • تمت إضافة برنامج تشغيل logicvc DRM جديد لشاشات LogiCVC.
    • يدعم برنامج التشغيل v3d (لوحدة معالجة الرسومات Broadcom Video Core) لوحات Raspberry Pi 4.
    • تمت إضافة دعم لوحدة معالجة الرسومات Qualcomm Adreno 619 إلى برنامج تشغيل msm.
    • تمت إضافة دعم لـ ARM Mali Valhall GPU إلى برنامج تشغيل Panfrost.
    • تمت إضافة الدعم الأولي لمعالجات Qualcomm Snapdragon 8cx Gen3 المستخدمة في أجهزة الكمبيوتر المحمولة Lenovo ThinkPad X13s.
    • تمت إضافة برامج تشغيل الصوت لمنصات AMD Raphael (Ryzen 7000) وAMD Jadeite وIntel Meteor Lake وMediatek MT8186.
    • تمت إضافة دعم لمسرعات التعلم الآلي Intel Habana Gaudi 2.
    • تمت إضافة دعم لـ ARM SoC Allwinner H616 وNXP i.MX93 وSunplus SP7021 وNuvoton NPCM8XX وMarvell Prestera 98DX2530 وGoogle Chameleon v3.

وفي الوقت نفسه، شكلت مؤسسة البرمجيات الحرة لأمريكا اللاتينية نسخة من kernel 6.0 المجاني تمامًا - Linux-libre 6.0-gnu، خالية من عناصر البرامج الثابتة وبرامج التشغيل التي تحتوي على مكونات أو أقسام غير حرة من التعليمات البرمجية، ونطاقها هو محدودة من قبل الشركة المصنعة. يعمل الإصدار الجديد على تعطيل استخدام النقط في برنامج تشغيل الصوت CS35L41 HD وبرنامج تشغيل UCSI لوحدات التحكم الدقيقة STM32G0. تم تنظيف ملفات DTS الخاصة بشرائح Qualcomm وMediaTek. تمت إعادة صياغة تعطيل النقط في برنامج تشغيل MediaTek MT76. تم تحديث كود تنظيف النقطة الكبيرة في برامج التشغيل والأنظمة الفرعية AMDGPU وAdreno وTegra VIC وNetronome NFP وHabanalabs Gaudi2. توقف عن تنظيف برنامج تشغيل VXGE، الذي تمت إزالته من النواة.

المصدر: opennet.ru

إضافة تعليق