لینکس کرنل 5.14۔

لینکس کرنل 5.14۔

دو ماہ کی ترقی کے بعد، لینس ٹوروالڈس متعارف کرایا دانا کی رہائی لینکس 5.14. سب سے زیادہ قابل ذکر تبدیلیوں میں: نئی quotactl_fd() اور memfd_secret() سسٹم کالز، ide اور raw ڈرائیورز کو ہٹانا، cgroup کے لیے نیا I/O ترجیحی کنٹرولر، SCHED_CORE ٹاسک شیڈولنگ موڈ، تصدیق شدہ BPF پروگرام لوڈرز بنانے کے لیے انفراسٹرکچر۔

نئے ورژن میں 15883 ڈویلپرز کی جانب سے 2002 اصلاحات شامل ہیں، پیچ کا سائز 69 MB ہے (تبدیلیوں سے 12580 فائلیں متاثر ہوئیں، 861501 کوڈ کی لائنیں شامل کی گئیں، 321654 لائنوں کو حذف کر دیا گیا)۔ 47 میں متعارف کرائی گئی تمام تبدیلیوں میں سے تقریباً 5.14% کا تعلق ڈیوائس ڈرائیورز سے ہے، تقریباً 14% تبدیلیاں ہارڈ ویئر آرکیٹیکچرز کے لیے مخصوص کوڈ کو اپ ڈیٹ کرنے سے متعلق ہیں، 13% کا تعلق نیٹ ورکنگ اسٹیک سے ہے، 3% فائل سسٹمز سے متعلق ہے، اور 3% تبدیلیاں اندرونی کرنل سب سسٹم سے متعلق ہیں۔

