Skip to content

Hvítbók ​

Þetta skjal fer djúpt í arkitektúrhönnun WSL Dashboard, tæknival og undirliggjandi innleiðingarrökfræði lykilþátta, með það að markmiði að veita þróunaraðilum og háþróuðum notendum tæknilegt dýptarsjónarhorn.

1. Arkitektúryfirlit ​

WSL Dashboard notar klassíska arkitektúr svörun viðmótsdrifin + ósamstillt bakendavinnsla, og nýtir tegundakerfi og eignarráðsmódel Rust-tungumálsins til að tryggja minnisöryggi og mikla samhliða afköst.

Kjarnaíhlutir ​

  • Frontend (UI): Byggt á lýsandi viðmóti Slint. UI-þráðurinn sér um renderun og samskipti notenda.
  • Backend (Runtime): Byggt á ósamstilltu keyrsluumhverfi Tokio. Sér um dreifingu og framkvæmd kerfisskipana (CLI), skráa-I/O og netnustun.
  • Samskipti: UI-þráðurinn og ósamstillt verkefni eiga samskipti á skilvirkan og þráðaöruggan hátt í gegnum rás (MPSC) og sameiginlegt ástand (Arc/Mutex/RwLock).

2. Rökstuðningur tæknivals ​

Hvers vegna Rust? ​

  • Afköst: Núllkostnaðar fjarverur, þýtt í innfæddan vélkóða, engar GC-stopp.
  • Minnisöryggi: Útrýmir biðminnisflæðum og gagnakapphlaupi á þýðingartíma, sem er afar mikilvægt fyrir verkfæri sem vinna náið með kerfinu (eins og diskflutning, netstillingar).
  • Stærð tvítölu: Allar ósjálfstæðar einingar tengdar kyrrstætt, sem framleiðir eina skrá, flytjanlega keyranlega skrá.

Hvers vegna Slint + Skia? ​

  • Lýsandi setningafræði: Viðmótslýsing aðskilin frá rökfræði, auðviðhaldanlegur kóði.
  • Skia-renderun: Nýtir GPU-hraðall beint (í gegnum Skia-vélina), sem gefur subpixel-skýran texta og silkimjúkar hreyfimyndir.
  • Lítill kostnaður: Samanborið við Electron eða WPF er keyrslukostnaður Slint gífurlega lítill.

3. Lykil tæknileg innleiðing ​

3.1 Greining og þáttun WSL-tilvika ​

Forritið sækir stöðu tilvika rauntíma með því að kalla wsl.exe --list --verbose og þátta úttakið (meðhöndlar UTF-16 kóðun).

  • Undirliggjandi afkóðun: Sjálfþróaður skilvirkur kóðari tryggir rétta þáttun úttaks í Windows-umhverfum með mismunandi svæðisstillingum.
  • Staða samstilling: Notar tvöfalda samstillingarbúnað: regluleg köllun + aðgerðadrifin samstilling.

3.2 Flutningur diskmynda (VHDX Move) ​

Flutningsaðgerðin nýtir innflutnings-/útflutningsbúnað WSL, en með mikilli abstraktion og atómískri meðhöndlun.

  • Færsluábyrgð: Áður en flutningur hefst lokar forritið á markdreifingunni með gagnkvæmu útilokunarlás (Mutex) til að koma í veg fyrir gagnaskemmdir vegna samtímis aðgerða.
  • Sjálfvirk skráning: Eftir flutninginn endurbeinir forritið sjálfkrafa VHDX-slóðinni og skráir dreifinguna aftur; engin handvirk íhlutun nauðsynleg.

3.3 Gáttaáframsending og eldveggssjálfvirkni ​

Netaðgerðin er ekki bara netsh interface portproxy kall.

  • Lífsferilsstjórnun reglna: Forritið skynjar sjálfkrafa núverandi eldveggsreglur. Þegar notandinn býr til áframsendingu býr forritið samtímis til komandi undantekningarreglur í gegnum Windows API eða CLI.
  • Sjálfvirk IP-sótt: Með því að þátta niðurstöðu wsl hostname -I kortleggur það sjálfkrafa sýndarnet-IP milli hýsils og tilviks.

3.4 USBIP-samþætting ​

Nýtir skipanalínuviðmót usbipd-win.

  • Heimildahækkun: Bindingaraðgerðir krefjast stjórnendaheimilda; bakendarökfræðin innleiðir glæsilega milligöngu UAC-heimildabeiðna.
  • Ástandsstöðuvél: Viðheldur innvortis ástandsstöðuvél fyrir USB-tækjatengingu, sem tryggir rekjanleika í Attach/Detach ferlinu.

3.5 Auðlindaeftirlit og léttleiki ​

Forritið fylgist með eigin auðlindanotkun í gegnum innfædd Windows API (eins og GetProcessMemoryInfo).

  • Gífurlega létt: Í hljóðlátri bakkastillingu losar forritið virkan óþarfa UI-auðlindir. Fyrir staðlaða stafatöflur eins og ensku getur minnisnotkun farið niður í 10MB; fyrir flóknar stafatöflur eins og kínversku, japönsku og kóresku þarf að hlaða stærri leturgerðarrenderunarskyndiminni, sem gefur um 38MB notkun.

4. Afkastaþáttur mælikvarðar ​

MælikvarðiMarkmið/raunHagræðingaraðferð
Ræsingarhraði< 500msForþýtt Slint-viðmót, minni keyrslutímaþáttun.
Grunnminni (bakki)~10MBLágmarkar tíðni bakgrunnskallana, losar renderunarskyndiminni eftir þörfum.
CPU-notkun (kyrrstaða)< 0,1%Notar atvikadrifna líkan Windows, forðast tómar köllunarlykkjur.
Renderunarrammahraði60 FPSSkia GPU-hraðall, subpixel hristingarminnkun.

5. Rökfræði dreifingar bakendavinnslu ​

Til að tryggja mjúkt viðmót eru allar tímafrekar aðgerðir (eins og útflutningur VHDX) dreifðar í gegnum ósamstillt verkefni:

  1. Beiðni kapsla: UI-þráðurinn kapslar notandaaðgerðir sem Command skilaboð.
  2. Skilaboðarás: Send í gegnum tokio::sync::mpsc til vinnslutækis bakendaverkefna.
  3. Staða til baka: Þegar bakendaverkefninu lýkur er viðmótið uppfært í gegnum callback eða sameiginlegt ástand. Þessi hönnun tryggir að viðmótið bregst við smellum notandans rauntíma, jafnvel meðan á öryggisafritunarverkefnum upp á nokkra gígabæta stendur.

6. Öryggissjónarmið ​

  • Atómískar aðgerðir: Fyrir mikilvæga afléttingu tilvika og flutninga er fyrirfram-staðfesting innleidd.
  • UAC-heimildastjórnun: Biður aðeins um heimildir þegar nauðsyn krefur (eins og við bindingu USB-tækja), og fylgir meginreglunni um lágmarksheimildir.
  • Staðbundin geymsla: Stillingar eru aðeins vistaðar staðbundið í ~\.wsldashboard, án nokkurrar skýsamstillingar, sem verndar persónuvernd notandans.