Linux 5.7 కెర్నల్ విడుదల

రెండు నెలల అభివృద్ధి తర్వాత, లైనస్ టోర్వాల్డ్స్ సమర్పించిన కెర్నల్ విడుదల Linux 5.7. అత్యంత ముఖ్యమైన మార్పులలో: exFAT ఫైల్ సిస్టమ్ యొక్క కొత్త అమలు, UDP టన్నెల్‌లను రూపొందించడానికి ఒక bareudp మాడ్యూల్, ARM64 కోసం పాయింటర్ ప్రమాణీకరణ ఆధారంగా రక్షణ, LSM హ్యాండ్లర్‌లకు BPF ప్రోగ్రామ్‌లను జోడించే సామర్థ్యం, ​​Curve25519 యొక్క కొత్త అమలు, విభజన- లాక్ డిటెక్టర్, PREEMPT_RTతో BPF అనుకూలత, కోడ్‌లోని 80-అక్షరాల పంక్తి పరిమాణంపై పరిమితిని తీసివేయడం, టాస్క్ షెడ్యూలర్‌లోని CPU ఉష్ణోగ్రత సూచికలను పరిగణనలోకి తీసుకోవడం, మరొక cgroupలో ప్రక్రియలను సృష్టించడానికి క్లోన్()ని ఉపయోగించగల సామర్థ్యం, ​​రాయడం నుండి రక్షణ userfaultfdని ఉపయోగించి మెమరీకి.

కొత్త వెర్షన్‌లో 15033 డెవలపర్‌ల నుండి 1961 పరిష్కారాలు ఉన్నాయి,
ప్యాచ్ పరిమాణం - 39 MB (మార్పుల ప్రభావం 11590 ఫైల్‌లు, 570560 లైన్ల కోడ్ జోడించబడింది,
297401 అడ్డు వరుసలు తీసివేయబడ్డాయి). 41లో అందించిన మొత్తం 5.7%
మార్పులు పరికర డ్రైవర్లకు సంబంధించినవి, దాదాపు 16% మార్పులు
హార్డ్‌వేర్ ఆర్కిటెక్చర్‌లకు సంబంధించిన కోడ్‌ని అప్‌డేట్ చేయడం పట్ల వైఖరి, 13%
నెట్‌వర్క్ స్టాక్‌కు సంబంధించినది, 4% ఫైల్ సిస్టమ్‌లకు మరియు 4% అంతర్గతంగా
కెర్నల్ ఉపవ్యవస్థలు.