اہم بدعات:

  • ڈسک سب سسٹم، ان پٹ/آؤٹ پٹ اور فائل سسٹم:
    • سی گروپ کے لیے لاگو کیا نیا I/O ترجیحی کنٹرولر - rq-qos، جو ہر سی گروپ کے ممبران کے ذریعہ تیار کردہ ڈیوائسز کو بلاک کرنے کی درخواستوں کی پروسیسنگ ترجیح کو کنٹرول کر سکتا ہے۔ نیا ترجیحی کنٹرولر سپورٹ ایم کیو ڈیڈ لائن I/O شیڈولر میں شامل کر دیا گیا ہے۔
    • ext4 فائل سسٹم پر لاگو کیا نئی ioctl کمانڈ EXT4_IOC_CHECKPOINT، جو لاگ ان اور منسلک بفرز سے تمام زیر التواء لین دین کو ڈسک پر مجبور کرتی ہے، اور لاگ ان اسٹوریج کے ذریعے استعمال ہونے والے علاقے کو بھی اوور رائٹ کرتی ہے۔ تبدیلی فائل سسٹم سے معلومات کے لیک ہونے کو روکنے کے اقدام کے حصے کے طور پر تیار کی گئی تھی۔
    • Btrfs میں بنایا کارکردگی کی اصلاح: fsync کے عمل کے دوران توسیعی صفات کی غیر ضروری لاگنگ کو ختم کرنے سے، توسیعی صفات کے ساتھ انتہائی کارروائیوں کی کارکردگی میں 17% تک اضافہ ہوا۔ مزید برآں، جب ٹرم آپریشنز انجام دیتے ہیں جو توسیع کو متاثر نہیں کرتے ہیں، مکمل مطابقت پذیری کو غیر فعال کر دیا جاتا ہے، جس سے آپریشن کا وقت 12% کم ہو جاتا ہے۔ FS کو چیک کرتے وقت I/O بینڈوتھ کو محدود کرنے کے لیے sysfs میں ایک ترتیب شامل کی گئی ہے۔ ڈیوائس کے آپریشنز کا سائز تبدیل کرنے اور ڈیلیٹ کرنے کے لیے ioctl کالز شامل کی گئی ہیں۔
    • XFS میں دوبارہ کام کیا ایک بفر کیشے کا نفاذ، جو بیچ موڈ میں میموری کے صفحات کو مختص کرنے میں منتقل کیا جاتا ہے۔ کیشے کی کارکردگی میں بہتری؛
    • F2FS نے صرف پڑھنے کے موڈ میں کام کرنے کے لیے ایک آپشن شامل کیا اور بے ترتیب پڑھنے کی کارکردگی کو بہتر بنانے کے لیے ایک کمپریسڈ بلاک کیشنگ موڈ (compress_cache) کو نافذ کیا۔ mmap() آپریشن کا استعمال کرتے ہوئے میموری میں میپ کی گئی فائلوں کو کمپریس کرنے کے لیے سپورٹ کو لاگو کیا گیا ہے۔ ماسک کے ذریعے فائل کمپریشن کو منتخب طور پر غیر فعال کرنے کے لیے، ایک نیا ماؤنٹ آپشن nocompress تجویز کیا گیا ہے۔
    • کچھ ڈیجیٹل کیمروں کے اسٹوریج کے ساتھ مطابقت کو بہتر بنانے کے لیے exFAT ڈرائیور میں کام کیا گیا ہے۔
    • سسٹم کال شامل کی گئی۔ quotactl_fd()، جو آپ کو کوٹہ کا انتظام کرنے کی اجازت دیتا ہے کسی خاص ڈیوائس فائل کے ذریعے نہیں، بلکہ فائل سسٹم سے وابستہ ایک فائل ڈسکرپٹر کی وضاحت کر کے جس کے لیے کوٹہ لاگو کیا گیا ہے۔
    • IDE انٹرفیس والے بلاک ڈیوائسز کے پرانے ڈرائیورز کو کرنل سے ہٹا دیا گیا ہے؛ ان کی جگہ طویل عرصے سے libata سب سسٹم نے لے لی ہے۔ پرانے آلات کے لیے سپورٹ کو مکمل طور پر برقرار رکھا گیا ہے، تبدیلیاں صرف پرانے ڈرائیوروں کو استعمال کرنے کی صلاحیت سے متعلق ہیں، جب کہ ڈرائیوز کو /dev/hd* کہا جاتا تھا، نہ کہ /dev/sd*؛
    • "خام" ڈرائیور کو دانا سے ہٹا دیا گیا ہے، جو /dev/raw انٹرفیس کے ذریعے بلاک ڈیوائسز تک غیر بفر رسائی فراہم کرتا ہے۔ O_DIRECT پرچم کا استعمال کرتے ہوئے ایپلی کیشنز میں اس فعالیت کو طویل عرصے سے لاگو کیا گیا ہے؛
  • میموری اور سسٹم کی خدمات:
    • ٹاسک شیڈولر میں ایک نیا شیڈولنگ موڈ لاگو کیا گیا ہے۔ SCHED_CORE، جو آپ کو کنٹرول کرنے کی اجازت دیتا ہے کہ ایک ہی CPU کور پر کون سے عمل ایک ساتھ چل سکتے ہیں۔ ہر عمل کو ایک کوکی شناخت کنندہ تفویض کیا جا سکتا ہے جو عمل کے درمیان اعتماد کے دائرہ کار کی وضاحت کرتا ہے (مثال کے طور پر، ایک ہی صارف یا کنٹینر سے تعلق رکھتا ہے)۔ کوڈ پر عمل درآمد کو منظم کرتے وقت، شیڈیولر اس بات کو یقینی بنا سکتا ہے کہ ایک سی پی یو کور صرف ایک ہی مالک کے ساتھ منسلک عملوں کے درمیان اشتراک کیا گیا ہے، جس کا استعمال قابل اعتماد اور ناقابل اعتماد کاموں کو اسی SMT (ہائپر تھریڈنگ) تھریڈ پر چلنے سے روک کر کچھ سپیکٹر حملوں کو روکنے کے لیے کیا جا سکتا ہے۔ ;
    • cgroup میکانزم کے لیے، کِل آپریشن کے لیے سپورٹ کو لاگو کیا گیا ہے، جو آپ کو ورچوئل فائل cgroup.kill پر "1" لکھ کر گروپ سے منسلک تمام پراسیسز کو ایک ساتھ ختم کرنے کی اجازت دیتا ہے (SIGKILL بھیجیں)۔
    • اسپلٹ لاک ("اسپلٹ لاکس") کی کھوج کے جواب دینے سے متعلق توسیعی صلاحیتیں جو میموری میں غیر منسلک ڈیٹا تک رسائی کے وقت ہوتی ہیں اس حقیقت کی وجہ سے کہ جوہری ہدایات پر عمل کرتے وقت، ڈیٹا دو CPU کیش لائنوں کو عبور کرتا ہے۔ اس طرح کی بلاکنگ کارکردگی میں نمایاں کمی کا باعث بنتی ہے، اس لیے اس سے قبل اس ایپلیکیشن کو زبردستی ختم کرنا ممکن تھا جس کی وجہ سے بلاکنگ ہوئی تھی۔ نئی ریلیز میں کرنل کمانڈ لائن پیرامیٹر "split_lock_detect=ratelimit:N" شامل کیا گیا ہے، جو آپ کو فی سیکنڈ لاکنگ آپریشنز کی شرح پر سسٹم کی وسیع حد کی وضاحت کرنے کی اجازت دیتا ہے، جس سے تجاوز کرنے کے بعد کوئی بھی عمل جو اسپلٹ لاک کا ذریعہ بنے گا ختم کرنے کے بجائے 20 ایم ایس کے لیے رکنے پر مجبور ہونا؛
    • cgroup bandwidth controller CFS (CFS bandwidth controller)، جو اس بات کا تعین کرتا ہے کہ ہر cgroup کے لیے پروسیسر کا کتنا وقت مختص کیا جا سکتا ہے، اس میں یہ صلاحیت ہے کہ وہ کارروائی کی ایک دی گئی مدت کے ذریعے محدود حدوں کو متعین کرے، جو تاخیر سے متعلق حساس بوجھ کے بہتر ضابطے کی اجازت دیتا ہے۔ مثال کے طور پر، cpu.cfs_quota_us کو 50000 اور cpu.cfs_period_us کو 100000 پر سیٹ کرنے سے عمل کے ایک گروپ کو ہر 100ms پر CPU کا 50ms وقت ضائع کرنے کی اجازت ملے گی۔
    • شامل کیا BPF پروگرام لوڈرز بنانے کے لیے ابتدائی بنیادی ڈھانچہ، جو مزید صرف BPF پروگراموں کو ڈاؤن لوڈ کرنے کی اجازت دے گا جس پر ایک قابل اعتماد ڈیجیٹل کلید کے ساتھ دستخط کیے گئے ہیں۔
    • ایک نیا futex آپریشن FUTEX_LOCK_PI2 شامل کیا گیا ہے، جو ٹائم آؤٹ کا حساب لگانے کے لیے ایک مونوٹونک ٹائمر کا استعمال کرتا ہے، جو نظام کے سلیپ موڈ میں گزارے گئے وقت کو مدنظر رکھتا ہے۔
    • RISC-V فن تعمیر کے لیے، بڑے میموری صفحات (شفاف بھاری صفحات) کے لیے سپورٹ اور استعمال کرنے کی صلاحیت KFENCE میموری کے ساتھ کام کرتے وقت غلطیوں کی نشاندہی کرنا؛
    • madvise() سسٹم کال میں، جو پروسیس میموری مینجمنٹ کو بہتر بنانے کا ایک ذریعہ فراہم کرتا ہے، شامل کیا MADV_POPULATE_READ اور MADV_POPULATE_WRITE جھنڈے تمام میموری کے صفحات پر "صفحہ کی خرابی" پیدا کرنے کے لیے، پڑھنے یا لکھنے کے آپریشنز کے لیے میپ کیے گئے، اصل پڑھنے یا لکھنے (پہلے سے طے شدہ) کیے بغیر۔ جھنڈوں کا استعمال پروگرام کی تکمیل میں تاخیر کو کم کرنے کے لیے کارآمد ثابت ہو سکتا ہے، تمام غیر مختص صفحات کے لیے "پیج فالٹ" ہینڈلر کے ایک ساتھ عمل درآمد کی بدولت، ان تک حقیقی رسائی کا انتظار کیے بغیر؛
    • یونٹ ٹیسٹنگ سسٹم میں کنیت شامل کیا QEMU ماحول میں ٹیسٹ چلانے کے لیے تعاون؛
    • نئے ٹریسر شامل کیے گئے: "osnoise" انٹرپٹ ہینڈلنگ کی وجہ سے ایپلی کیشن میں تاخیر کو ٹریک کرنے کے لیے، اور ٹائمر سگنل سے جاگتے وقت تاخیر کے بارے میں تفصیلی معلومات ظاہر کرنے کے لیے" ٹائمرلیٹ؛
  • ورچوئلائزیشن اور سیکورٹی:
    • شامل کیا سسٹم کال memfd_secret()، جو آپ کو ایک الگ تھلگ ایڈریس اسپیس میں ایک نجی میموری ایریا بنانے کی اجازت دیتا ہے، جو صرف مالک کے عمل کو نظر آتا ہے، دوسرے عمل میں ظاہر نہیں ہوتا ہے اور دانا تک براہ راست قابل رسائی نہیں ہوتا ہے۔
    • seccomp سسٹم کال فلٹرنگ سسٹم میں، لاک ہینڈلرز کو یوزر اسپیس میں منتقل کرتے وقت، کسی الگ تھلگ کام کے لیے فائل ڈسکرپٹر بنانے کے لیے ایک ایٹم آپریشن کا استعمال کرنا اور سسٹم کال پر کارروائی کرتے وقت اسے واپس کرنا ممکن ہے۔ مجوزہ آپریشن حل کرتا ہے۔ مسئلہ سگنل آنے پر صارف کی جگہ میں ہینڈلر کی رکاوٹ کے ساتھ؛
    • شامل کیا نیا میکانزم یوزر آئی ڈی نیم اسپیس میں وسائل کی محدودیت کا انتظام کرنے کے لیے، جو کہ "یوزر نیم اسپیس" میں صارف کے لیے انفرادی rlimit کاؤنٹرز کو پابند کرتا ہے۔ تبدیلی عام وسائل کے کاؤنٹرز کے استعمال سے مسئلہ حل کرتی ہے جب ایک صارف مختلف کنٹینرز میں عمل چلاتا ہے۔
    • ARM64 سسٹمز کے لیے KVM ہائپر وائزر نے مہمان سسٹمز میں MTE (MemTag، Memory Tagging Extension) ایکسٹینشن کو استعمال کرنے کی صلاحیت کو شامل کیا ہے، جو آپ کو ہر میموری ایلوکیشن آپریشن کے لیے ٹیگز کو باندھنے کی اجازت دیتا ہے اور اس کے استحصال کو روکنے کے لیے پوائنٹرز کے درست استعمال کی جانچ پڑتال کا اہتمام کرتا ہے۔ پہلے سے آزاد میموری بلاکس تک رسائی، اوور فلو بفرز، ابتداء سے پہلے رسائی اور موجودہ سیاق و سباق سے باہر استعمال کی وجہ سے ہونے والی کمزوریاں؛
    • ARM64 پلیٹ فارم کی طرف سے فراہم کردہ پوائنٹر توثیق کو اب دانا اور صارف کی جگہ کے لیے الگ سے کنفیگر کیا جا سکتا ہے۔ ٹیکنالوجی آپ کو ڈیجیٹل دستخطوں کا استعمال کرتے ہوئے واپسی کے پتوں کی تصدیق کے لیے خصوصی ARM64 ہدایات استعمال کرنے کی اجازت دیتی ہے جو پوائنٹر کے ہی غیر استعمال شدہ اوپری بٹس میں محفوظ ہوتے ہیں۔
    • یوزر موڈ لینکس میں شامل کیا ورچوئل PCI بس کے ساتھ PCI ڈیوائسز کے لیے ڈرائیورز کے استعمال کے لیے سپورٹ، PCI-over-virtio ڈرائیور کے ذریعے لاگو کیا جاتا ہے۔
    • x86 سسٹمز کے لیے، virtio-iommu پیرا ورچوئلائزڈ ڈیوائس کے لیے اضافی تعاون، جو آپ کو IOMMU کی درخواستیں بھیجنے کی اجازت دیتا ہے، جیسے کہ ATTACH، DETACH، MAP اور UNMAP، بغیر میموری پیج ٹیبل کی نقل کیے ورٹیو ٹرانسپورٹ پر؛
    • Intel CPUs کے لیے، Skylake خاندان سے لے کر Coffee Lake تک، Intel TSX (Transactional Synchronization Extensions) کا استعمال، جو غیر ضروری مطابقت پذیری کی کارروائیوں کو متحرک طور پر ختم کر کے ملٹی تھریڈ ایپلی کیشنز کی کارکردگی کو بہتر بنانے کے لیے ٹولز فراہم کرتا ہے، بطور ڈیفالٹ غیر فعال ہے۔ حملوں کے امکان کی وجہ سے ایکسٹینشنز کو غیر فعال کر دیا گیا ہے۔ زومبی لوڈ, تھرڈ پارٹی چینلز کے ذریعے معلومات کے رساو میں ہیرا پھیری جو کہ آپریشنز کے غیر مطابقت پذیر رکاوٹ کے میکانزم کے آپریشن کے دوران ہوتا ہے (TAA, TSX Asynchronous Abort)؛
  • نیٹ ورک سب سسٹم:
    • MPTCP (MultiPath TCP) کے بنیادی حصے میں مسلسل انضمام، TCP پروٹوکول کی توسیع جس میں مختلف IP پتوں سے منسلک مختلف نیٹ ورک انٹرفیس کے ذریعے بیک وقت کئی راستوں پر پیکٹس کی ترسیل کے ساتھ TCP کنکشن کے آپریشن کو منظم کیا جا سکتا ہے۔ نئے شمارے میں شامل کیا IPv4 اور IPv6 (ملٹی پاتھ ہیش پالیسی) کے لیے آپ کی اپنی ٹریفک ہیشنگ پالیسیاں ترتیب دینے کا ایک طریقہ کار، صارف کی جگہ سے اس بات کا تعین کرنا ممکن بناتا ہے کہ پیکٹ میں کون سے فیلڈز، بشمول انکیپسولیٹڈ، استعمال کیے جائیں گے جب ہیش کا حساب لگاتے ہوئے جو راستے کے انتخاب کا تعین کرتا ہے۔ پیکٹ کے لیے؛
    • ساکٹ سپورٹ کو ورچوئل ٹرانسپورٹ ورٹیو میں شامل کیا گیا ہے۔ SOCK_SEQPACKET۔ (ڈیٹاگرام کی منظم اور قابل اعتماد ترسیل)؛
    • SO_REUSEPORT ساکٹ میکانزم کی صلاحیتوں کو بڑھا دیا گیا ہے، جو کئی سننے والے ساکٹوں کو ایک ہی وقت میں ایک بندرگاہ سے منسلک ہونے کی اجازت دیتا ہے تاکہ SO_REUSEPORT کے ذریعے منسلک تمام ساکٹ میں بیک وقت آنے والی درخواستوں کی تقسیم کے ساتھ کنکشن حاصل کیا جا سکے، جو ملٹی تھریڈڈ سرور ایپلی کیشن کی تخلیق کو آسان بناتا ہے۔ . نئے ورژن میں شامل کیا ابتدائی طور پر منتخب کردہ ساکٹ کے ذریعہ درخواست پر کارروائی کرتے وقت ناکامی کی صورت میں کنٹرول کو دوسرے ساکٹ میں منتقل کرنے کا مطلب ہے (سروسز کو دوبارہ شروع کرتے وقت انفرادی کنکشن کے نقصان کا مسئلہ حل کرتا ہے)؛
  • سامان:
    • amdgpu ڈرائیور میں لاگو کیا GPUs کی نئی AMD Radeon RX 6000 سیریز کے لیے سپورٹ، جس کا کوڈ نام ہے "Beige Goby" (Navi 24) اور "Yellow Carp"، نیز Aldebaran GPU (gfx90a) اور وان گوگ اے پی یو کے لیے بہتر سپورٹ۔ متعدد ای ڈی پی پینلز کے ساتھ بیک وقت کام کرنے کی صلاحیت کو شامل کیا۔ APU Renoir کے لیے، ویڈیو میموری (TMZ، ٹرسٹڈ میموری زون) میں انکرپٹڈ بفرز کے ساتھ کام کرنے کے لیے سپورٹ نافذ کر دیا گیا ہے۔ ہاٹ ان پلگ گرافکس کارڈز کے لیے معاونت شامل کی گئی۔ Radeon RX 6000 (Navi 2x) GPUs اور پرانے AMD GPUs کے لیے، ASPM (ایکٹو اسٹیٹ پاور مینجمنٹ) پاور سیونگ میکانزم کے لیے سپورٹ بذریعہ ڈیفالٹ فعال ہے، جو پہلے صرف Navi 1x، Vega اور Polaris GPUs کے لیے فعال کیا گیا تھا۔
    • AMD چپس کے لیے، مشترکہ ورچوئل میموری (SVM، مشترکہ ورچوئل میموری) کے لیے سپورٹ HMM (Heterogeneous میموری مینجمنٹ) سب سسٹم کی بنیاد پر شامل کیا گیا ہے، جو اپنے میموری مینجمنٹ یونٹس (MMU، میموری مینجمنٹ یونٹ) کے ساتھ آلات کے استعمال کی اجازت دیتا ہے۔ جو مین میموری تک رسائی حاصل کر سکتا ہے۔ HMM کا استعمال کرتے ہوئے، آپ GPU اور CPU کے درمیان ایک مشترکہ ایڈریس اسپیس کو منظم کر سکتے ہیں، جس میں GPU عمل کی مرکزی میموری تک رسائی حاصل کر سکتا ہے۔
    • ابتدائی ٹیکنالوجی کی حمایت شامل کی AMD اسمارٹ شفٹ، جو گیمنگ، ویڈیو ایڈیٹنگ اور 3D رینڈرنگ کے دوران کارکردگی کو بڑھانے کے لیے چپ سیٹ اور AMD گرافکس کارڈ کے ساتھ لیپ ٹاپ پر CPU اور GPU کے بجلی کے استعمال کے پیرامیٹرز کو متحرک طور پر تبدیل کرتا ہے۔
    • انٹیل ویڈیو کارڈز کے لیے i915 ڈرائیور میں شامل Intel Alderlake P چپس کے لیے سپورٹ؛
    • Hyper-V ورچوئل گرافکس اڈاپٹر کے لیے شامل drm/hyperv ڈرائیور؛
    • شامل کیا simpledrm گرافکس ڈرائیور جو کہ آؤٹ پٹ کے لیے UEFI فرم ویئر یا BIOS کے ذریعے فراہم کردہ EFI-GOP یا VESA فریم بفر استعمال کرتا ہے۔ ڈرائیور کا بنیادی مقصد بوٹ کے ابتدائی مراحل کے دوران گرافیکل آؤٹ پٹ کی صلاحیتیں فراہم کرنا ہے، اس سے پہلے کہ مکمل DRM ڈرائیور استعمال کیا جا سکے۔ ڈرائیور کو ایسے سامان کے عارضی حل کے طور پر بھی استعمال کیا جا سکتا ہے جن کے پاس ابھی تک مقامی DRM ڈرائیور نہیں ہیں۔
    • شامل کیا آل ان ون کمپیوٹر سپورٹ راسبری پیئ 400;
    • ڈیل لیپ ٹاپ میں شامل کیمرہ اور مائیکروفون ہارڈویئر سوئچ کو سپورٹ کرنے کے لیے ڈیل-wmi-پرائیویسی ڈرائیور شامل کیا گیا۔
    • Lenovo لیپ ٹاپ کے لیے شامل کیا sysfs /sys/class/firmware-attributes/ کے ذریعے BIOS پیرامیٹرز کو تبدیل کرنے کے لیے WMI انٹرفیس؛
    • توسیع USB4 انٹرفیس والے آلات کے لیے سپورٹ؛
    • شامل کیا ساؤنڈ کارڈز اور کوڈیکس AmLogic SM1 TOACODEC، Intel AlderLake-M، NXP i.MX8، NXP TFA1، TDF9897، Rockchip RK817، Qualcomm Quinary MI2 اور Texas Instruments TAS2505 کے لیے سپورٹ۔ HP اور ASUS لیپ ٹاپس پر بہتر آڈیو سپورٹ۔ شامل کیا گیا۔ USB انٹرفیس والے آلات پر آڈیو چلنا شروع ہونے سے پہلے تاخیر کو کم کرنے کے لیے پیچ۔

ماخذ – opennet.ru

ماخذ: linux.org.ru