Skip to content

వైట్‌పేపర్ ​

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

1. ఆర్కిటెక్చర్ అవలోకనం ​

WSL Dashboard క్లాసిక్ రెస్పాన్సివ్ UI డ్రైవెన్ + అసమక్రమ బ్యాకెండ్ టాస్క్ ఆర్కిటెక్చర్‌ను ఉపయోగిస్తుంది, Rust భాష యొక్క టైప్ సిస్టమ్ మరియు యాజమాన్య నమూనాను ఉపయోగించి మెమరీ భద్రత మరియు అధిక కాన్కరెన్సీ పనితీరును నిర్ధారిస్తుంది.

కోర్ కాంపోనెంట్‌లు ​

  • ఫ్రంట్‌ఎండ్ (UI): Slint డిక్లరేటివ్ ఇంటర్ఫేస్ ఆధారంగా. UI థ్రెడ్ రెండరింగ్ మరియు వినియోగదారు ఇంటరాక్షన్‌కు బాధ్యత వహిస్తుంది.
  • బ్యాకెండ్ (Runtime): Tokio అసమక్రమ రన్‌టైమ్ ఆధారంగా. సిస్టమ్ కమాండ్‌లు (CLI) పంపిణీ, అమలు, ఫైల్ I/O మరియు నెట్‌వర్క్ లిజనింగ్‌కు బాధ్యత వహిస్తుంది.
  • కమ్యూనికేషన్: UI థ్రెడ్ మరియు అసమక్రమ టాస్క్‌లు ఛానెల్ (MPSC) మరియు షేర్డ్ స్టేట్ (Arc/Mutex/RwLock) ద్వారా సమర్థవంతంగా, థ్రెడ్-సేఫ్‌గా కమ్యూనికేట్ చేస్తాయి.

2. టెక్నాలజీ ఎంపికకు కారణాలు ​

ఎందుకు Rust? ​

  • పనితీరు: జీరో-కాస్ట్ అబ్‌స్ట్రాక్షన్, నేటివ్ మెషిన్ కోడ్‌గా కంపైల్ అవుతుంది, GC జిట్టర్ లేదు.
  • మెమరీ భద్రత: కంపైల్ సమయంలో బఫర్ ఓవర్‌ఫ్లో మరియు డేటా రేస్‌లను తొలగిస్తుంది, ఇది సిస్టమ్-స్థాయి కార్యకలాపాలు (డిస్క్ మైగ్రేషన్, నెట్‌వర్క్ కాన్ఫిగరేషన్ వంటివి) కలిగిన సాధనానికి కీలకం.
  • బైనరీ పరిమాణం: అన్ని డిపెండెన్సీలను స్టాటిక్‌గా లింక్ చేస్తుంది, సింగిల్-ఫైల్ పోర్టబుల్ ఎగ్జిక్యూటబుల్ ప్రోగ్రామ్‌ను ఉత్పత్తి చేస్తుంది.

ఎందుకు Slint + Skia? ​

  • డిక్లరేటివ్ సింటాక్స్: ఇంటర్ఫేస్ వివరణ మరియు లాజిక్ విభజించబడ్డాయి, కోడ్ నిర్వహణ సులభం.
  • Skia రెండరింగ్: GPU యాక్సెలరేషన్‌ను నేరుగా ఉపయోగిస్తుంది (Skia ఇంజిన్ ద్వారా), సబ్-పిక్సెల్ స్థాయి స్పష్టత కలిగిన అక్షరాలు మరియు స్మూత్ యానిమేషన్ ప్రభావాలను అందిస్తుంది.
  • తక్కువ ఓవర్‌హెడ్: Electron లేదా WPFతో పోలిస్తే, Slint యొక్క రన్‌టైమ్ ఓవర్‌హెడ్ చాలా తక్కువ.

3. కీలక సాంకేతిక అమలులు ​

3.1 WSL ఇన్స్టాన్స్ డిటెక్షన్ మరియు పార్సింగ్ ​