ప్రధాన ఆవిష్కరణలు:

  • డిస్క్ సబ్‌సిస్టమ్, I/O మరియు ఫైల్ సిస్టమ్స్
    • కొత్త exFAT డ్రైవర్ అమలు జోడించబడింది, స్థాపించారు శామ్‌సంగ్ తన ఆండ్రాయిడ్ స్మార్ట్‌ఫోన్‌ల కోసం అభివృద్ధి చేసిన ప్రస్తుత “sdfat” (2.x) కోడ్ బేస్ ఆధారంగా. కెర్నల్‌కు గతంలో జోడించిన డ్రైవర్ లెగసీ Samsung కోడ్ (వెర్షన్ 1.2.9)పై ఆధారపడి ఉంది మరియు పనితీరులో కొత్త డ్రైవర్ కంటే 10% వెనుకబడి ఉంది. మైక్రోసాఫ్ట్ తర్వాత కెర్నల్‌కు exFAT మద్దతును జోడించడం సాధ్యమైందని గుర్తుచేసుకుందాం ప్రచురించిన పబ్లిక్ స్పెసిఫికేషన్లు మరియు Linuxలో రాయల్టీ రహిత ఉపయోగం కోసం exFAT పేటెంట్లు అందుబాటులోకి వచ్చాయి.
    • Btrfs ఒక కొత్త ioctl() కమాండ్‌ను అమలు చేస్తుంది - BTRFS_IOC_SNAP_DESTROY_V2, ఇది ఉపవిభాగాన్ని దాని ఐడెంటిఫైయర్ ద్వారా తొలగించడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇన్‌లైన్ ఎక్స్‌టెండ్‌లను క్లోనింగ్ చేయడానికి పూర్తి మద్దతు అందించబడుతుంది. పునఃపంపిణీ కార్యకలాపాల కోసం రద్దు పాయింట్ల సంఖ్య విస్తరించబడింది, ఇది 'బ్యాలెన్స్ రద్దు' ఆదేశాన్ని అమలు చేస్తున్నప్పుడు ఎక్కువసేపు వేచి ఉండడాన్ని తగ్గించింది. విస్తరణలకు బ్యాక్‌లింక్‌ల నిర్ధారణ వేగవంతం చేయబడింది (ఉదాహరణకు, పరీక్ష స్క్రిప్ట్ అమలు సమయం గంట నుండి చాలా నిమిషాలకు తగ్గింది). చెట్టు యొక్క ప్రతి ఐనోడ్‌కు ఫైల్ విస్తరణలను జోడించే సామర్థ్యాన్ని జోడించారు. ఉపవిభజనలకు వ్రాసేటప్పుడు మరియు NOCOWని మినహాయించేటప్పుడు ఉపయోగించే నిరోధించే పథకం పునఃరూపకల్పన చేయబడింది. పరిధుల కోసం fsync ఎగ్జిక్యూషన్ యొక్క మెరుగైన సామర్థ్యం.
    • XFS మెటాడేటా తనిఖీని మెరుగుపరచింది మరియు క్రియాశీల విభజనల కోసం fsck. btree నిర్మాణాలను పునర్నిర్మించడం కోసం ఒక లైబ్రరీ ప్రతిపాదించబడింది, ఇది భవిష్యత్తులో xfs_repairని రీవర్క్ చేయడానికి మరియు విభజనను అన్‌మౌంట్ చేయకుండా రికవరీ అవకాశాన్ని అమలు చేయడానికి ఉపయోగించబడుతుంది.
    • SMB3 నిల్వలలో స్వాప్ విభజనను ఉంచడానికి ప్రయోగాత్మక మద్దతు CIFSకి జోడించబడింది. SMB3.1.1 స్పెసిఫికేషన్‌లో నిర్వచించబడిన readdirకి POSIX పొడిగింపులు అమలు చేయబడ్డాయి. కాష్=స్ట్రిక్ట్ మోడ్ ప్రారంభించబడినప్పుడు మరియు ప్రోటోకాల్ వెర్షన్ 64+ ఉపయోగించబడినప్పుడు 2.1KB పేజీల కోసం మెరుగైన వ్రాత పనితీరు.
    • FS EXT4 bmap మరియు iopoll నుండి iomap వినియోగానికి బదిలీ చేయబడింది.
    • F2FS zstd అల్గారిథమ్ ఉపయోగించి డేటా కంప్రెషన్ కోసం ఐచ్ఛిక మద్దతును అందిస్తుంది. డిఫాల్ట్‌గా, కుదింపు కోసం LZ4 అల్గోరిథం ఉపయోగించబడుతుంది. "chattr -c commit" కమాండ్‌కు మద్దతు జోడించబడింది. మౌంటు సమయ ప్రదర్శన అందించబడింది. కంప్రెస్డ్ బ్లాక్‌ల సంఖ్య గురించి సమాచారాన్ని పొందడానికి ioctl F2FS_IOC_GET_COMPRESS_BLOCKS జోడించబడింది. statx ద్వారా కంప్రెషన్ డేటా అవుట్‌పుట్ జోడించబడింది.
    • Ceph ఫైల్ సిస్టమ్ సర్వర్ నుండి ప్రతిస్పందన కోసం వేచి ఉండకుండా (అసమకాలిక మోడ్‌లో పని చేస్తుంది) ఫైల్ సృష్టి మరియు తొలగింపు కార్యకలాపాలను (అన్‌లింక్) స్థానికంగా నిర్వహించగల సామర్థ్యాన్ని జోడించింది. మార్పు, ఉదాహరణకు, rsync యుటిలిటీని అమలు చేస్తున్నప్పుడు పనితీరును గణనీయంగా మెరుగుపరుస్తుంది.
    • virtofsని ఒక ఉన్నత-స్థాయి ఫైల్ సిస్టమ్‌గా ఉపయోగించగల సామర్థ్యం OVERLAYFSకి జోడించబడింది.
    • తిరిగి వ్రాయబడింది VFSలో పాత్ ట్రావర్సల్ కోడ్, సింబాలిక్ లింక్ పార్సింగ్ కోడ్ రీవర్క్ చేయబడింది మరియు మౌంట్ పాయింట్ ట్రావర్సల్ ఏకీకృతం చేయబడింది.
    • unprivileged వినియోగదారులకు scsi సబ్‌సిస్టమ్‌లో అనుమతి ZBC ఆదేశాల అమలు.
    • dm_writecacheలో అమలు చేశారు max_age పరామితి ఆధారంగా కాష్‌ను క్రమంగా క్లియర్ చేసే సామర్థ్యం, ​​ఇది బ్లాక్ యొక్క గరిష్ట జీవితకాలాన్ని సెట్ చేస్తుంది.
    • dm_integrityలో జోడించారు "విస్మరించు" ఆపరేషన్‌కు మద్దతు.
    • null_blkలో జోడించారు పరీక్ష సమయంలో వైఫల్యాలను అనుకరించడానికి లోపం ప్రత్యామ్నాయానికి మద్దతు.
    • చేర్చబడింది పరికర పరిమాణం మార్పులను నిరోధించడం గురించి udev నోటిఫికేషన్‌లను పంపగల సామర్థ్యం.
  • నెట్‌వర్క్ సబ్‌సిస్టమ్
    • నెట్‌ఫిల్టర్ చేర్చబడింది మార్పులు, సబ్‌నెట్‌లు, నెట్‌వర్క్ పోర్ట్‌లు, ప్రోటోకాల్ మరియు MAC చిరునామాల కలయికను తనిఖీ చేయడం అవసరమయ్యే పెద్ద మ్యాచ్ జాబితాల (nftables సెట్‌లు) ప్రాసెసింగ్‌ను గణనీయంగా వేగవంతం చేస్తుంది.
      ఆప్టిమైజేషన్లు పరిచయం చేసింది nft_set_pipapo (PIle PAcket POlicies) మాడ్యూల్‌లోకి, ఇది IP మరియు నెట్‌వర్క్ పోర్ట్ పరిధులు (nft_set_rbtree మరియు nft_set_hash మానిప్యులేట్ ఇంటర్వెల్ మ్యాచింగ్ మరియు డైరెక్ట్ వాల్యూస్ మ్యానిప్యులేట్ ఇంటర్వెల్ వాల్యూస్ వంటి ఫిల్టరింగ్ నియమాలలో ఉపయోగించే ఏకపక్ష ఫీల్డ్ స్టేట్ పరిధులతో ప్యాకెట్ యొక్క కంటెంట్‌లను సరిపోల్చడంలో సమస్యను పరిష్కరిస్తుంది. ) AMD Epyc 256 ప్రాసెసర్‌తో కూడిన సిస్టమ్‌పై 2-బిట్ AVX7402 సూచనలను ఉపయోగించి pipapo వెక్టరైజ్ చేయబడిన సంస్కరణ పోర్ట్-ప్రోటోకాల్ కలయికలతో సహా 420 వేల రికార్డులను అన్వయించేటప్పుడు 30% పనితీరును పెంచింది. 1000 రికార్డ్‌లను అన్వయించేటప్పుడు సబ్‌నెట్ మరియు పోర్ట్ నంబర్ కలయికను పోల్చినప్పుడు పెరుగుదల IPv87కి 4% మరియు IPv128కి 6%.

    • చేర్చబడింది bareudp మాడ్యూల్, ఇది MPLS, IP మరియు NSH వంటి వివిధ L3 ప్రోటోకాల్‌లను UDP టన్నెల్‌లోకి చేర్చడానికి మిమ్మల్ని అనుమతిస్తుంది.
    • MPTCP (మల్టీపాత్ TCP) కాంపోనెంట్‌ల ఏకీకరణ, TCP ప్రోటోకాల్ యొక్క పొడిగింపు, TCP కనెక్షన్ యొక్క ఆపరేషన్‌ను నిర్వహించడంతోపాటు, వివిధ IP చిరునామాలతో అనుసంధానించబడిన వివిధ నెట్‌వర్క్ ఇంటర్‌ఫేస్‌ల ద్వారా అనేక మార్గాల్లో ఏకకాలంలో ప్యాకెట్‌లను పంపిణీ చేయడం కొనసాగుతోంది.
    • చేర్చబడింది 802.11 (Wi-Fi)లో ఈథర్నెట్ ఫ్రేమ్‌లను ఎన్‌క్యాప్సులేట్ చేయడానికి హార్డ్‌వేర్ యాక్సిలరేషన్ మెకానిజమ్‌లకు మద్దతు.
    • పరికరాన్ని ఒక నెట్‌వర్క్ నేమ్‌స్పేస్ నుండి మరొక నెట్‌వర్క్ నేమ్‌స్పేస్‌కి తరలించినప్పుడు, sysfsలో సంబంధిత ఫైల్‌ల యాక్సెస్ హక్కులు మరియు యాజమాన్యం సర్దుబాటు చేయబడతాయి.
    • రూట్ కాని వినియోగదారుల కోసం SO_BINDTODEVICE ఫ్లాగ్‌ని ఉపయోగించగల సామర్థ్యం జోడించబడింది.
    • పాచెస్ యొక్క మూడవ భాగం ఆమోదించబడింది, ethtool టూల్‌కిట్‌ను ioctl() నుండి నెట్‌లింక్ ఇంటర్‌ఫేస్‌గా మారుస్తుంది. కొత్త ఇంటర్‌ఫేస్ పొడిగింపులను జోడించడాన్ని సులభతరం చేస్తుంది, దోష నిర్వహణను మెరుగుపరుస్తుంది, స్థితి మారినప్పుడు నోటిఫికేషన్‌లను పంపడానికి అనుమతిస్తుంది, కెర్నల్ మరియు వినియోగదారు స్థలం మధ్య పరస్పర చర్యను సులభతరం చేస్తుంది మరియు సమకాలీకరించాల్సిన జాబితాల సంఖ్యను తగ్గిస్తుంది.
    • కనెక్షన్ ట్రాకింగ్ కార్యకలాపాలను నిర్వహించడానికి ప్రత్యేక హార్డ్‌వేర్ యాక్సిలరేటర్‌లను ఉపయోగించగల సామర్థ్యం జోడించబడింది.
    • నెట్‌ఫిల్టర్‌లో జోడించబడింది అవుట్‌గోయింగ్ ప్యాకెట్‌ల (ఎగ్రెస్) వర్గీకరణలను కనెక్ట్ చేయడానికి ఒక హుక్, ఇది ఇన్‌కమింగ్ ప్యాకెట్‌ల (ఇన్‌గ్రెస్) కోసం గతంలో ఉన్న హుక్‌ను పూర్తి చేసింది.
  • వర్చువలైజేషన్ మరియు సెక్యూరిటీ
    • పాయింటర్ ప్రమాణీకరణ యొక్క హార్డ్‌వేర్ అమలు జోడించబడింది (పాయింటర్ ప్రమాణీకరణ), ఇది రిటర్న్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ (ROP) టెక్నిక్‌లను ఉపయోగించి దాడుల నుండి రక్షించడానికి ప్రత్యేకమైన ARM64 CPU సూచనలను ఉపయోగిస్తుంది, దీనిలో దాడి చేసే వ్యక్తి తన కోడ్‌ను మెమరీలో ఉంచడానికి ప్రయత్నించడు, కానీ లోడ్ చేయబడిన లైబ్రరీలలో ఇప్పటికే అందుబాటులో ఉన్న మెషీన్ సూచనల ముక్కలపై పనిచేస్తుంది, ముగుస్తుంది. నియంత్రణ రిటర్న్ సూచనతో. కెర్నల్ స్థాయిలో రిటర్న్ అడ్రస్‌లను వెరిఫై చేయడానికి డిజిటల్ సిగ్నేచర్‌లను ఉపయోగించడం వరకు భద్రత వస్తుంది. పాయింటర్‌లోని ఉపయోగించని టాప్ బిట్స్‌లో సంతకం నిల్వ చేయబడుతుంది. సాఫ్ట్‌వేర్ అమలుల వలె కాకుండా, డిజిటల్ సంతకాల యొక్క సృష్టి మరియు ధృవీకరణ ప్రత్యేక CPU సూచనలను ఉపయోగించి నిర్వహించబడుతుంది.
    • చేర్చబడింది యూజర్ స్పేస్‌లో పేజీ లోపాలను (అన్‌లాకేట్ చేయని మెమరీ పేజీలకు యాక్సెస్) నిర్వహించడానికి రూపొందించబడిన userfaultfd() సిస్టమ్ కాల్‌ని ఉపయోగించి మెమరీ ప్రాంతాన్ని వ్రాయకుండా రక్షించే సామర్థ్యం. వ్రాత-రక్షిత అని గుర్తించబడిన పేజీలకు యాక్సెస్ ఉల్లంఘనలను గుర్తించడం మరియు అటువంటి వ్రాత ప్రయత్నాలకు ప్రతిస్పందించగల హ్యాండ్లర్‌ను పిలవడం (ఉదాహరణకు, నడుస్తున్న ప్రక్రియల యొక్క ప్రత్యక్ష స్నాప్‌షాట్‌ల సృష్టి సమయంలో మార్పులను నిర్వహించడం, స్థితి. మెమరీ డంప్‌లను డిస్క్‌కి డంప్ చేస్తున్నప్పుడు క్యాప్చర్ చేయడం, షేర్డ్ మెమరీని అమలు చేయడం, మెమరీలో మార్పులను ట్రాక్ చేయడం). కార్యాచరణ సమానమైన SIGSEGV సిగ్నల్ హ్యాండ్లర్‌తో కలిపి mprotect()ని ఉపయోగిస్తుంది, అయితే ఇది గమనించదగినంత వేగంగా పని చేస్తుంది.
    • SELinux "checkreqprot" పరామితిని విస్మరించింది, ఇది నియమాలను ప్రాసెస్ చేస్తున్నప్పుడు మెమరీ రక్షణ తనిఖీలను నిలిపివేయడానికి మిమ్మల్ని అనుమతిస్తుంది (నియమాలలో పేర్కొన్న నియమాలతో సంబంధం లేకుండా ఎక్జిక్యూటబుల్ మెమరీ ప్రాంతాలను ఉపయోగించడాన్ని అనుమతిస్తుంది). Kernfs సిమ్‌లింక్‌లు వాటి పేరెంట్ డైరెక్టరీల సందర్భాన్ని వారసత్వంగా పొందేందుకు అనుమతించబడతాయి.
    • కూర్పులో చేర్చబడింది మాడ్యూల్ KRSI, ఇది కెర్నల్‌లోని ఏదైనా LSM హుక్‌లకు BPF ప్రోగ్రామ్‌లను జోడించడానికి మిమ్మల్ని అనుమతిస్తుంది. ఆడిట్ సమస్యలు మరియు తప్పనిసరి యాక్సెస్ నియంత్రణను పరిష్కరించడానికి BPF ప్రోగ్రామ్‌ల రూపంలో LSM మాడ్యూల్‌లను (Linux సెక్యూరిటీ మాడ్యూల్) సృష్టించడానికి మార్పు మిమ్మల్ని అనుమతిస్తుంది.
    • చేపట్టారు RNG సూచనలను ఒక్కొక్కటిగా కాల్ చేయడానికి బదులుగా CRNG విలువలను బ్యాచ్ చేయడం ద్వారా /dev/random పనితీరును ఆప్టిమైజ్ చేస్తుంది. RNG సూచనలను అందించే ARM64 సిస్టమ్‌లలో గెట్‌రాండమ్ మరియు /dev/random యొక్క మెరుగైన పనితీరు.
    • ఎలిప్టిక్ కర్వ్ కర్వ్25519 అమలు భర్తీ చేయబడింది లైబ్రరీ నుండి ఎంపిక కోసం HACL, దేని కొరకు ఇచ్చిన అధికారిక విశ్వసనీయత ధృవీకరణ యొక్క గణిత రుజువు.
    • చేర్చబడింది ఉచిత మెమరీ పేజీల గురించి తెలియజేసే విధానం. ఈ మెకానిజంను ఉపయోగించి, అతిథి వ్యవస్థలు హోస్ట్ సిస్టమ్‌కు ఉపయోగించని పేజీల గురించి సమాచారాన్ని ప్రసారం చేయగలవు మరియు హోస్ట్ పేజీ డేటాను తిరిగి తీసుకోవచ్చు.
    • vfio/pci లో జోడించారు SR-IOVకి మద్దతు (సింగిల్-రూట్ I/O వర్చువలైజేషన్).
  • మెమరీ మరియు సిస్టమ్ సేవలు
    • 80 నుండి 100 అక్షరాలు పెరిగింది మూల గ్రంథాలలో గరిష్ట పంక్తి పొడవుపై పరిమితి. అదే సమయంలో, డెవలపర్‌లు ఇప్పటికీ ఒక్కో పంక్తికి 80 అక్షరాల లోపల ఉండాలని సిఫార్సు చేస్తున్నారు, అయితే ఇది ఇకపై కఠినమైన పరిమితి కాదు. అదనంగా, చెక్‌ప్యాచ్ '--స్ట్రిక్ట్' ఎంపికతో అమలు చేయబడినప్పుడు మాత్రమే లైన్ పరిమాణ పరిమితిని అధిగమించడం వలన ఇప్పుడు బిల్డ్ హెచ్చరిక వస్తుంది. మార్పు డెవలపర్‌ల దృష్టి మరల్చకుండా చేయడం సాధ్యపడుతుంది తారుమారు ఖాళీలతో మరియు కోడ్‌ని సమలేఖనం చేసేటప్పుడు మరింత సంకోచించకండి, అలాగే నిరోధిస్తుంది అధిక లైన్ బ్రేకింగ్, కలవరపెడుతోంది కోడ్ గ్రహణశక్తి మరియు శోధన.
    • చేర్చబడింది EFI మిక్స్‌డ్ బూట్ మోడ్‌కు మద్దతు, ఇది ప్రత్యేకమైన బూట్‌లోడర్‌ను ఉపయోగించకుండా 64-బిట్ CPUపై నడుస్తున్న 32-బిట్ ఫర్మ్‌వేర్ నుండి 64-బిట్ కెర్నల్‌ను లోడ్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
    • ప్రారంభించబడింది స్ప్లిట్ లాక్‌లను గుర్తించడం మరియు డీబగ్ చేయడం కోసం వ్యవస్థ ("స్ప్లిట్ లాక్"), ఇది అటామిక్ ఇన్‌స్ట్రక్షన్‌ను అమలు చేస్తున్నప్పుడు, డేటా రెండు CPU కాష్ లైన్‌లను దాటుతుంది అనే వాస్తవం కారణంగా మెమరీలో సమలేఖనం చేయని డేటాను యాక్సెస్ చేసేటప్పుడు సంభవిస్తుంది. ఇటువంటి నిరోధించడం వలన గణనీయమైన పనితీరు దెబ్బతింటుంది (ఒక కాష్ లైన్‌లోకి వచ్చే డేటాపై అణు ఆపరేషన్ కంటే 1000 చక్రాలు నెమ్మదిగా ఉంటాయి). "split_lock_detect" బూట్ పారామీటర్‌పై ఆధారపడి, కెర్నల్ ఫ్లైలో అటువంటి లాక్‌లను గుర్తించి హెచ్చరికలను జారీ చేస్తుంది లేదా లాక్‌కి కారణమయ్యే అప్లికేషన్‌కు SIGBUS సిగ్నల్‌ను పంపుతుంది.
    • టాస్క్ షెడ్యూలర్ ఉష్ణోగ్రత సెన్సార్ల ట్రాకింగ్‌ను అందిస్తుంది (థర్మల్ ప్రెజర్) మరియు పనులను ఉంచేటప్పుడు వేడెక్కడం పరిగణనలోకి తీసుకుని అమలు చేస్తారు. అందించిన గణాంకాలను ఉపయోగించి, వేడెక్కినప్పుడు థర్మల్ గవర్నర్ గరిష్ట CPU ఫ్రీక్వెన్సీని సర్దుబాటు చేయవచ్చు మరియు టాస్క్ షెడ్యూలర్ ఇప్పుడు టాస్క్‌లను అమలు చేయడానికి షెడ్యూల్ చేసేటప్పుడు ఫ్రీక్వెన్సీలో అటువంటి తగ్గింపు కారణంగా కంప్యూటింగ్ పవర్‌లో తగ్గింపును పరిగణనలోకి తీసుకుంటుంది (గతంలో, షెడ్యూలర్ మార్పులకు ప్రతిస్పందించారు ఒక నిర్దిష్ట ఆలస్యంతో ఫ్రీక్వెన్సీలో, అందుబాటులో ఉన్న కంప్యూటింగ్ వనరుల గురించి పెంచిన అంచనాల ఆధారంగా కొంత సమయం వరకు నిర్ణయాలు తీసుకోవడం).
    • టాస్క్ షెడ్యూలర్ కలిగి ఉంటుంది మార్పులేని సూచికలు లోడ్ ట్రాకింగ్, ప్రస్తుత CPU ఆపరేటింగ్ ఫ్రీక్వెన్సీతో సంబంధం లేకుండా లోడ్‌ను సరిగ్గా అంచనా వేయడానికి మిమ్మల్ని అనుమతిస్తుంది. వోల్టేజ్ మరియు CPU ఫ్రీక్వెన్సీలో డైనమిక్ మార్పుల పరిస్థితులలో పనుల ప్రవర్తనను మరింత ఖచ్చితంగా అంచనా వేయడానికి మార్పు మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, 1 MHz వద్ద 3/1000 CPU వనరులను వినియోగించిన ఒక పని ఫ్రీక్వెన్సీ 2 MHzకి పడిపోయినప్పుడు 3/500 వనరులను వినియోగిస్తుంది, ఇది పూర్తి సామర్థ్యంతో (అంటే టాస్క్‌లు కనిపించాయి. ఫ్రీక్వెన్సీని తగ్గించడం ద్వారా మాత్రమే షెడ్యూలర్‌కు పెద్దది, ఇది షెడ్యూటిల్ cpufreq గవర్నర్‌లో తప్పు నిర్ణయాలకు దారితీసింది).
    • పనితీరు మోడ్‌లను ఎంచుకోవడానికి బాధ్యత వహించే Intel P-state డ్రైవర్ ఉపయోగించడానికి మార్చబడింది షెడ్యూటిల్.
    • కెర్నల్ రియల్ టైమ్ (PREEMPT_RT)లో నడుస్తున్నప్పుడు BPF సబ్‌సిస్టమ్‌ని ఉపయోగించగల సామర్థ్యం అమలు చేయబడింది. గతంలో, PREEMPT_RT ప్రారంభించబడినప్పుడు, BPFని నిలిపివేయవలసి ఉంటుంది.
    • కొత్త రకం BPF ప్రోగ్రామ్ జోడించబడింది - BPF_MODIFY_RETURN, ఇది కెర్నల్‌లోని ఫంక్షన్‌కు జోడించబడుతుంది మరియు ఈ ఫంక్షన్ ద్వారా అందించబడిన విలువను మార్చవచ్చు.
    • చేర్చబడింది అవకాశం clone3() సిస్టమ్ కాల్‌ని ఉపయోగించి మాతృ cgroupకి భిన్నమైన cgroupలో ప్రాసెస్‌ని సృష్టించడం, కొత్త ప్రక్రియ లేదా థ్రెడ్‌ని సృష్టించిన వెంటనే మాతృ ప్రక్రియ పరిమితులను వర్తింపజేయడానికి మరియు అకౌంటింగ్‌ని ప్రారంభించేందుకు అనుమతిస్తుంది. ఉదాహరణకు, ఒక సర్వీస్ మేనేజర్ నేరుగా కొత్త సేవలను ప్రత్యేక cgroupలకు కేటాయించవచ్చు మరియు కొత్త ప్రక్రియలు, "స్తంభింపచేసిన" cgroupsలో ఉంచబడినప్పుడు, వెంటనే నిలిపివేయబడతాయి.
    • Kbuild లో జోడించారు కెర్నల్‌ను నిర్మించేటప్పుడు క్లాంగ్/LLVM టూల్‌కిట్‌కు మారడానికి ఎన్విరాన్‌మెంట్ వేరియబుల్ "LLVM=1"కు మద్దతు. Binutils వెర్షన్ కోసం అవసరాలు పెంచబడ్డాయి (2.23).
    • కునిట్ పరీక్షల ఫలితాలతో డీబగ్‌ఫ్‌లకు ఒక విభాగం /sys/kernel/debug/kunit/ జోడించబడింది.
    • కెర్నల్ బూట్ పారామితి pm_debug_messages (/sys/power/pm_debug_messagesకు సారూప్యం) జోడించబడింది, ఇది పవర్ మేనేజ్‌మెంట్ సిస్టమ్ యొక్క ఆపరేషన్ గురించి డీబగ్ సమాచారం యొక్క అవుట్‌పుట్‌ను ప్రారంభిస్తుంది (హైబర్నేషన్ మరియు స్టాండ్‌బై మోడ్‌తో సమస్యలను డీబగ్ చేసేటప్పుడు ఉపయోగపడుతుంది).
    • అసమకాలిక I/O ఇంటర్‌ఫేస్‌కు io_uring మద్దతు జోడించబడింది స్ప్లైస్ () и పరమాణు బఫర్ ఎంపిక.
    • పెర్ఫ్ టూల్‌కిట్ ఉపయోగించి మెరుగైన cgroup ప్రొఫైలింగ్. మునుపు, perf నిర్దిష్ట cgroupలో టాస్క్‌లను మాత్రమే ప్రొఫైల్ చేయగలదు మరియు ప్రస్తుత నమూనా ఏ cgroupకి చెందినదో కనుగొనలేకపోయింది. perf ఇప్పుడు ప్రతి నమూనా కోసం cgroup సమాచారాన్ని అందుకుంటుంది, మీరు ఒకటి కంటే ఎక్కువ cgroupలను ప్రొఫైల్ చేయడానికి మరియు దీని ద్వారా క్రమబద్ధీకరించడానికి దరఖాస్తు చేసుకోవచ్చు
      నివేదికలలో cgroup.

    • cgroupfs, cgroups నిర్వహణ కోసం ఒక నకిలీ-FS, పొడిగించిన అట్రిబ్యూట్‌లకు (xattrs) మద్దతును జోడించింది, ఉదాహరణకు, మీరు వినియోగదారు స్థలంలో హ్యాండ్లర్ల కోసం అదనపు సమాచారాన్ని వదిలివేయవచ్చు.
    • cgroup మెమరీ కంట్రోలర్‌లో జోడించబడిందిమరియు "memory.low" విలువ యొక్క పునరావృత రక్షణకు మద్దతు, ఇది సమూహ సభ్యులకు అందించబడిన RAM యొక్క కనీస మొత్తాన్ని నియంత్రిస్తుంది. "memory_recursiveprot" ఎంపికతో cgroup సోపానక్రమాన్ని మౌంట్ చేస్తున్నప్పుడు, దిగువ నోడ్‌ల కోసం సెట్ చేయబడిన "memory.low" విలువ అన్ని చైల్డ్ నోడ్‌లకు స్వయంచాలకంగా పంపిణీ చేయబడుతుంది.
    • చేర్చబడింది CPU మరియు పెరిఫెరల్ పరికరాల మధ్య వర్చువల్ అడ్రస్‌లను (SVA, షేర్డ్ వర్చువల్ అడ్రస్సింగ్) భాగస్వామ్యం చేయడానికి Uacce (యూనిఫైడ్/యూజర్-స్పేస్-యాక్సెస్-ఉద్దేశిత యాక్సిలరేటర్ ఫ్రేమ్‌వర్క్) ఫ్రేమ్‌వర్క్, హార్డ్‌వేర్ యాక్సిలరేటర్‌లు ప్రధాన CPUలోని డేటా స్ట్రక్చర్‌లను యాక్సెస్ చేయడానికి అనుమతిస్తుంది.
  • హార్డ్‌వేర్ ఆర్కిటెక్చర్‌లు
    • ARM ఆర్కిటెక్చర్ కోసం, హాట్-ఫెచ్ మెమరీ సామర్థ్యం అమలు చేయబడుతుంది.
    • RISC-V ఆర్కిటెక్చర్ కోసం, హాట్ ప్లగ్గింగ్ మరియు CPUల తొలగింపు (CPU హాట్‌ప్లగ్) కోసం మద్దతు జోడించబడింది. 32-బిట్ RISC-V కోసం, eBPF JIT అమలు చేయబడింది.
    • KVM అతిథి పరిసరాలను అమలు చేయడానికి 32-బిట్ ARM సిస్టమ్‌లను ఉపయోగించగల సామర్థ్యం తీసివేయబడింది.
    • s390 ఆర్కిటెక్చర్ కోసం "డమ్మీ" NUMA అమలు తీసివేయబడింది, దీని కోసం పనితీరు మెరుగుదలలను సాధించడానికి ఎటువంటి వినియోగ సందర్భాలు కనుగొనబడలేదు.
    • ARM64 కోసం, ARMv8.4లో నిర్వచించబడిన AMU (యాక్టివిటీ మానిటర్స్ యూనిట్) పొడిగింపుకు మద్దతు జోడించబడింది మరియు టాస్క్ షెడ్యూలర్‌లో ఫ్రీక్వెన్సీ స్కేలింగ్ కరెక్షన్ కారకాలను లెక్కించడానికి ఉపయోగించే పనితీరు కౌంటర్‌లను అందిస్తుంది.
  • పరికరాలు
    • చేర్చబడింది virtio స్పెసిఫికేషన్‌లకు అనుగుణంగా డేటా మార్పిడి ఛానెల్‌ని ఉపయోగించే vDPA పరికరాలకు మద్దతు. vDPA పరికరాలు భౌతికంగా కనెక్ట్ చేయబడిన పరికరాలు లేదా సాఫ్ట్‌వేర్ ఎమ్యులేటెడ్ వర్చువల్ పరికరాలు కావచ్చు.
    • GPIO సబ్‌సిస్టమ్‌లో కనిపించాడు మార్పులను పర్యవేక్షించడానికి కొత్త ioctl() కమాండ్, ఏదైనా GPIO లైన్ యొక్క స్థితిలో మార్పుల గురించి ప్రక్రియను తెలియజేయడానికి మిమ్మల్ని అనుమతిస్తుంది. కొత్త కమాండ్‌ని ఉపయోగించేందుకు ఉదాహరణగా ప్రతిపాదించారు gpio-వాచ్ యుటిలిటీ.
    • Intel వీడియో కార్డ్‌ల కోసం i915 DRM డ్రైవర్‌లో చేర్చబడింది Tigerlake (“Gen12”) చిప్‌లకు డిఫాల్ట్ మద్దతు మరియు OLED బ్యాక్‌లైట్ నియంత్రణకు ప్రారంభ మద్దతు జోడించబడింది. Ice Lake, Elkhart Lake, Baytrail మరియు Haswell చిప్‌లకు మెరుగైన మద్దతు.
    • amdgpu డ్రైవర్‌లో జోడించారు ASIC కోసం USBC చిప్‌లోకి ఫర్మ్‌వేర్‌ను లోడ్ చేయగల సామర్థ్యం. AMD Ryzen 4000 "Renoir" చిప్‌లకు మెరుగైన మద్దతు. OLED ప్యానెల్‌లను నియంత్రించడానికి ఇప్పుడు మద్దతు ఉంది. డీబగ్‌లలో ఫర్మ్‌వేర్ స్థితి యొక్క ప్రదర్శన అందించబడింది.
    • గెస్ట్ సిస్టమ్స్‌లో OpenGL 4ని ఉపయోగించగల సామర్థ్యం VMware వర్చువలైజేషన్ సిస్టమ్‌ల కోసం vmwgfx DRM డ్రైవర్‌కు జోడించబడింది (గతంలో OpenGL 3.3 మద్దతు ఉంది).
    • TI కీస్టోన్ ప్లాట్‌ఫారమ్ డిస్‌ప్లే సిస్టమ్ కోసం కొత్త DRM డ్రైవర్ టిడ్స్ జోడించబడింది.
    • LCD ప్యానెల్‌ల కోసం జోడించబడిన డ్రైవర్లు: Feixin K101 IM2BA02, Samsung s6e88a0-ams452ef01, Novatek NT35510, Elida KD35T133, EDT, NewEast Optoelectronics WJFH116008A, Rocktech101A, Rocktech01A, Rocktech350A .
    • విద్యుత్ నిర్వహణ వ్యవస్థకు జోడించారు ఆటమ్-ఆధారిత ఇంటెల్ జాస్పర్ లేక్ (JSL) ప్లాట్‌ఫారమ్‌కు మద్దతు.
    • Rockchip RK3399, Pine64 PineTab టాబ్లెట్ మరియు స్మార్ట్‌ఫోన్ ఆధారంగా పైన్‌బుక్ ప్రో ల్యాప్‌టాప్‌కు మద్దతు జోడించబడింది PinePhone Allwinner A64 ఆధారంగా.
    • కొత్త ఆడియో కోడెక్‌లు మరియు చిప్‌లకు మద్దతు జోడించబడింది:
      అమ్లాజిక్ AIU, Amlogic T9015, టెక్సాస్ ఇన్‌స్ట్రుమెంట్స్ TLV320ADCX140, Realtek RT5682, ALC245, బ్రాడ్‌కామ్ BCM63XX I2S, మాగ్జిమ్ MAX98360A, ప్రిసోనస్ స్టూడియో 1810c, MOTU MicroBo IIc.

    • ARM బోర్డులు మరియు ప్లాట్‌ఫారమ్‌లకు మద్దతు జోడించబడింది Qualcomm Snapdragon 865 (SM8250), IPQ6018, NXP i.MX8M Plus, Kontron “sl28”, 11 i.MX6 TechNexion Pico బోర్డు ఎంపికలు, మూడు కొత్త Toradex Colibri ఎంపికలు, Samsung S7710 ఆధారిత Gveralaxy2 కో -ఎరిక్సన్ u8500, DH ఎలక్ట్రానిక్స్ DHCOM SoM మరియు PDK2, Renesas M3ULCB, హోపెరున్ హైహోప్, లైనట్రోనిక్స్ టెస్ట్‌బాక్స్ v2, పాకెట్‌బుక్ టచ్ లక్స్ 3.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి