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 ਵਿੱਚ ਸੰਭਾਲੀ ਜਾਂਦੀ ਹੈ, ਕੋਈ ਕਲਾਉਡ ਸਿੰਕ ਨਹੀਂ, ਉਪਭੋਗਤਾ ਦੀ ਗੋਪਨੀਯਤਾ ਦੀ ਰੱਖਿਆ ਕਰਦਾ ਹੈ।