Skip to content

ነጭ ወረቀት ​

ይህ ሰነድ የWSL Dashboard አርክቴክቸር ንድፍ፣ የቴክኖሎጂ ምርጫዎች እና የዋና ተግባራት ከበስተመመሊሽ አፈጻጸም አመክንዮ ላይ ጥልቅ ምርመራ ያካሂዳል፣ ለገንቢዎች እና ለላቁ ተጠቃሚዎች ጥልቅ የቴክኒክ እይታ ይሰጣል።

1. የአርክቴክቸር አጠቃላይ እይታ ​

WSL Dashboard ክላሲካል ምላሽ ሰጪ UI አንቀሳቃሽ + የኋላ መስመር አሲንክሮነስ ተግባራት አርክቴክቸርን ይጠቀማል፣ የRust ቋንቋ ዓይነት ስርዓት እና የባለቤትነት ሞዴል የማህደረ ትውስታ ደህንነትን እና ከፍተኛ አፈጻጸምን አብረው እንዲኖሩ ያረጋግጣሉ።

ዋና ክፍሎች ​

  • Frontend (UI): በ Slint ላይ የተመሰረተ ገላጭ በይነገጽ። የUI ክር ለማሳያ እና ለተጠቃሚ መስተጋብር ተጠያቂ ነው።
  • Backend (Runtime): በ Tokio ላይ የተመሰረተ አሲንክሮነስ ራንታይም። ለስርዓት ትዕዛዞች (CLI) አፈጻጸም አሰራር እና አከፋፋይ፣ የፋይል I/O ክዋኔዎች እና የአውታረ መረብ ማዳመጫ ተጠያቂ ነው።
  • ግንኙነት: የ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. የአፈጻጸም ማመቻቸት መለኪያዎች ​

መለኪያዒላማ/የተለካየማመቻቸት ዘዴ
የመነሻ ፍጥነት< 500msአስቀድሞ የተቀናጀ የSlint በይነገጽ፣ በራንታይም የሚደረገውን ትንተና ቀንሷል።
መሠረታዊ ማህደረ ትውስታ (የትሪ ሁነታ)~10MBዝቅተኛ የኋላ መስመር የድምጽ መጠየቅ ድግግሞሽ፣ የማሳያ መሸጎጫ በፍላጎት መልቀቅ።
የCPU ፍጆታ (እንቅስቃሴ እጦት)< 0.1%የWindows ክስተት ሞዴል መጠቀም፣ ባዶ የድምጽ መጠየቅ ዑደቶችን ማስወገድ።
የማሳያ ፍጥነት60 FPSየSkia GPU ማጣደፍ፣ ንዑስ-ፒክስል ማለስለስ።

5. የኋላ መስመር ተግባር አከፋፋይ አመክንዮ ​

ለUI ለስላሳነት፣ ሁሉም ረጅም ጊዜ የሚወስዱ ክዋኔዎች (እንደ VHDX ማስመጣት) እንደ አሲንክሮነስ ተግባራት ይከፋፈላሉ:

  1. ጥያቄ ማሸግ: የUI ክር የተጠቃሚውን ክዋኔ ወደ Command መልእክት ያሽጋል።
  2. የመልእክት ቻናል: በtokio::sync::mpsc ወደ ኋላ መስመር ተግባር አቀናባሪ ይላካል።
  3. የሁኔታ ግብረመልስ: የኋላ መስመር ተግባሩ ከተጠናቀቀ በኋላ UI በግብረመልስ ጥሪዎች ወይም በተጋራ ሁኔታ ይዘመናል። ይህ ንድፍ በበርካታ GB መጠን ያላቸውን የመጠባበቂያ ክዋኔዎች ሲያካሂድ እንኳን በይነገጹ ለተጠቃሚ ጠቅታ በቅጽበት ምላሽ እንዲሰጥ ያረጋግጣል።

6. የደህንነት ግምትዎች ​

  • አቶሚክ ክዋኔዎች: ለወሳኝ ኢንስታንስ ማስወገድ እና ዝውውር ቅድመ ምርመራዎች ተተግብረዋል።
  • የUAC ማስፋፊያ አስተዳደር: ፍቃድ የሚጠየቀው አስፈላጊ ሆኖ ሲገኝ ብቻ ነው (እንደ የUSB መሣሪያ ማሰር)፣ ዝቅተኛ ፍቃድ መርህን ይከተላል።
  • የአካባቢ ማከማቻ: ቅንብሮች በተለየ ሁኔታ በ~\.wsldashboard ውስጥ በአካባቢው ብቻ ይቀመጣሉ፣ ምንም የደመና ማመሳሰል የለም — የተጠቃሚ ግላዊነትን ይጠብቃል።