యాప్ wsl.exe --list --verbose పిలిచి దాని అవుట్‌పుట్‌ను పార్స్ చేయడం (UTF-16 ఎన్కోడింగ్ ప్రాసెసింగ్) ద్వారా రియల్ టైమ్‌లో ఇన్స్టాన్స్ స్థితిని పొందుతుంది.

  • అంతర్లీన డీకోడింగ్: స్వంతంగా అభివృద్ధి చేసిన సమర్థవంతమైన ఎన్కోడర్/డీకోడర్, విభిన్న లోకల్ సెట్టింగ్‌లతో Windows వాతావరణాలలో అవుట్‌పుట్‌ను సరిగ్గా పార్స్ చేయడాన్ని నిర్ధారిస్తుంది.
  • స్థితి సమకాలీకరణ: సమయ నిర్దేశ పోలింగ్ + కార్యాచరణ-ట్రిగ్గర్డ్ ద్వంద్వ సమకాలీకరణ విధానం ఉపయోగించబడుతుంది.

3.2 డిస్క్ ఇమేజ్ మైగ్రేషన్ (VHDX Move) ​

మైగ్రేషన్ ఫీచర్ WSL యొక్క ఇంపోర్ట్/ఎగుమతి విధానాన్ని ఉపయోగిస్తుంది, కానీ అత్యంత అబ్‌స్ట్రాక్ట్ మరియు అటామిక్ ప్రాసెసింగ్‌తో.

  • ట్రాన్సాక్షన్ హామీ: మైగ్రేషన్ ప్రారంభించే ముందు, యాప్ మ్యూచువల్ ఎక్స్‌క్లూజన్ లాక్ (Mutex) ద్వారా టార్గెట్ డిస్ట్రోను లాక్ చేస్తుంది, సమకాలీన కార్యకలాపాల వల్ల డేటా దెబ్బతినకుండా నిరోధిస్తుంది.
  • స్వయంచాలక నమోదు: మైగ్రేషన్ పూర్తయిన తర్వాత, యాప్ స్వయంచాలకంగా VHDX పాత్‌ను మళ్లించి డిస్ట్రోను తిరిగి నమోదు చేస్తుంది, వినియోగదారు మాన్యువల్ జోక్యం అవసరం లేదు.

3.3 పోర్ట్ ఫార్వార్డింగ్ మరియు ఫైర్వాల్ ఆటోమేషన్ ​

నెట్‌వర్క్ ఫీచర్ కేవలం netsh interface portproxy కాల్ కాదు.

  • నియమ జీవితచక్ర నిర్వహణ: యాప్ స్వయంచాలకంగా ఇప్పటికే ఉన్న ఫైర్వాల్ నియమాలను గుర్తిస్తుంది. వినియోగదారు ఫార్వార్డింగ్ సృష్టించినప్పుడు, యాప్ Windows API లేదా CLI ద్వారా ఇన్‌బౌండ్ మినహాయింపు నియమాలను సమకాలీకరించి సృష్టిస్తుంది.
  • స్వయంచాలక IP పొందడం: wsl hostname -I ఫలితాన్ని పార్స్ చేయడం ద్వారా, హోస్ట్ మరియు ఇన్స్టాన్స్ మధ్య వర్చువల్ నెట్‌వర్క్ IPలను స్వయంచాలకంగా మ్యాప్ చేస్తుంది.

3.4 USBIP ఇంటిగ్రేషన్ ​

usbipd-win యొక్క కమాండ్ లైన్ ఇంటర్ఫేస్‌ను ఉపయోగిస్తుంది.

  • అనుమతి పెంపు ప్రాసెసింగ్: బైండింగ్ కార్యకలాపానికి అడ్మినిస్ట్రేటర్ అనుమతి అవసరం, బ్యాకెండ్ లాజిక్ గ్రేస్‌ఫుల్ UAC ఎలివేషన్ అభ్యర్థన ఫార్వార్డింగ్‌ను అమలు చేస్తుంది.
  • స్టేట్ మెషిన్: అంతర్గతంగా USB పరికర కనెక్షన్ స్టేట్ మెషిన్‌ను నిర్వహిస్తుంది, Attach/Detach ప్రక్రియ యొక్క ట్రేస్‌ఎబిలిటీని నిర్ధారిస్తుంది.

3.5 రిసోర్స్ మానిటరింగ్ మరియు లైట్‌వెయిట్ ​

