రస్ట్‌లో Linux కెర్నల్ కోసం సురక్షిత డ్రైవర్‌లను వ్రాయడానికి ఫ్రేమ్‌వర్క్

ఇంటెల్‌లో పనిచేస్తున్న జోష్ ట్రిప్లెట్, ఓపెన్ సోర్స్ టెక్నాలజీ సమ్మిట్‌లో మాట్లాడుతూ, Crates.io అభివృద్ధిని పర్యవేక్షించే కమిటీలో ఉన్నారు సమర్పించిన సిస్టమ్స్ ప్రోగ్రామింగ్ రంగంలో రస్ట్ లాంగ్వేజ్‌ని సి లాంగ్వేజ్‌తో సమానంగా తీసుకురావడానికి ఉద్దేశించిన వర్కింగ్ గ్రూప్.

సృష్టించే ప్రక్రియలో ఉన్న వర్కింగ్ గ్రూప్‌లో, రస్ట్ డెవలపర్లు, ఇంటెల్ నుండి ఇంజనీర్‌లతో కలిసి, సిస్టమ్ ప్రోగ్రామింగ్ కోసం రస్ట్‌లో అమలు చేయాల్సిన కార్యాచరణను నిర్వచించే స్పెసిఫికేషన్‌లను సిద్ధం చేస్తారు. సిస్టమ్ ప్రోగ్రామింగ్‌కు తరచుగా ప్రివిలేజ్డ్ ప్రాసెసర్ సూచనలను అమలు చేయడం మరియు ప్రాసెసర్ స్థితి గురించి వివరణాత్మక సమాచారాన్ని పొందడం వంటి తక్కువ-స్థాయి మానిప్యులేషన్ అవసరం. రస్ట్ కోసం ఇప్పటికే అభివృద్ధి చేయబడిన సారూప్య లక్షణాలలో, పేరులేని నిర్మాణాలు, యూనియన్‌లు, అసెంబ్లీ లాంగ్వేజ్ ఇన్‌సర్ట్‌లు (“asm!” మాక్రో) మరియు BFLOAT16 ఫ్లోటింగ్ పాయింట్ నంబర్ ఫార్మాట్‌కు మద్దతు గుర్తించబడింది.

సిస్టమ్ ప్రోగ్రామింగ్ యొక్క భవిష్యత్తు రస్ట్‌కు చెందినదని జోష్ విశ్వసించాడు మరియు ఆధునిక వాస్తవాలలో సి భాష గత సంవత్సరాల్లో అసెంబ్లీ ఆక్రమించబడిందని పేర్కొంది. రస్ట్
మెమరీతో తక్కువ-స్థాయి పని కారణంగా ఉత్పన్నమయ్యే C భాషలో అంతర్లీనంగా ఉన్న సమస్యల నుండి డెవలపర్‌లకు ఉపశమనం కలిగించడమే కాకుండా, ఆధునిక ప్రోగ్రామింగ్ నమూనాల అభివృద్ధిలో దీనిని ఉపయోగించుకునే అవకాశాన్ని కూడా అందిస్తుంది.

పురోగతిలో ఉంది చర్చలు ప్రదర్శనలు
రస్ట్ లాంగ్వేజ్‌లో లైనక్స్ కెర్నల్‌లో డ్రైవర్‌లను డెవలప్ చేసే సామర్థ్యాన్ని జోడించాలనే ఆలోచనతో జోష్ ముందుకు వచ్చింది, ఇది తక్కువ శ్రమతో సురక్షితమైన మరియు మెరుగైన డ్రైవర్‌లను సృష్టించడం సాధ్యపడుతుంది, ఫ్రీ అయిన తర్వాత మెమరీ యాక్సెస్ వంటి సమస్యలు లేకుండా, శూన్యం పాయింటర్ డిరిఫరెన్స్‌లు మరియు బఫర్ ఓవర్‌రన్‌లు.

Linux కెర్నల్ యొక్క స్థిరమైన శాఖను నిర్వహించడానికి బాధ్యత వహించే గ్రెగ్ క్రోహ్-హార్ట్‌మాన్, C కంటే నిజమైన ప్రయోజనాలను కలిగి ఉంటే, కెర్నల్‌కు రస్ట్ భాషలో డ్రైవర్‌లను అభివృద్ధి చేయడానికి ఫ్రేమ్‌వర్క్‌ను జోడించడానికి తన సంసిద్ధతను వ్యక్తం చేశారు, ఉదాహరణకు, ఇది సురక్షితంగా అందిస్తుంది. కెర్నల్ API పై బైండింగ్‌లు. అదనంగా, గ్రెగ్ ఈ ఫ్రేమ్‌వర్క్‌ను ఒక ఎంపికగా మాత్రమే పరిగణిస్తాడు, డిఫాల్ట్‌గా యాక్టివ్ కాదు, తద్వారా రస్ట్‌ను కెర్నల్‌పై బిల్డ్ డిపెండెన్సీగా చేర్చకూడదు.

