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 ನಲ್ಲಿ ಮಾತ್ರ ಸಂಗ್ರಹವಾಗುತ್ತದೆ, ಯಾವುದೇ ಕ್ಲೌಡ್ ಸಿಂಕ್ ಇಲ್ಲ, ಬಳಕೆದಾರರ ಗೌಪ್ಯತೆಯನ್ನು ರಕ್ಷಿಸುತ್ತದೆ.