ఈ రోజుల్లో జరుగుతున్న Linux Plumbers 2022 కాన్ఫరెన్స్లో, వెస్ట్రన్ డిజిటల్కి చెందిన ఒక ఇంజనీర్ SSD డ్రైవ్ల కోసం NVM-Express (NVMe) ఇంటర్ఫేస్తో రస్ట్ లాంగ్వేజ్లో వ్రాసి Linux కెర్నల్లో రన్ అయ్యే ప్రయోగాత్మక డ్రైవర్ను అభివృద్ధి చేయడంపై ప్రెజెంటేషన్ ఇచ్చారు. స్థాయి. ప్రాజెక్ట్ ఇంకా అభివృద్ధి ప్రారంభ దశలోనే ఉన్నప్పటికీ, రస్ట్ లాంగ్వేజ్లోని NVMe డ్రైవర్ పనితీరు కెర్నల్లో అందుబాటులో ఉన్న C లాంగ్వేజ్లో వ్రాయబడిన NVMe డ్రైవర్కు అనుగుణంగా ఉందని పరీక్షలో తేలింది.


C లోని ప్రస్తుత NVMe డ్రైవర్ డెవలపర్లకు పూర్తిగా సంతృప్తికరంగా ఉందని నివేదిక పేర్కొంది, అయితే NVMe సబ్సిస్టమ్ రస్ట్లో డ్రైవర్లను అభివృద్ధి చేసే సాధ్యాసాధ్యాలను అన్వేషించడానికి ఒక మంచి వేదిక, ఎందుకంటే ఇది చాలా సరళమైనది, విస్తృతంగా ఉపయోగించబడుతుంది, అధిక పనితీరు అవసరాలు కలిగి ఉంది మరియు కలిగి ఉంది పోలిక కోసం నిరూపితమైన సూచన అమలు మరియు వివిధ ఇంటర్ఫేస్లకు మద్దతు ఇస్తుంది (dev, pci, dma, blk-mq, gendisk, sysfs).
రస్ట్ కోసం PCI NVMe డ్రైవర్ ఇప్పటికే ఆపరేషన్కు అవసరమైన కార్యాచరణను అందించిందని గుర్తించబడింది, అయితే దీనికి వ్యక్తిగత మెరుగుదలలు అవసరం కాబట్టి విస్తృత ఉపయోగం కోసం ఇంకా సిద్ధంగా లేదు. భవిష్యత్ ప్రణాళికలలో ఇప్పటికే ఉన్న అసురక్షిత బ్లాక్ల కోడ్ను తొలగించడం, పరికర తొలగింపు మరియు డ్రైవర్ అన్లోడ్ ఆపరేషన్లకు మద్దతు ఇవ్వడం, sysfs ఇంటర్ఫేస్కు మద్దతు ఇవ్వడం, లేజీ ఇనిషియలైజేషన్ను అమలు చేయడం, blk-mq కోసం డ్రైవర్ను సృష్టించడం మరియు queue_rq కోసం అసమకాలిక ప్రోగ్రామింగ్ మోడల్ని ఉపయోగించడంతో ప్రయోగాలు చేయడం వంటివి ఉన్నాయి.

అదనంగా, ఫ్రీబిఎస్డి కెర్నల్ కోసం రస్ట్ లాంగ్వేజ్లో డ్రైవర్లను అభివృద్ధి చేయడానికి ఎన్సిసి గ్రూప్ నిర్వహించిన ప్రయోగాలను మేము గమనించవచ్చు. ఉదాహరణగా, ఫైల్ /dev/rustmoduleకి వ్రాసిన డేటాను తిరిగి ఇచ్చే సాధారణ ఎకో డ్రైవర్ను మేము వివరంగా పరిశీలిస్తాము. తదుపరి దశలో ప్రయోగాత్మకంగా, NCC గ్రూప్ నెట్వర్క్ మరియు ఫైల్ ఆపరేషన్ల భద్రతను మెరుగుపరచడానికి రస్ట్ భాషలో కెర్నల్ యొక్క ప్రధాన భాగాలను తిరిగి పని చేసే అవకాశాన్ని పరిశీలిస్తోంది.
అయినప్పటికీ, రస్ట్ లాంగ్వేజ్లో సాధారణ మాడ్యూళ్ళను సృష్టించడం సాధ్యమవుతుందని చూపబడినప్పటికీ, FreeBSD కెర్నల్లో రస్ట్ని కఠినంగా ఏకీకృతం చేయడానికి అదనపు పని అవసరం. ఉదాహరణకు, లైనక్స్ ప్రాజెక్ట్ కోసం రస్ట్ తయారుచేసిన యాడ్-ఆన్ల మాదిరిగానే సబ్సిస్టమ్లు మరియు కెర్నల్ స్ట్రక్చర్లపై అబ్స్ట్రాక్షన్ లేయర్ల సమితిని సృష్టించాల్సిన అవసరాన్ని వారు పేర్కొన్నారు. భవిష్యత్తులో, మేము Illumos కెర్నల్తో ఇలాంటి ప్రయోగాలను నిర్వహించాలని ప్లాన్ చేస్తాము మరియు Linux, BSD మరియు Illumos కోసం రస్ట్లో వ్రాసిన డ్రైవర్లలో ఉపయోగించే రస్ట్లోని సాధారణ సారాంశాలను గుర్తించాము.
మైక్రోసాఫ్ట్ మరియు గూగుల్ ప్రకారం, వారి సాఫ్ట్వేర్ ఉత్పత్తులలో దాదాపు 70% దుర్బలత్వాలు అసురక్షిత మెమరీ హ్యాండ్లింగ్ వల్ల సంభవిస్తాయి. రస్ట్ లాంగ్వేజ్ని ఉపయోగించడం వల్ల మెమరీతో అసురక్షిత పని చేయడం వల్ల కలిగే దుర్బలత్వాల ప్రమాదాన్ని తగ్గించవచ్చు మరియు మెమరీ ప్రాంతాన్ని విముక్తి పొందిన తర్వాత యాక్సెస్ చేయడం మరియు బఫర్ను అధిగమించడం వంటి లోపాల సంభవనీయతను తొలగిస్తుందని భావిస్తున్నారు.
రిఫరెన్స్ చెకింగ్, ఆబ్జెక్ట్ యాజమాన్యం మరియు ఆబ్జెక్ట్ లైఫ్టైమ్ (స్కోప్)ను ట్రాక్ చేయడం, అలాగే కోడ్ అమలు సమయంలో మెమరీ యాక్సెస్ యొక్క ఖచ్చితత్వాన్ని మూల్యాంకనం చేయడం ద్వారా కంపైల్ సమయంలో మెమరీ-సేఫ్ హ్యాండ్లింగ్ రస్ట్లో అందించబడుతుంది. రస్ట్ పూర్ణాంకాల ఓవర్ఫ్లోల నుండి రక్షణను కూడా అందిస్తుంది, ఉపయోగించే ముందు వేరియబుల్ విలువలను తప్పనిసరిగా ప్రారంభించడం అవసరం, ప్రామాణిక లైబ్రరీలో లోపాలను మెరుగ్గా నిర్వహిస్తుంది, డిఫాల్ట్గా మార్పులేని సూచనలు మరియు వేరియబుల్స్ భావనను వర్తింపజేస్తుంది, లాజికల్ లోపాలను తగ్గించడానికి బలమైన స్టాటిక్ టైపింగ్ను అందిస్తుంది.
మూలం: opennet.ru
