Skip to content

White Paper ​

Kini nga dokumento lawom nga naghisgot sa disenyo sa arkitektura, pagpili sa teknolohiya, ug pangunahing lohika sa pagpatuman sa mga importante nga mga feature sa WSL Dashboard, nga nagtumong sa paghatag og teknikal nga panan-aw alang sa mga developer ug advanced nga mga tiggamit.

1. Kinatibuk-ang Panglantaw sa Arkitektura ​

Ang WSL Dashboard naggamit og klasiko nga arkitektura nga responsive UI-driven + asynchronous backend tasks, nga naggamit sa type system ug ownership model sa Rust language aron masiguro ang memory safety ug taas nga concurrency performance.

Pangunahing mga Component ​

  • Frontend (UI): Declarative interface base sa Slint. Ang UI thread responsable sa rendering ug user interaction.
  • Backend (Runtime): Asynchronous runtime base sa Tokio. Responsable sa pag-apud-apod ug pagpatuman sa system commands (CLI), file I/O, ug network listening.
  • Communication: Ang UI thread ug asynchronous tasks nakig-uban nga episyente ug thread-safe pinaagi sa Channel (MPSC) ug Shared State (Arc/Mutex/RwLock).

2. mga Rason sa Pagpili sa Teknolohiya ​

Ngano nga Pilia ang Rust? ​

  • Performance: Zero-cost abstractions, gi-compile ngadto sa native machine code, walay GC jitter.
  • Memory safety: Giwala ang buffer overflow ug data race sa compile time, importante kaayo alang sa mga himan nga may kalabotan sa system-level operations (sama sa disk migration, network configuration).
  • Binary size: Static nga pag-link sa tanang dependencies, naghimo og single-file portable executable program.

Ngano nga Pilia ang Slint + Skia? ​

  • Declarative syntax: Ang paghulagway sa interface bulag sa lohika, sayon nga mamentinar ang code.
  • Skia rendering: Direkta nga naggamit sa GPU acceleration (pinaagi sa Skia engine), naghatag og sub-pixel level nga kalinaw sa teksto ug hamis nga animation effects.
  • Ubos nga overhead: Kumpara sa Electron o WPF, gamay ra kaayo ang runtime overhead sa Slint.

3. Importante nga mga Teknikal nga Pagpatuman ​

3.1 Pag-detect ug Pag-parse sa WSL Instances ​

Nakakuha ang app og status sa instance nga real-time pinaagi sa pagtawag sa wsl.exe --list --verbose ug pag-parse sa output (pagdumala sa UTF-16 encoding).

  • Bottom-level decoding: Kaugalingon nga episyente nga encoding decoder, nagsiguro nga husto nga ma-parse ang output sa lain-laing locale nga Windows environment.
  • Status synchronization: Naggamit og dual synchronization mechanism sa periodic polling + operation trigger.

3.2 Disk Image Migration (VHDX Move) ​

Naggamit ang migration function sa import-export mechanism sa WSL, apan adunay taas nga abstraction ug atomic processing.

  • Transactional guarantee: Sa dili pa magsugod ang migration, i-lock sa app ang target nga distribution pinaagi sa Mutex, nga magpugong sa data corruption tungod sa concurrent operations.
  • Awtomatikong pag-rehistro: Pagkahuman makompleto ang migration, awtomatikong i-redirect sa app ang VHDX path ug i-rehistro ang distribution, walay kinahanglan nga manual intervention sa user.

3.3 Port Forwarding ug Firewall Automation ​

Ang network function dili lamang simple nga netsh interface portproxy call.

  • Rule lifecycle management: Awtomatikong i-detect sa app ang mga kasamtangang firewall rules. Kung maghimo ang user og forwarding, naggamit ang app og Windows API o CLI aron sabay nga maghimo og inbound exception rules.
  • Awtomatikong pagkuha sa IP: Pinaagi sa pag-parse sa wsl hostname -I results, awtomatikong i-map ang virtual network IP tali sa host ug instance.

3.4 USBIP Integration ​

Naggamit sa command line interface sa usbipd-win.

  • Elevation handling: Ang bind operation nagkinahanglan og administrator rights, gipatuman sa backend logic ang eleganteng UAC elevation request forwarding.
  • Status state machine: Sulod nga gi-mentinar ang USB device connection state machine, nagsiguro sa traceability sa Attach/Detach process.

3.5 Resource Monitoring ug Lightweight ​

Gi-monitor sa app ang kaugalingon nga resource usage pinaagi sa pagtawag sa native Windows APIs (sama sa GetProcessMemoryInfo).

  • Pinakagaan: Sa tray silent mode, aktibong gibuhian sa app ang dili kinahanglanon nga UI resources. Para sa standard character sets sama sa English, mahimo nga ubos sa 10MB ang memory usage; para sa komplikado nga character sets sama sa Chinese-Japanese-Korean, tungod sa panginahanglan nga mag-load og dagkong font rendering cache, mga 38MB ang usage.

4. mga Indikator sa Performance Optimization ​

IndikatorTarget/NasukodPaagi sa Optimization
Katulin sa pagsugod< 500msPre-compile ang Slint interface, bawasan ang runtime parsing.
Base memory (tray)~10MBBawasan ang background polling frequency, buhian ang rendering cache base sa panginahanglan.
CPU usage (idle)< 0.1%Naggamit og Windows event-driven model, likayan ang walay sulod nga polling loop.
Render frame rate60 FPSSkia GPU acceleration, sub-pixel level anti-aliasing rendering.

5. Backend Task Distribution Logic ​

Aron masiguro ang hapsay sa UI, ang tanang bug-at nga operasyon (sama sa pag-export sa VHDX) gi-apod-apod pinaagi sa asynchronous tasks:

  1. Request wrapping: Gi-wrap sa UI thread ang user operations isip Command messages.
  2. Message channel: Gipadala sa backend task handler pinaagi sa tokio::sync::mpsc.
  3. Status feedback: Pagkahuman makompleto sa backend task, gi-update ang UI pinaagi sa callback o shared state. Gisiguro niining disenyo nga bisan sa pagproseso og GB-sized nga backup tasks, ang interface makarespond pa gihapon nga real-time sa user clicks.

6. mga Konsiderasyon sa Seguridad ​

  • Atomic operations: Para sa mga kritikal nga instance unregistration ug migration, gipatuman ang pre-validation.
  • UAC elevation management: Naghangyo lamang og permission kung kinahanglan (sama sa pag-bind sa USB device), nagsunod sa prinsipyo sa least privilege.
  • Local storage: Ang configuration naka-imbak lamang sa lokal nga ~\.wsldashboard, walay bisan unsang cloud synchronization, nagprotektar sa privacy sa user.