ఈ దిశగా ఇప్పటికే పలు బృందాలు పనిచేస్తున్నట్లు తేలింది. ఉదాహరణకు, "ఫిష్ ఇన్ ఎ బారెల్" సంస్థ నుండి డెవలపర్లు సిద్ధం రస్ట్ లాంగ్వేజ్‌లో Linux కెర్నల్ కోసం లోడ్ చేయదగిన మాడ్యూల్‌లను వ్రాయడానికి టూల్‌కిట్, భద్రతను పెంచడానికి ఇంటర్‌ఫేస్‌లు మరియు కెర్నల్ నిర్మాణాలపై నైరూప్య లేయర్‌ల సమితిని ఉపయోగిస్తుంది. యుటిలిటీని ఉపయోగించి ఇప్పటికే ఉన్న కెర్నల్ హెడర్ ఫైల్‌ల ఆధారంగా లేయర్‌లు స్వయంచాలకంగా రూపొందించబడతాయి బైండ్జెన్. పొరలను నిర్మించడానికి క్లాంగ్ ఉపయోగించబడుతుంది. ఇంటర్‌లేయర్‌లకు అదనంగా, అసెంబుల్డ్ మాడ్యూల్స్ స్టాటిక్‌లిబ్ ప్యాకేజీని ఉపయోగిస్తాయి.

సమాంతరంగా అభివృద్ధి చెందుతుంది మరొక ప్రాజెక్ట్ ఎంబెడెడ్ సిస్టమ్‌లు మరియు IoT పరికరాల కోసం డ్రైవర్‌లను అభివృద్ధి చేయడంపై దృష్టి సారించింది, ఇది కెర్నల్ హెడర్ ఫైల్‌ల ఆధారంగా లేయర్‌లను రూపొందించడానికి బైండ్‌జెన్‌ను కూడా ఉపయోగిస్తుంది. కెర్నల్‌లో మార్పులు చేయకుండా డ్రైవర్ భద్రతను మెరుగుపరచడానికి ఫ్రేమ్‌వర్క్ మిమ్మల్ని అనుమతిస్తుంది - కెర్నల్‌లో డ్రైవర్‌ల కోసం అదనపు ఐసోలేషన్ స్థాయిలను సృష్టించే బదులు, మరింత సురక్షితమైన రస్ట్ లాంగ్వేజ్‌ని ఉపయోగించి కంపైలేషన్ దశలో సమస్యలను నిరోధించాలని ప్రతిపాదించబడింది. సరైన ఆడిట్ నిర్వహించకుండా తొందరపడి యాజమాన్య డ్రైవర్లను అభివృద్ధి చేసే పరికరాల తయారీదారుల ద్వారా ఇటువంటి విధానం డిమాండ్‌లో ఉండవచ్చని భావించబడుతుంది.

ఉద్దేశించిన అన్ని కార్యాచరణలు ఇంకా అమలు చేయబడలేదు, అయితే ఫ్రేమ్‌వర్క్ ఇప్పటికే పని కోసం చాలా సరిఅయినది మరియు Raspberry Pi 9512 బోర్డ్‌లో సరఫరా చేయబడిన LAN3 USB ఈథర్నెట్ కంట్రోలర్ కోసం వర్కింగ్ డ్రైవర్‌ను వ్రాయడానికి ఉపయోగించబడింది. ఇప్పటికే ఉన్న smsc95xx డ్రైవర్, దీని ద్వారా వ్రాయబడింది సి భాష. రస్ట్‌లో డ్రైవర్‌ను అభివృద్ధి చేస్తున్నప్పుడు రన్‌టైమ్ భాగాల నుండి మాడ్యూల్ పరిమాణం మరియు ఓవర్‌హెడ్ చాలా తక్కువగా ఉన్నాయని గుర్తించబడింది, ఇది పరిమిత వనరులతో పరికరాల కోసం ఫ్రేమ్‌వర్క్‌ను ఉపయోగించడానికి అనుమతిస్తుంది.

మూలం: opennet.ru

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