Skip to content

Farar Takarda ​

Wannan takarda tana zurfafa bincike kan ƙirar gine-gine na WSL Dashboard, zaɓin fasaha da kuma logikan aiwatarwa na ayyuka masu muhimmanci a ciki, don ba masu haɓakawa da ƙwararrun masu amfani hangen nesa na fasaha mai zurfi.

1. Duban Gine-gine ​

WSL Dashboard yana amfani da ƙirar gine-gine na tuki na UI mai amsawa + ayyuka na baya na asynchronization, yana amfani da tsarin nau'ikan harshen Rust da samfurin mallaka don tabbatar da amincin ƙwaƙwalwa da ingancin babban juna.

Muhimman Abubuwan ​

  • Frontend (UI): ƙira mai bayyanawa, tushensa Slint. Zaren UI ne ke da alhakin nuna hoto da mu'amalar mai amfani.
  • Backend (Runtime): runtime na asynchronization, tushensa Tokio. Yana da alhakin rarraba da aiwatar da umarnin tsarin (CLI), ayyukan fayil I/O da kuma sauraron cibiyar sadarwa.
  • Sadarwa: zaren UI da ayyukan asynchronization suna sadarwa cikin inganci da aminci na zare ta Channel (MPSC) da Shared State (Arc/Mutex/RwLock).

2. Dalilan Zaɓin Fasaha ​

Me Yasa Rust? ​

  • Inganci: abstraction mara farashi, an haɗa shi zuwa lambar injin na asali, babu girgizar GC.
  • Amincin ƙwaƙwalwa: yana kawar da ƙetare buffer da gasar bayanai a lokacin haɗawa, wanda yake da muhimmanci ga kayan aikin da suka shafi ayyukan tushe na tsarin (kamar matsar diski, saitin cibiyar sadarwa).
  • Girman binary: yana ɗaure duk abubuwan dogaro a tsaye, yana samar da shirin aiwatarwa mai ɗauka na fayil ɗaya.

Me Yasa Slint + Skia? ​

  • Ƙa'idar bayyanawa: bayanin ƙira ya rabu da logika, lambar tana da sauƙin kulawa.
  • Nuna hoto na Skia: amfani da haɓakar GPU kai tsaye (ta injin Skia), yana ba da rubutu mai tsabta a matakin subpixel da ingantattun motsi.
  • Ƙananan farashi: idan aka kwatanta da Electron ko WPF, farashin runtime ɗin Slint yana da ƙanƙanta sosai.

3. Muhimman Ayyuka na Fasaha ​

3.1 Ganowa da Fassara Misalan WSL ​

Manhajar tana samun matsayin misalai a lokacin gaskiya ta kiran wsl.exe --list --verbose da fassara fitarwarsa (sarrafa ƙididdigar UTF-16).

  • Ƙaddamarwa a baya: ƙaddamarwar da aka ƙera da kai tana tabbatar da fassara fitarwa da kyau a muhallin Windows da saitunan yanki daban-daban.
  • Daidaita matsayi: tsarin daidaitawa sau biyu na tambaya akai-akai + ƙaddamarwa ta aiki.

3.2 Matsar Hoton Diski (VHDX Move) ​

Aikin matsawa yana amfani da tsarin shigo/fitarwa na WSL, amma an ɗauke shi zuwa matakin abstraction mai girma kuma an sarrafa shi cikin atomatik.

  • Kariyar ma'amala: kafin fara matsawa, manhajar tana kulle rarraba na manufa ta kulle (Mutex), don hana lalacewar bayanai saboda ayyukan lokaci ɗaya.
  • Rijista kai tsaye: bayan kammala matsawa, manhajar tana sake tura hanyar VHDX kuma ta sake yin rijistar rarraba kai tsaye, ba tare da shigar mai amfani da hannu ba.

3.3 Gaba da Tashoshin Jira da Sarrafa Katangar Wuta ​

Aikin cibiyar sadarwa ba kiran netsh interface portproxy mai sauƙi ba ne kawai.

  • Sarrafa rayuwar dokoki: manhajar tana gano dokokin katangar wuta da ke akwai kai tsaye. Lokacin da mai amfani ya ƙirƙiri gaba, manhajar tana ƙirƙirar keɓe na dokokin shigowa ta API ɗin Windows ko CLI a lokaci ɗaya.
  • Samun IP kai tsaye: ta fassara sakamakon wsl hostname -I, tana nuna IP ɗin cibiyar sadarwar kama-da-wane tsakanin masaukin da misali kai tsaye.

3.4 Haɗin USBIP ​

Yana amfani da hanyar layin umarni na usbipd-win.

  • Sarrafa haɓaka izini: aikin ɗaure yana buƙatar izinin admin, logikan baya yana aiwatar da mika buƙatar haɓaka UAC cikin kyau.
  • Injinin jihar: yana kula da injinin jihar haɗin na'urar USB a ciki, yana tabbatar da ana iya bin sawun tsarin Attach/Detach.

3.5 Kulawa da Albarkatu da Ƙananan Nauyi ​

Manhajar tana kula da amfani da albarkatunta ta hanyar API ɗin asali na Windows (kamar GetProcessMemoryInfo).

  • Marar nauyi sosai: a yanayin akwatin tsarin shiru, manhajar tana sakin albarkatun UI marasa amfani da gangan. Ga daidaitattun tsarin haruffa (kamar Turanci), amfani da ƙwaƙwalwa na iya ragu zuwa 10MB; ga rikitattun tsarin haruffa kamar Sinanci, Jafananci da Koriya, saboda buƙatar loda babban ajiya na nuna hoto na fonts, amfani ya kai kusan 38MB.

4. Ma'aunin Inganta Aiki ​

Ma'auniManufa/da aka aunaHanyar ingantawa
Saurin farawa< 500msƘirar Slint da aka riga aka haɗa, rage fassarar lokacin gudana.
Ƙwaƙwalwa na asali (akwatin tsari)~10MBƘarƙashin yawaitar tambaya a baya, sakin ajiyar nuna hoto bisa buƙata.
Amfani da CPU (rashin aiki)< 0.1%Amfani da tsarin aukuwa na Windows, guje wa madaukai na tambaya marasa aiki.
Yawan nuna hoto60 FPSHaɓakar GPU na Skia, nuna hoto marar jagwa a matakin subpixel.

5. Logikan Rarraba Ayyuka na Baya ​

Don tabbatar da laushin UI, duk ayyuka masu ɗaukar lokaci (kamar fitar da VHDX) ana rarraba su a matsayin ayyukan asynchronization:

  1. Rufe buƙata: zaren UI yana rufe aikin mai amfani a matsayin saƙon Command.
  2. Tashar saƙo: aika zuwa mai sarrafa ayyuka na baya ta tokio::sync::mpsc.
  3. Mai da matsayi: bayan kammala aikin baya, ana sabunta UI ta kiran baya ko raba jihar. Wannan ƙira tana tabbatar da cewa ko da lokacin sarrafa ayyukan ajiya na girman GB da yawa, ƙira har yanzu tana amsawa ga dannawar mai amfani a lokacin gaskiya.

6. La'akari da Tsaro ​

  • Ayyuka na atomatik: an aiwatar da dubawa na farko ga muhimman cire misalai da matsawa.
  • Sarrafa haɓaka UAC: ana neman izini kawai lokacin da ya zama dole (kamar aikin ɗaure na'urar USB), bisa ƙa'idar mafi ƙarancin izini.
  • Ajiya na gida: ana adana saituna kawai a gida a ~\.wsldashboard, ba tare da kowane daidaitawa na girgije ba, yana kare sirrin mai amfani.