لینکس کرنل ریلیز 5.14

دو ماہ کی ترقی کے بعد، Linus Torvalds نے Linux kernel 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 اور فائل سسٹم
    • ایک نیا I/O ترجیحی کنٹرولر cgroups، rq-qos کے لیے لاگو کیا گیا ہے، جو کہ ہر cgroup کے اراکین کی طرف سے تیار کردہ آلات کو بلاک کرنے کی درخواستوں کی پروسیسنگ ترجیح کو کنٹرول کر سکتا ہے۔ نیا ترجیحی کنٹرولر سپورٹ ایم کیو ڈیڈ لائن 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/raw انٹرفیس کے ذریعے بلاک ڈیوائسز تک غیر بفر رسائی فراہم کرتا ہے۔ یہ فعالیت طویل عرصے سے O_DIRECT پرچم کا استعمال کرتے ہوئے ایپلی کیشنز میں لاگو کی گئی ہے۔
  • میموری اور سسٹم کی خدمات
    • ٹاسک شیڈیولر ایک نیا شیڈیولنگ موڈ، SCHED_CORE نافذ کرتا ہے، جو آپ کو یہ کنٹرول کرنے کی اجازت دیتا ہے کہ ایک ہی CPU کور پر کون سے عمل کو ایک ساتھ انجام دیا جا سکتا ہے۔ ہر عمل کو ایک کوکی شناخت کنندہ تفویض کیا جا سکتا ہے جو عمل کے درمیان اعتماد کے دائرہ کار کی وضاحت کرتا ہے (مثال کے طور پر، ایک ہی صارف یا کنٹینر سے تعلق رکھتا ہے)۔ کوڈ پر عمل درآمد کو منظم کرتے وقت، شیڈیولر اس بات کو یقینی بنا سکتا ہے کہ ایک سی پی یو کور صرف ایک ہی مالک کے ساتھ منسلک عملوں کے درمیان شیئر کیا گیا ہے، جس کا استعمال ایک ہی SMT (ہائپر تھریڈنگ) تھریڈ پر قابل اعتماد اور ناقابل اعتماد کاموں کو چلنے سے روک کر کچھ سپیکٹر حملوں کو روکنے کے لیے کیا جا سکتا ہے۔ .
    • سی گروپ کے لیے، کِل آپریشن کے لیے سپورٹ نافذ کیا گیا ہے، جو آپ کو ورچوئل فائل 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 ماحول میں ٹیسٹ چلانے کے لیے تعاون شامل کیا ہے۔
    • نئے ٹریسرز کو شامل کیا گیا ہے: "اوسنوائز" مداخلت کے ہینڈلنگ کی وجہ سے ایپلی کیشن میں تاخیر کو ٹریک کرنے کے لیے، اور ٹائمر سگنل سے جاگتے وقت تاخیر کے بارے میں تفصیلی معلومات ظاہر کرنے کے لیے "ٹائمرلیٹ"۔
  • ورچوئلائزیشن اور سیکیورٹی
    • memfd_secret() سسٹم کال کو الگ تھلگ ایڈریس اسپیس میں پرائیویٹ میموری ایریا بنانے کے لیے شامل کیا گیا ہے، جو صرف مالکانہ عمل کو نظر آتا ہے، دوسرے پروسیس سے منعکس نہیں ہوتا، اور براہ راست کرنل تک رسائی نہیں کرتا۔
    • seccomp سسٹم کال فلٹرنگ سسٹم میں، بلاکنگ ہینڈلرز کو یوزر اسپیس میں منتقل کرتے وقت، کسی الگ تھلگ کام کے لیے فائل ڈسکرپٹر بنانے اور سسٹم کال پر کارروائی کرتے وقت اسے واپس کرنے کے لیے واحد ایٹمک آپریشن کا استعمال ممکن ہے۔ مجوزہ آپریشن سگنل کے آنے پر صارف کی جگہ میں ہینڈلر کو روکنے کا مسئلہ حل کرتا ہے۔
    • یوزر آئی ڈی نیم اسپیس میں وسائل کی حدود کو منظم کرنے کے لیے ایک نیا طریقہ کار شامل کیا گیا ہے، جو "صارف کے نام کی جگہ" میں صارف کے لیے انفرادی حد کے کاؤنٹرز کو پابند کرتا ہے۔ تبدیلی عام وسائل کے کاؤنٹرز کے استعمال سے مسئلہ حل کرتی ہے جب ایک صارف مختلف کنٹینرز میں عمل چلاتا ہے۔
    • 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 کے لیے فعال کیا گیا تھا۔
    • اے ایم ڈی چپس کے لیے، مشترکہ ورچوئل میموری (SVM، مشترکہ ورچوئل میموری) کے لیے تعاون HMM (Heterogeneous میموری مینجمنٹ) سب سسٹم کی بنیاد پر شامل کیا گیا ہے، جو ان کے اپنے میموری مینجمنٹ یونٹس (MMU، میموری مینجمنٹ یونٹ) کے ساتھ آلات کے استعمال کی اجازت دیتا ہے۔ جو مین میموری تک رسائی حاصل کر سکتا ہے۔ خاص طور پر، HMM کا استعمال کرتے ہوئے، آپ GPU اور CPU کے درمیان ایک مشترکہ پتہ کی جگہ کو منظم کر سکتے ہیں، جس میں GPU عمل کی مرکزی میموری تک رسائی حاصل کر سکتا ہے۔
    • AMD Smart Shift ٹیکنالوجی کے لیے ابتدائی مدد شامل کی گئی، جو گیمنگ، ویڈیو ایڈیٹنگ، اور 3D رینڈرنگ کے لیے کارکردگی کو بڑھانے کے لیے AMD چپ سیٹ اور گرافکس کارڈ کے ساتھ لیپ ٹاپ پر CPU اور GPU پاور سیٹنگز کو متحرک طور پر تبدیل کرتی ہے۔
    • انٹیل گرافکس کارڈز کے لیے i915 ڈرائیور میں Intel Alderlake P چپس کے لیے تعاون شامل ہے۔
    • Hyper-V ورچوئل گرافکس اڈاپٹر کے لیے drm/hyperv ڈرائیور شامل کیا گیا۔
    • Raspberry Pi 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

نیا تبصرہ شامل کریں