Rust-for-Linux ప్రాజెక్ట్ రచయిత Miguel Ojeda, Linux కెర్నల్ డెవలపర్ల పరిశీలన కోసం రస్ట్ భాషలో పరికర డ్రైవర్లను అభివృద్ధి చేయడానికి భాగాల యొక్క నవీకరించబడిన సంస్కరణను ప్రతిపాదించారు. రస్ట్ మద్దతు ప్రయోగాత్మకంగా పరిగణించబడుతుంది, అయితే linux-తదుపరి శాఖలో చేర్చడానికి ఇప్పటికే అంగీకరించబడింది. కొత్త వెర్షన్ పాచెస్ యొక్క మొదటి వెర్షన్ యొక్క చర్చ సమయంలో చేసిన వ్యాఖ్యలను తొలగిస్తుంది. Linus Torvalds ఇప్పటికే చర్చలో చేరారు మరియు కొన్ని బిట్ ఆపరేషన్లను ప్రాసెస్ చేయడానికి లాజిక్ను మార్చాలని ప్రతిపాదించారు.
ప్రతిపాదిత మార్పులు డ్రైవర్లు మరియు కెర్నల్ మాడ్యూల్లను అభివృద్ధి చేయడానికి రస్ట్ని రెండవ భాషగా ఉపయోగించడం సాధ్యమవుతుందని గుర్తుంచుకోండి. రస్ట్ మద్దతు డిఫాల్ట్గా ప్రారంభించబడని ఒక ఎంపికగా అందించబడుతుంది మరియు కెర్నల్కు అవసరమైన బిల్డ్ డిపెండెన్సీగా రస్ట్ చేర్చబడదు. డ్రైవర్ డెవలప్మెంట్ కోసం రస్ట్ని ఉపయోగించడం వలన మీరు తక్కువ ప్రయత్నంతో సురక్షితమైన మరియు మెరుగైన డ్రైవర్లను సృష్టించవచ్చు, ఫ్రీ అయిన తర్వాత మెమరీ యాక్సెస్, శూన్య పాయింటర్ డిరిఫరెన్స్లు మరియు బఫర్ ఓవర్రన్లు వంటి సమస్యల నుండి విముక్తి పొందండి.
రిఫరెన్స్ చెకింగ్, ఆబ్జెక్ట్ యాజమాన్యం మరియు ఆబ్జెక్ట్ లైఫ్టైమ్ (స్కోప్)ను ట్రాక్ చేయడం, అలాగే కోడ్ అమలు సమయంలో మెమరీ యాక్సెస్ యొక్క ఖచ్చితత్వాన్ని మూల్యాంకనం చేయడం ద్వారా కంపైల్ సమయంలో మెమరీ-సేఫ్ హ్యాండ్లింగ్ రస్ట్లో అందించబడుతుంది. రస్ట్ పూర్ణాంకాల ఓవర్ఫ్లోల నుండి రక్షణను కూడా అందిస్తుంది, ఉపయోగించే ముందు వేరియబుల్ విలువలను తప్పనిసరిగా ప్రారంభించడం అవసరం, ప్రామాణిక లైబ్రరీలో లోపాలను మెరుగ్గా నిర్వహిస్తుంది, డిఫాల్ట్గా మార్పులేని సూచనలు మరియు వేరియబుల్స్ భావనను వర్తింపజేస్తుంది, లాజికల్ లోపాలను తగ్గించడానికి బలమైన స్టాటిక్ టైపింగ్ను అందిస్తుంది.
పాచెస్ యొక్క కొత్త వెర్షన్లో అత్యంత గుర్తించదగిన మార్పులు:
- మెమరీ తప్పిపోవడం వంటి లోపాలు సంభవించినప్పుడు "పానిక్" స్థితిని సంభావ్యంగా సృష్టించకుండా మెమరీ కేటాయింపు కోడ్ విముక్తి పొందుతుంది. రస్ట్ అలోక్ లైబ్రరీ యొక్క ఒక రూపాంతరం చేర్చబడింది, ఇది వైఫల్యాలను నిర్వహించడానికి కోడ్ను మళ్లీ పని చేస్తుంది, అయితే అంతిమ లక్ష్యం కెర్నల్కు అవసరమైన అన్ని ఫీచర్లను alloc యొక్క ప్రధాన ఎడిషన్కు బదిలీ చేయడం (మార్పులు ఇప్పటికే తయారు చేయబడ్డాయి మరియు స్టాండర్డ్కు బదిలీ చేయబడ్డాయి రస్ట్ లైబ్రరీ).
- రాత్రిపూట బిల్డ్లకు బదులుగా, రస్ట్ సపోర్ట్తో కెర్నల్ను కంపైల్ చేయడానికి మీరు ఇప్పుడు బీటా విడుదలలు మరియు rustc కంపైలర్ యొక్క స్థిరమైన విడుదలలను ఉపయోగించవచ్చు. ప్రస్తుతం, rustc 1.54-beta1 రిఫరెన్స్ కంపైలర్గా ఉపయోగించబడుతుంది, అయితే 1.54 విడుదల నెలాఖరులో విడుదలైన తర్వాత, ఇది రిఫరెన్స్ కంపైలర్గా మద్దతు ఇస్తుంది.
- రస్ట్ కోసం ప్రామాణిక “#[test]” లక్షణాన్ని ఉపయోగించి పరీక్షలు రాయడానికి మద్దతు జోడించబడింది మరియు పరీక్షలను డాక్యుమెంట్ చేయడానికి డాక్టెస్ట్లను ఉపయోగించగల సామర్థ్యం.
- గతంలో మద్దతిచ్చిన x32_86 మరియు ARM64తో పాటుగా ARM64 మరియు RISCV ఆర్కిటెక్చర్లకు మద్దతు జోడించబడింది.
- GCC రస్ట్ (రస్ట్ కోసం GCC ఫ్రంటెండ్) మరియు rustc_codegen_gcc (GCC కోసం rustc బ్యాకెండ్) యొక్క మెరుగైన అమలులు, ఇది ఇప్పుడు అన్ని ప్రాథమిక పరీక్షలలో ఉత్తీర్ణత సాధించింది.
- రెడ్-బ్లాక్ ట్రీస్, రిఫరెన్స్-కౌంట్డ్ ఆబ్జెక్ట్లు, ఫైల్ డిస్క్రిప్టర్ క్రియేషన్, టాస్క్లు, ఫైల్లు మరియు I/O వెక్టర్స్ వంటి C లో వ్రాయబడిన కెర్నల్ మెకానిజమ్స్ యొక్క రస్ట్ ప్రోగ్రామ్లలో ఉపయోగం కోసం కొత్త స్థాయి సంగ్రహణ ప్రతిపాదించబడింది.
- డ్రైవర్ డెవలప్మెంట్ కాంపోనెంట్లు ఫైల్_ఆపరేషన్స్ మాడ్యూల్, మాడ్యూల్! మాక్రో, మాక్రో రిజిస్ట్రేషన్ మరియు రూడిమెంటరీ డ్రైవర్లకు (ప్రోబ్ మరియు రిమూవ్) మెరుగైన మద్దతును కలిగి ఉన్నాయి.
- బైండర్ ఇప్పుడు పాస్ ఫైల్ డిస్క్రిప్టర్లు మరియు LSM హుక్స్లకు మద్దతు ఇస్తుంది.
- రస్ట్ డ్రైవర్ యొక్క మరింత ఫంక్షనల్ ఉదాహరణ ప్రతిపాదించబడింది - రాస్ప్బెర్రీ పై బోర్డుల హార్డ్వేర్ రాండమ్ నంబర్ జనరేటర్ కోసం bcm2835-rng.
అదనంగా, కెర్నల్లో రస్ట్ వినియోగానికి సంబంధించిన కొన్ని కంపెనీల ప్రాజెక్ట్లు పేర్కొనబడ్డాయి:
- మైక్రోసాఫ్ట్ Linux కెర్నల్లో రస్ట్ సపోర్ట్ను ఇంటిగ్రేట్ చేసే పనిలో పాల్గొనడానికి ఆసక్తిని వ్యక్తం చేసింది మరియు రాబోయే నెలల్లో రస్ట్లో హైపర్-వి కోసం డ్రైవర్ ఇంప్లిమెంటేషన్లను అందించడానికి సిద్ధంగా ఉంది.
- ARM ఆధారిత సిస్టమ్లకు రస్ట్ మద్దతును మెరుగుపరచడానికి ARM పని చేస్తోంది. రస్ట్ ప్రాజెక్ట్ ఇప్పటికే 64-బిట్ ARM సిస్టమ్లను టైర్ 1 ప్లాట్ఫారమ్గా మార్చే మార్పులను ప్రతిపాదించింది.
- Google నేరుగా Linux ప్రాజెక్ట్ కోసం రస్ట్ మద్దతును అందిస్తుంది, రస్ట్లో బైండర్ ఇంటర్ప్రాసెస్ కమ్యూనికేషన్ మెకానిజం యొక్క కొత్త అమలును అభివృద్ధి చేస్తోంది మరియు రస్ట్లో వివిధ డ్రైవర్లను తిరిగి పని చేసే అవకాశాన్ని పరిశీలిస్తోంది. ISRG (ఇంటర్నెట్ సెక్యూరిటీ రీసెర్చ్ గ్రూప్) ద్వారా, Google Linux కెర్నల్లో రస్ట్ సపోర్ట్ను ఏకీకృతం చేయడానికి పని కోసం నిధులను అందించింది.
- IBM PowerPC సిస్టమ్స్ కోసం రస్ట్ కోసం కెర్నల్ మద్దతును అమలు చేసింది.
- LSE (సిస్టమ్స్ రీసెర్చ్ లాబొరేటరీ) ప్రయోగశాల రస్ట్లో SPI డ్రైవర్ను అభివృద్ధి చేసింది.
మూలం: opennet.ru