యాప్ Windows నేటివ్ API (ఉదా: GetProcessMemoryInfo) పిలిచి స్వంత రిసోర్స్ వినియోగాన్ని పర్యవేక్షిస్తుంది.

  • అత్యంత తేలికైనది: ట్రే నిశ్శబ్ద మోడ్‌లో, యాప్ స్వయంచాలకంగా అనవసరమైన UI వనరులను విడుదల చేస్తుంది. ఆంగ్లం వంటి ప్రామాణిక అక్షర సెట్‌లకు, మెమరీ వినియోగం 10MB వరకు తక్కువగా ఉంటుంది; చైనీస్, జపనీస్, కొరియన్ వంటి సంక్లిష్ట అక్షర సెట్‌లకు, పెద్ద ఫాంట్ రెండరింగ్ కాష్ లోడ్ చేయాల్సి ఉంటుంది కాబట్టి, వినియోగం సుమారు 38MB ఉంటుంది.

4. పనితీరు ఆప్టిమైజేషన్ కొలమానాలు ​

కొలమానంలక్ష్యం/కొలతఆప్టిమైజేషన్ పద్ధతి
స్టార్టప్ వేగం< 500msప్రీ-కంపైల్డ్ Slint ఇంటర్ఫేస్, రన్‌టైమ్ పార్సింగ్ తగ్గించడం.
బేస్ మెమరీ (ట్రే)~10MBబ్యాక్‌గ్రౌండ్ పోలింగ్ ఫ్రీక్వెన్సీని కనిష్టీకరించడం, అవసరానికి అనుగుణంగా రెండరింగ్ కాష్ విడుదల.
CPU వినియోగం (నిశ్చలం)< 0.1%Windows ఈవెంట్-డ్రివెన్ మోడల్ ఉపయోగించడం, ఖాళీ లూప్ పోలింగ్ నివారించడం.
రెండరింగ్ FPS60 FPSSkia GPU యాక్సెలరేషన్, సబ్-పిక్సెల్ స్థాయి యాంటీ-అలియాసింగ్ రెండరింగ్.

5. బ్యాకెండ్ టాస్క్ డిస్ట్రిబ్యూషన్ లాజిక్ ​

UI స్మూత్‌నెస్ నిర్ధారించడానికి, అన్ని సమయం తీసుకునే కార్యకలాపాలు (VHDX ఎగుమతి వంటివి) అసమక్రమ టాస్క్‌ల ద్వారా పంపిణీ చేయబడతాయి:

  1. అభ్యర్థన ఎన్‌క్యాప్సులేషన్: UI థ్రెడ్ వినియోగదారు కార్యకలాపాన్ని Command సందేశంగా ఎన్‌క్యాప్సులేట్ చేస్తుంది.
  2. సందేశ ఛానెల్: tokio::sync::mpsc ద్వారా బ్యాక్‌గ్రౌండ్ టాస్క్ ప్రాసెసర్‌కు పంపబడుతుంది.
  3. స్థితి తిరిగి పంపడం: బ్యాక్‌గ్రౌండ్ టాస్క్ పూర్తయిన తర్వాత, కాల్‌బ్యాక్ లేదా షేర్డ్ స్టేట్ ద్వారా UI నవీకరించబడుతుంది. ఈ డిజైన్ కొన్ని GB పరిమాణంలో ఉన్న బ్యాకప్ టాస్క్ ప్రాసెసింగ్ సమయంలో కూడా ఇంటర్ఫేస్ వినియోగదారు క్లిక్‌లకు రియల్ టైమ్‌లో స్పందిస్తుందని నిర్ధారిస్తుంది.

6. సెక్యూరిటీ పరిగణనలు ​

  • అటామిక్ కార్యకలాపాలు: కీలకమైన ఇన్స్టాన్స్ అన్‌రిజిస్ట్రేషన్ మరియు మైగ్రేషన్ కోసం ముందస్తు ధృవీకరణను అమలు చేస్తుంది.
  • UAC ఎలివేషన్ నిర్వహణ: అవసరమైనప్పుడు మాత్రమే (USB పరికరం బైండింగ్ వంటివి) అనుమతి అభ్యర్థిస్తుంది, కనీస అనుమతి సూత్రాన్ని అనుసరిస్తుంది.
  • స్థానిక నిల్వ: కాన్ఫిగరేషన్ స్థానికంగా ~\.wsldashboardలో మాత్రమే సేవ్ చేయబడుతుంది, ఎటువంటి క్లౌడ్ సమకాలీకరణ లేదు, వినియోగదారు గోప్యతను రక్షిస్తుంది.