Skip to content

श्वेतपत्र ​

हा दस्तऐवज WSL Dashboard चे आर्किटेक्चर डिझाइन, तंत्रज्ञान निवड आणि प्रमुख वैशिष्ट्यांच्या मागील अंमलबजावणी तर्काचा सखोल अभ्यास करतो, डेव्हलपर आणि प्रगत वापरकर्त्यांसाठी तांत्रिक सखोल दृष्टिकोन देण्यासाठी.

1. आर्किटेक्चर विहंगावलोकन ​

WSL Dashboard शास्त्रीय रिस्पॉन्सिव्ह UI ड्राइव्हन + असिंक्रोनस बॅकएंड टास्क आर्किटेक्चर वापरते, Rust भाषेची टाइप सिस्टम आणि मालकी मॉडेल वापरून मेमरी सुरक्षितता आणि उच्च समांतरता कार्यक्षमता सुनिश्चित करते.

प्रमुख घटक ​

  • Frontend (UI): Slint आधारित डिक्लेरेटिव्ह इंटरफेस. UI थ्रेड रेंडरिंग आणि वापरकर्ता संवादासाठी जबाबदार.
  • Backend (Runtime): Tokio आधारित असिंक्रोनस रनटाइम. सिस्टम आज्ञा (CLI) वितरण, फाइल I/O आणि नेटवर्क ऐकण्यासाठी जबाबदार.
  • Communication: UI थ्रेड आणि असिंक्रोनस कार्ये Channel (MPSC) आणि Shared State (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. कार्यक्षमता ऑप्टिमायझेशन मेट्रिक्स ​

मेट्रिकलक्ष्य/प्रत्यक्षऑप्टिमायझेशन पद्धत
स्टार्टअप वेग< 500msSlint इंटरफेस पूर्व-संकलन, रनटाइम विश्लेषण कमी.
मूलभूत मेमरी (ट्रे)~10MBपार्श्वभूमी पोलिंग वारंवारता कमी, आवश्यकतेनुसार रेंडरिंग कॅश मुक्त.
CPU वापर (स्थिर)< 0.1%Windows इव्हेंट-ड्रिव्हन मॉडेल वापरून रिकाम्या लूप पोलिंग टाळा.
रेंडरिंग फ्रेम रेट60 FPSSkia GPU वेगवेगळे, सब-पिक्सेल अँटी-अलियासिंग रेंडरिंग.

5. बॅकएंड कार्य वितरण तर्क ​

UI ची गुळगुळीतता सुनिश्चित करण्यासाठी, सर्व वेळखाऊ ऑपरेशन्स (VHDX एक्सपोर्टसारखी) असिंक्रोनस कार्य वितरणाद्वारे चालवली जातात:

  1. विनंती आवरण: UI थ्रेड वापरकर्ता ऑपरेशन Command संदेशात आवरण करते.
  2. संदेश वाहिनी: tokio::sync::mpsc द्वारे पार्श्वभूमी कार्य प्रोसेसरला पाठवते.
  3. स्थिती परत पाठवणे: पार्श्वभूमी कार्य पूर्ण झाल्यावर, कॉलबॅक किंवा सामायिक स्थितीद्वारे UI अद्यतन करते. हे डिझाइन अनेक GB बॅकअप कार्य प्रक्रिया करत असतानाही इंटरफेस रिअल-टाइममध्ये वापरकर्त्याच्या क्लिक्सना प्रतिसाद देते याची खात्री करते.

6. सुरक्षा विचार ​

  • अणु ऑपरेशन्स: महत्त्वपूर्ण इन्स्टन्स अनलोड आणि स्थलांतरासाठी, पूर्व-पडताळणी अंमलात आणली आहे.
  • UAC एलिव्हेशन व्यवस्थापन: फक्त आवश्यकतेनुसार (USB उपकरण बाइंडसारखे) परवानगी मागते, किमान परवानगी तत्त्वाचे पालन करते.
  • स्थानिक साठवण: संरचना फक्त स्थानिक ~\.wsldashboard मध्ये साठवली जाते, कोणतेही क्लाउड समक्रमण नाही, वापरकर्त्याची गोपनीयता रक्षण करते.