Skip to content

Whitepaper

Þessi skjal veitir ítarlega sýn á byggingarhönnun, tæknival og undirliggjandi framkvæmdarfræði lykilatriða í WSL Dashboard, ætlað fyrir þróunaraðila og háþróaða notendur sem leita tæknilegs sjónarhorns.

1. Yfirlit yfir byggingu

WSL Dashboard notar klassíska viðbragðs- og UI-stýrð + samhliða bakenda verkefna byggingu, nýtt sér Rust gerðarkerfi og eignarhaldslíkanið til að tryggja minniöryggi og hátt afköst samtímisvinnslu.

Lykilþættir

  • Framendi (UI): Byggt á Slint lýsandi viðmóti. UI þráðurinn ber ábyrgð á myndgerð og notendavirkni.
  • Bakendi (Runtime): Byggt á Tokio samhliða keyrslutíma. Ber ábyrgð á sendingu og framkvæmd stýrikerfisskipana (CLI), skrá I/O og netkerfis hlustenda.
  • Samskipti: UI þráðurinn og samhliða verkefni eiga samskipti á skilvirkan og þráðaöruggan hátt gegnum Rásir (MPSC) og Sameiginlegt ástand (Arc/Mutex/RwLock).

2. Tæknirök

Af hverju Rust?

  • Afköst: Núllkostnaðar abstraktsjónir, vélrituð í innfæddan vélarforritskóða, engin GC hlé.
  • Minniöryggi: Útrýmur biðminni yfirflæði og gagna keppni við þýðingu — gagnrýnt fyrir tæki sem starfar á kerfisstigi (diskflutningur, netkerfisstillingar).
  • Tvíundarstærð: Tengir allar kerfisstillingar stöðugt til að búa til eina flytjanlega keyrsluskrá.

Af hverju Slint + Skia?

  • Lýsandi setningaskipulag: Aðskilur UI lýsingu frá rökfræði, heldur kóðagrunninum hreinum og viðhaldslegum.
  • Skia myndgerð: Nýtir GPU hraðal beint (gegnum Skia vélinni), veitir undir-pixla textaskýrleika og sléttar hreyfingar.
  • Lágmarks álag: Miðað við Electron eða WPF, er Slint keyrslutíma spor lágmark.

3. Lykiltæknilegar framkvæmdir

3.1 WSL tilvika skynjun og þáttun

Forritið sækir rauntíma tilviksstöðu með því að kalla wsl.exe --list --verbose og þátta úttak þess (meðhöndlun UTF-16 kóðunar).

  • Lágmarks afkóðun: Sérsniðinn, skilvirkur enkóðari/afkóðari tryggir rétta úttaksþáttun í mismunandi Windows umhverfum með mismunandi svæðisstillingum.
  • Stöðu samstilling: Notar tvöfalda samstilliningsaðferð — tímastýrða könnun sameinaða aðgerðavirkjuðum uppfærslum.

3.2 Diskmynd flutningur (VHDX færsla)

Flutningsaðgerðin nýtir WSL innflutnings/útflytningsaðferðina, en með háu stigi abstraktsjónar og frumeindleika.

  • Færsluábyrgð: Áður en flutningur hefst, læsir forritið mark dreifingu gegnum Mutex til að koma í veg fyrir að samtímis aðgerðir valdi spillta gögnum.
  • Sjálfvirk skráning: Eftir að flutningur er lokið, endurbeinir forritið sjálfkrafa VHDX slóðinni og endurskráir dreifinguna — engin handvirk íhlutun þarf.

3.3 Gátt áframsending og eldveggs sjálfvirkni

Netkerfisaðgerðin fer út fyrir einfalt netsh interface portproxy kall.

  • Reglu lífsferilsstjórnun: Forritið skynjar sjálfkrafa núverandi eldveggsreglur. Þegar notandi býr til áframsendingarreglu, býr það samtímis til inngangs undantekningarreglu gegnum Windows API eða CLI.
  • Sjálfvirk IP leysing: Með því að þátta úttakið frá wsl hostname -I, kortleggur það sjálfkrafa sýndarnetkerfi IP milli hýsils og tilviks.

3.4 USBIP samþætting

Nýtir usbipd-win skipanalínusniðið.

  • Réttindastjórnun: Bind aðgerðir krefjast stjórnenda réttinda. Bakendinn framkvæmir glæsilega UAC réttinda hækkunarbeiðnir.
  • Stöðuvél: Heldur uppi innri USB tækis tengingar stöðuvél til að tryggja fulla rekjanleika Attach/Detach aðgerða.

3.5 Auðlindaeftirlit og lágmark spor

Forritið fylgist með eigin auðlindanotkun með því að kalla innfædd Windows API (t.d. GetProcessMemoryInfo).

  • Hámark skilvirkni: Í hljóðlausu bakka ham, sleppir forritið fyrirbyggjandi óþarfa UI auðlindum. Fyrir staðlaða stafasett (t.d. ensku), getur minnisnotkun verið eins lág og 10MB; fyrir flókin stafasett (t.d. CJK), er hún um 38MB vegna stærri leturgerðarmyndunar skyndiminnis.

4. Afkasta mælingar

MælingMarkmið / MæltBestunarnálgun
Ræsistund< 500msForsamsett Slint viðmót, lágmarkun keyrslutíma þáttunar.
Grunnminni (bakki)~10MBLágmarkun bakgrunns könnunar tíðni, eftirspurn eftir myndgerðarminnis sleppingu.
CPU notkun (iðjulaus)< 0.1%Windows atburðastýrt líkan, engin upptekin lykkju könnun.
Myndgerðarmyndhröðun60 FPSSkia GPU hraðal, undir-pixla sléttun myndgerð.

5. Bakenda verkefnasending rökfræði

Til að tryggja UI viðbragðsgetu, eru allar tímafrekar aðgerðir (t.d. VHDX útflutningur) sendar sem samhliða verkefni:

  1. Beiðni umbúningur: UI þráðurinn umbýr notenda aðgerðum í Command skilaboð.
  2. Skilaboð rás: Sendir þau til bakgrunns verkefnis meðhöndlarans gegnum tokio::sync::mpsc.
  3. Stöðu endurkall: Þegar bakgrunns verkefni er lokið, uppfærir það UI gegnum endurkalli eða sameiginlegu ástandi. Þessi hönnun tryggir að jafnvel við vinnslu margra gígabæta afritunarverkefnis, heldur viðmótið fullri viðbragðsgetu gagnvart notenda inntaki.

6. Öryggissjónarmið

  • Frumeindaaðgerðir: Forskoðunar gildistaka er framkvæmd fyrir gagnrýna tilvika afskráningu og flutnings aðgerðir.
  • UAC réttinda stjórnun: Hækkaðar heimildir eru beðnar aðeins þegar þörf krefur (t.d. við bindingu USB tækis), í samræmi við lágmarksréttinda meginregluna.
  • Staðbundin geymsla: Stillingar eru vistaðar aðeins í staðbundna ~\.wsldashboard möppuna án nokkurs skýjasamstillingar, verndað notenda næði.