WSLG นั้นสั้นสำหรับ ระบบย่อย Windows สำหรับ Linux GUI และวัตถุประสงค์ของโครงการคือการเปิดใช้งานการสนับสนุนสำหรับการใช้งานแอปพลิเคชัน Linux GUI (X11 และ Wayland) บน Windows ในประสบการณ์เดสก์ท็อปแบบครบวงจร
WSLG มอบประสบการณ์แบบบูรณาการสำหรับนักพัฒนานักวิทยาศาสตร์หรือผู้ที่ชื่นชอบที่ต้องการหรือต้องการเรียกใช้ Windows บนพีซีของพวกเขา แต่ยังต้องการความสามารถในการใช้เครื่องมือหรือแอพพลิเคชั่นที่ทำงานได้ดีที่สุดหรือเฉพาะในสภาพแวดล้อม Linux ในขณะที่ผู้ใช้สามารถทำได้ในวันนี้โดยใช้การตั้งค่าหลายระบบด้วยพีซีแต่ละเครื่องที่อุทิศให้กับ Windows และ Linux เครื่องเสมือนโฮสติ้ง Windows หรือ Linux หรือ XServer ที่ทำงานบน Windows และฉายลงใน WSL, WSLG ทางเลือก.
WSLG มุ่งมั่นที่จะทำให้แอพพลิเคชั่น Linux GUI รู้สึกเป็นพื้นเมืองและเป็นธรรมชาติที่จะใช้กับ Windows จากการรวมเข้ากับเมนูเริ่มต้นสำหรับการเปิดตัวไปจนถึงการปรากฏตัวในแถบงานประสบการณ์ ALT-TAB ไปจนถึงการเปิดใช้งานการตัด/วางข้ามแอพพลิเคชั่น Windows และ Linux WSLG ช่วยให้ได้รับประสบการณ์เดสก์ท็อปที่ไร้รอยต่อและแอปพลิเคชัน Windows และ Linux
WSLG รองรับทั้ง Windows 11 และ Windows 10 ผู้ใช้ Windows 10 จะต้องตรวจสอบให้แน่ใจว่าการติดตั้ง Windows 10 ของพวกเขาได้รับการปรับปรุงอย่างเต็มที่โดยการเยี่ยมชม Windows Update และติดตั้งการอัปเดตที่มีอยู่ทั้งหมด
WSLG มีให้บริการทั้งสองเป็นส่วนหนึ่งของการรองรับกล่องจดหมาย Windows 11 WSL รวมถึงผ่านระบบย่อย Windows สำหรับ Linux จาก Microsoft Store ขอแนะนำอย่างยิ่งให้ใช้ WSL รุ่น Microsoft Store ซึ่งรองรับทั้ง Windows 10 และ Windows 11 และมี WSL และ WSLG รุ่นล่าสุด
ตรวจสอบให้แน่ใจว่าได้อัปเดตไดรเวอร์กราฟิกของคุณเป็นไดรเวอร์ล่าสุดที่มีจากเว็บไซต์ผู้ผลิต GPU ของคุณเพื่อรับประโยชน์จากการเร่งความเร็ว GPU ในสภาพแวดล้อม WSL ของคุณ
จากพรอมต์คำสั่งที่มีสิทธิ์ผู้ดูแลระบบเรียกใช้คำสั่ง wsl --install -d Ubuntu
จากนั้นรีบูตหากได้รับแจ้ง
หลังจากรีบูตการติดตั้งจะดำเนินต่อไป คุณจะถูกขอให้ป้อนชื่อผู้ใช้และรหัสผ่าน สิ่งเหล่านี้จะเป็นข้อมูลรับรอง Linux ของคุณพวกเขาสามารถเป็นอะไรก็ได้ที่คุณต้องการและไม่จำเป็นต้องตรงกับข้อมูลรับรอง Windows ของคุณ
voilà! ติดตั้ง WSL และ WSLG และพร้อมใช้งาน!
หากคุณมีการติดตั้ง WSL ที่มีอยู่โดยไม่มี WSLG และต้องการอัปเดตไปยัง WSL เวอร์ชันล่าสุดซึ่งรวมถึง WSLG ให้เรียกใช้คำสั่ง wsl --update
จากพรอมต์คำสั่งยกระดับ
โปรดทราบว่า WSLG เข้ากันได้กับ WSL 2 เท่านั้นและจะไม่ทำงานสำหรับการกระจาย WSL ที่กำหนดค่าให้ทำงานในโหมด WSL 1 ตรวจสอบว่า linux distro ของคุณได้รับการกำหนดค่าสำหรับการทำงานในโหมด WSL 2 หากไม่เปลี่ยนเป็น WSL 2 ในขณะที่คุณสามารถเรียกใช้ Linux distro ในโหมด WSL 1 หลังจากติดตั้ง WSLG หากคุณต้องการ จะไม่สามารถสื่อสารกับ WSLG และจะไม่สามารถเรียกใช้แอปพลิเคชัน GUI ได้
คุณสามารถแสดงรายการ distro ที่ติดตั้งในปัจจุบันและเวอร์ชันของ WSL ที่ได้รับการกำหนดค่าสำหรับการใช้คำสั่งต่อไปนี้จากพรอมต์คำสั่งยกระดับ
wsl -- list - v
หากทำงานในโหมดเวอร์ชัน 1 ให้เปลี่ยนเป็นเวอร์ชัน 2 ซึ่งอาจใช้เวลาสักครู่
wsl -- set-version _distro_name_ 2
รีสตาร์ท WSL โดยเรียกใช้คำสั่งนี้จากพรอมต์คำสั่งยกระดับให้แน่ใจว่าได้บันทึกงานที่ค้างอยู่ก่อน:
wsl -- shutdown
หากต้องการอัปเดตเป็นเวอร์ชันล่าสุดของ WSL และ WSLG ที่เผยแพร่เพื่อดูตัวอย่างเพียงเรียกใช้ wsl --update
จากพรอมต์คำสั่งหรือ PowerShell ที่ยกระดับ
คุณจะต้องรีสตาร์ท WSL เพื่อให้การเปลี่ยนแปลงมีผล คุณสามารถรีสตาร์ท WSL โดยเรียกใช้ wsl --shutdown
จากพรอมต์คำสั่งยกระดับ หาก WSL กำลังทำงานอยู่มันจะปิดตัวลงตรวจสอบให้แน่ใจว่าได้บันทึกการทำงานใด ๆ ก่อน! WSL จะรีสตาร์ทโดยอัตโนมัติในครั้งต่อไปที่คุณเปิดแอปพลิเคชัน WSL หรือเทอร์มินัล
หากคุณติดตั้ง Ubuntu
Linux distro ตามคำแนะนำเหล่านี้คุณจะพบไอคอน Ubuntu
ในเมนูเริ่มต้นของคุณให้เปิดใช้งาน สิ่งนี้จะเปิดตัว WSL 2 VM เปิดตัว Ubuntu WSL distro ใน VM นั้นและให้เทอร์มินัลให้คุณโต้ตอบกับมัน voilà! คุณกำลังใช้ Linux บน Windows!
หากคุณต้องการสำรวจการแจกแจง Linux เพิ่มเติมที่สร้างขึ้นสำหรับ WSL คุณสามารถใช้คำสั่ง wsl --list --online
จากพรอมต์คำสั่งยกระดับเพื่อระบุรายการการแจกแจงที่มีอยู่สำหรับระบบของคุณ คุณสามารถมีการแจกแจง Linux หลายครั้งภายใน WSL และพวกเขาจะอยู่ร่วมกันอย่างมีความสุขเคียงข้างกันดังนั้นอย่ากลัวที่จะทดลองและลองทำสิ่งต่างๆ
ขอแสดงความยินดีกับคุณเสร็จแล้วและพร้อมที่จะใช้แอพ GUI!
หากคุณต้องการเริ่มต้นด้วยแอพ GUI บางตัวคุณสามารถเรียกใช้คำสั่งต่อไปนี้จาก Linux Terminal ของคุณเพื่อดาวน์โหลดและติดตั้งแอปพลิเคชันยอดนิยม หากคุณใช้การกระจายที่แตกต่างจาก Ubuntu อาจใช้ตัวจัดการแพ็คเกจอื่น
# # Update list of available packages
sudo apt update
# # Gedit
sudo apt install gedit - y
# # GIMP
sudo apt install gimp - y
# # Nautilus
sudo apt install nautilus - y
# # VLC
sudo apt install vlc - y
# # X11 apps
sudo apt install x11 - apps - y
# # Google Chrome
cd / tmp
sudo wget https: // dl.google.com / linux / direct / google - chrome - stable_current_amd64.deb
sudo dpkg - i google - chrome - stable_current_amd64.deb
sudo apt install -- fix - broken - y
sudo dpkg - i google - chrome - stable_current_amd64.deb
# # Microsoft Teams
cd / tmp
sudo curl - L - o " ./teams.deb " " https://teams.microsoft.com/downloads/desktopurl?env=production&plat=linux&arch=x64&download=true&linuxArchiveType=deb "
sudo apt install . / teams.deb - y
# # Microsoft Edge Dev Browser
sudo curl https: // packages.microsoft.com / repos / edge / pool / main / m / microsoft - edge - dev / microsoft - edge - dev_118. 0.2060 . 1 - 1_amd64.deb - o / tmp / edge.deb
sudo apt install / tmp / edge.deb - y
เมื่อติดตั้งแอปพลิเคชันเหล่านี้แล้วคุณจะพบได้ในเมนูเริ่มต้นของคุณภายใต้ชื่อ distro ตัวอย่างเช่น Ubuntu -> Microsoft Edge
นอกจากนี้คุณยังสามารถเรียกใช้สิ่งเหล่านี้จากหน้าต่างเทอร์มินัลของคุณโดยใช้คำสั่ง:
xcalc
, xclock
, xeyes
gimp
gedit ~/.bashrc
nautilus
vlc
google-chrome
teams
microsoft-edge
ผู้ใช้ distro คือการกระจาย WSL ที่คุณใช้สำหรับงาน Linux ของคุณ คุณสามารถใช้คำสั่ง wsl --list --online
จากพรอมต์คำสั่ง Windows ที่ยกระดับเพื่อแสดงรายการการแจกแจง WSL ที่มีอยู่ในระบบของคุณ คุณสามารถเรียกใช้ distros ของผู้ใช้หลาย ๆ ด้านและพวกเขาจะอยู่ร่วมกันอย่างสงบสุขดังนั้นอย่ากลัวที่จะลอง distro ใหม่ ผู้ใช้แต่ละคนจะถูกจับคู่กับอินสแตนซ์ที่เป็นเอกลักษณ์ของระบบ distro แต่คุณยังสามารถโต้ตอบผ่านแอปพลิเคชัน GUI ที่ทำงานใน distro ผู้ใช้ที่แตกต่างกันอย่างราบรื่นเช่นตัด/วางระหว่างพวกเขา คอนเทนเนอร์พื้นฐานของผู้ใช้ที่หลากหลายควรมองไม่เห็นคุณ
ผู้ใช้และระบบทั้งหมดสำหรับผู้ใช้ Windows เฉพาะที่ทำงานภายในเครื่องเสมือน WSL เดียวกันกับอินสแตนซ์เดียวของเคอร์เนล Linux ผู้ใช้ Windows ที่แตกต่างกันบนพีซีมี VM ของตัวเองและอินสแตนซ์ของ WSL สภาพแวดล้อม Linux ของคุณรับประกันได้ว่าจะเป็นของคุณเองและไม่ได้แชร์กับผู้ใช้ Windows รายอื่นบนพีซีเครื่องเดียวกัน
ระบบ distro เป็นที่ที่เวทมนตร์ทั้งหมดเกิดขึ้น ระบบ Distro เป็นสภาพแวดล้อม Linux ที่มีการบรรจุซึ่ง WSLG XServer, Wayland Server และ Pulse Audio Server กำลังทำงานอยู่ ซ็อกเก็ตการสื่อสารสำหรับแต่ละเซิร์ฟเวอร์เหล่านี้จะถูกฉายลงในผู้ใช้ distro เพื่อให้แอปพลิเคชันไคลเอนต์สามารถเชื่อมต่อกับพวกเขาได้ เรากำหนดค่าตัวแปรสภาพแวดล้อม distro ของผู้ใช้ล่วงหน้าแสดง Wayland_display และ Pulse_Server เพื่ออ้างอิงเซิร์ฟเวอร์เหล่านี้โดยค่าเริ่มต้นดังนั้น WSLG จะสว่างขึ้นจากกล่อง
ผู้ใช้ที่ต้องการใช้เซิร์ฟเวอร์ที่แตกต่างจากที่ได้รับจาก WSLG สามารถเปลี่ยนตัวแปรสภาพแวดล้อมเหล่านี้ได้ ผู้ใช้ยังสามารถเลือกที่จะปิดระบบ distro ทั้งหมดโดยเพิ่มรายการต่อไปนี้ในไฟล์ .wslconfig
(อยู่ที่ c:usersMyUser.wslconfig
) สิ่งนี้จะปิดการสนับสนุนแอปพลิเคชัน GUI ใน WSL
[wsl2]
guiApplications=false
ระบบ distro นั้นขึ้นอยู่กับ Microsoft CBL-Mariner Linux นี่คือสภาพแวดล้อม Linux ที่น้อยที่สุดเพียงพอที่จะเรียกใช้ WSLG ชิ้นต่าง ๆ สำหรับรายละเอียดเกี่ยวกับวิธีการสร้างและปรับใช้ distro ระบบส่วนตัวโปรดดูคำแนะนำการสร้างของเรา
distro ผู้ใช้ WSL 2 ทุกคนจะถูกจับคู่กับอินสแตนซ์ของระบบ distro ของตัวเอง ระบบ distro ทำงานแยกบางส่วนจาก distro ของผู้ใช้ซึ่งมันถูกจับคู่ในเนมสเปซ NS/PID/UTS ของตัวเอง แต่แชร์เนมสเปซอื่น ๆ เช่น IPC เพื่ออนุญาตให้มีการเพิ่มประสิทธิภาพหน่วยความจำที่ใช้ร่วมกันข้ามขอบเขต
ในขณะที่ผู้ใช้สามารถรับเทอร์มินัลเข้าสู่ระบบ distro ระบบ distro ของระบบไม่ได้หมายถึงการใช้งานโดยตรงโดยผู้ใช้ ทุกอินสแตนซ์ของระบบ distro จะถูกโหลดอย่างเดียวจาก VHD สำรอง การดัดแปลงใด ๆ ที่ทำกับอินสแตนซ์ในหน่วยความจำของระบบ distro (เช่นการติดตั้งแพ็คเกจใหม่หรือการสร้างไฟล์ใหม่) จะถูกยกเลิกอย่างมีประสิทธิภาพเมื่อ WSL เริ่มต้นใหม่ เหตุผลที่เราทำเช่นนี้คือการเปิดใช้งานรูปแบบการบริการสำหรับระบบ distro ที่เราแทนที่รุ่นเก่าด้วยรูปแบบใหม่โดยไม่ต้องกังวลเกี่ยวกับการย้ายข้อมูลผู้ใช้ใด ๆ ที่มีอยู่ภายใน เราใช้การแมปแบบอ่านอย่างเดียวเพื่อให้ผู้ใช้ได้รับพฤติกรรมการทิ้งที่รู้จักกันดีในการเปลี่ยนแปลงใด ๆ ทุกครั้งที่ WSL จะเริ่มต้นใหม่แทนที่จะได้รับความประหลาดใจเมื่อ WSL ให้บริการ
แม้ว่า Microsoft จะตีพิมพ์ระบบ WSLG Distro เป็นแบบอ่านอย่างเดียว แต่เราต้องการกระตุ้นให้คนจรจัดและทดลองใช้ แม้ว่าเราคาดหวังว่าจะมีคนน้อยมากที่ต้องการหรือต้องการทำเช่นนั้น แต่เราได้แบ่งปันคำแนะนำโดยละเอียดเกี่ยวกับหน้าการบริจาคของเราเกี่ยวกับวิธีการสร้างและปรับใช้ Distro ของระบบส่วนตัว ผู้ใช้ส่วนใหญ่ที่ต้องการใช้แอปพลิเคชัน GUI ใน WSL ไม่จำเป็นต้องกังวลเกี่ยวกับรายละเอียดเหล่านั้น
WSLGD เป็นกระบวนการแรกที่จะเปิดตัวหลังจาก init WSLGD เปิดตัว Weston (กับ Xwayland), Pulseaudio และสร้างการเชื่อมต่อ RDP โดยการเปิดตัว MSTSC.Exe บนโฮสต์ในโหมดเงียบ การเชื่อมต่อ RDP จะยังคงใช้งานอยู่และพร้อมที่จะแสดงแอปพลิเคชัน GUI ใหม่ที่กำลังเปิดตัวในช่วงเวลาหนึ่งโดยไม่มีการเชื่อมต่อความล่าช้า จากนั้น WSLGD จะตรวจสอบกระบวนการเหล่านี้และหากพวกเขาออกจากข้อผิดพลาด (พูดว่าเป็นผลมาจากความผิดพลาด) จะรีสตาร์ทโดยอัตโนมัติ
Weston เป็นผู้ประกอบการอ้างอิงโครงการ Wayland และหัวใจของ WSLG สำหรับ WSLG เราได้ขยายแบ็กเอนด์ RDP ที่มีอยู่ของ Libweston เพื่อสอนวิธีการใช้งานระยะไกลมากกว่าการตรวจสอบ/เดสก์ท็อป นอกจากนี้เรายังได้เพิ่มฟังก์ชั่นต่าง ๆ ให้กับมันเช่นการสนับสนุนสำหรับหลายผู้ตรวจสอบตัด/วางเสียงเข้า/ออก ฯลฯ ...
การรวมแอปพลิเคชันนั้นทำได้ผ่านเทคโนโลยี RDP ที่เรียกว่า Rail (การรวมแอปพลิเคชันระยะไกลในพื้นที่) และ VAIL (แอปพลิเคชันเสมือนจริงรวมอยู่ในเครื่อง) ความแตกต่างที่สำคัญระหว่าง Rail และ Vail คือวิธีการขนส่งพิกเซลตรงข้ามจากเซิร์ฟเวอร์ RDP ไปยังไคลเอนต์ RDP ในทางรถไฟสันนิษฐานว่าเซิร์ฟเวอร์และไคลเอนต์กำลังทำงานบนระบบทางกายภาพที่แตกต่างกันในการสื่อสารผ่านเครือข่ายและทำให้พิกเซลต้องถูกคัดลอกผ่านการขนส่ง RDP ใน Vail เป็นที่เข้าใจกันว่าเซิร์ฟเวอร์และไคลเอนต์อยู่ในระบบทางกายภาพเดียวกันและสามารถแบ่งปันหน่วยความจำข้ามขอบเขตของแขก/โฮสต์ VM เราได้เพิ่มการสนับสนุนสำหรับทั้ง Rail และ Vail ไปยังแบ็กเอนด์ Libweston RDP แม้ว่าสำหรับ WSLG จะใช้การสนับสนุน Vail ได้อย่างมีประสิทธิภาพเท่านั้น ในขณะที่สร้าง WSLG เราได้นำรางรถไฟมาใช้เป็นครั้งแรกในขณะที่ชิ้นส่วนที่จำเป็นทำให้สามารถเปลี่ยนไปใช้เวลได้รับการพัฒนาแบบขนาน เราตัดสินใจที่จะให้การสนับสนุนนั้นเนื่องจากสามารถนำกลับมาใช้ใหม่ในสถานการณ์ที่น่าสนใจอื่น ๆ นอก WSLG เช่นสำหรับการปรับเปลี่ยนแอปพลิเคชันจาก PI ที่ใช้ Linux ในการแบ่งปันหน่วยความจำระหว่างแขก Linux และ Windows Host เราใช้ Virtio-Fs
Weston เป็นโมดูลและมีเปลือกหอยต่าง ๆ ในปัจจุบันเช่นเปลือกเดสก์ท็อป, เปลือกเต็มหน้าจอ (AKA Kiosk) และเปลือกอัตโนมัติ สำหรับ WSLG เราแนะนำเปลือกใหม่ที่เรียกว่าเปลือกราง วัตถุประสงค์ของเปลือกรางคือการช่วยในการทำหน้าต่างใหม่ของแต่ละหน้าต่างจาก Linux ไปยัง Windows เช่นเปลือกนั้นง่ายมากและไม่เกี่ยวข้องกับวิดเจ็ตจริงหรือพิกเซลที่เป็นของเชลล์
Weston ใช้ประโยชน์จาก FreerDP เพื่อใช้งานเซิร์ฟเวอร์ RDP แบ็กเอนด์ FreerDP ใช้เพื่อเข้ารหัสการสื่อสารทั้งหมดที่ไปจากเซิร์ฟเวอร์ RDP (ใน Weston) ไปยังไคลเอนต์ RDP (MSTSC บน Windows) ตามข้อกำหนดของโปรโตคอล RDP นอกจากนี้ยังใช้เพื่อถอดรหัสทราฟฟิกทั้งหมดที่มาจากไคลเอนต์ RDP ไปยังเซิร์ฟเวอร์ RDP
สำหรับเสียงใน (ไมโครโฟน) และนอก (ลำโพง/หูฟัง) WSLG เรียกใช้เซิร์ฟเวอร์ Pulseaudio WSLG ใช้ปลั๊กอินอ่างล้างจานสำหรับเสียงและปลั๊กอินแหล่งที่มาสำหรับเสียงปลั๊กอินเหล่านี้ถ่ายโอนตัวอย่างเสียงระหว่างพัลส์เซอเวอร์และเซิร์ฟเวอร์ Weston RDP ได้อย่างมีประสิทธิภาพ สตรีมเสียงจะถูกรวมเข้าด้วยกันโดย Weston RDP Server เข้าสู่การขนส่ง RDP ซึ่งเปิดใช้งานเสียงเข้า/ออกได้อย่างมีประสิทธิภาพในแบ็กเอนด์ Weston RDP ในทุกสถานการณ์ (Desktop/Rail/Vail Style Remoting) รวมถึง WSLG
WSLG ใช้ประโยชน์จากช่องเสมือน RDP ที่กำหนดเองระหว่างเซิร์ฟเวอร์ Weston RDP และไคลเอนต์ MSTSC RDP ที่ทำงานบนโฮสต์ Windows ช่องนี้ใช้โดย Weston เพื่อระบุแอปพลิเคชัน Linux GUI ทั้งหมด (เช่นแอปพลิเคชันที่มีรายการไฟล์เดสก์ท็อปของ Type GUI) พร้อมกับบรรทัดคำสั่ง Launch และไอคอน Open Source WSLDVCPLUGIN ประมวลผลรายการแอปพลิเคชัน Linux GUI ที่ส่งผ่านช่องทางนี้และสร้างลิงก์สำหรับพวกเขาในเมนู Windows Start
ในขณะที่ WSLG ทำงานได้โดยมีหรือไม่มีการสนับสนุน GPU เสมือนจริงหากคุณตั้งใจจะเรียกใช้แอพพลิเคชั่นที่เข้มข้นของกราฟิกเช่น Blender หรือ Gazebo มันเป็นการดีที่สุดที่จะทำงานบนระบบด้วย GPU และไดรเวอร์ที่สามารถรองรับ WSL ได้ ภาพรวมของสถาปัตยกรรม VGPU ของเราและวิธีที่เราทำให้แอปพลิเคชัน Linux สามารถเข้าถึง GPU ใน WSL ได้ที่บล็อก DirectX ของเรา
การสนับสนุนการแสดงผลแบบเร่งความเร็ว OpenGL นั้นเกิดขึ้นได้ผ่านการทำงานทีม D3D ของเราได้ทำกับ Collabora และชุมชน Mesa ในการสร้างไดรเวอร์ D3D12 Gallium
การสนับสนุนสำหรับ Linux รวมถึงการสนับสนุน WSLG นั้นได้รับการอัปสตรีมและเป็นส่วนหนึ่งของการเปิดตัว MESA 21.0 ในการใช้ประโยชน์จากการเร่งความเร็วนี้คุณจะต้องอัปเดตเวอร์ชันของ MESA ที่ติดตั้งใน Distro ผู้ใช้ของคุณ นอกจากนี้ยังต้องการให้ผู้ขาย distro ของคุณเลือกที่จะสร้างและเผยแพร่ไดรเวอร์ D3D12 Gallium ใหม่ไปยังที่เก็บแพ็คเกจของพวกเขา เรากำลังทำงานร่วมกับสำนักพิมพ์ WSL Distro ต่างๆเพื่อแจ้งให้ทราบถึงการเปลี่ยนแปลงเหล่านี้
โปรดทราบว่าสำหรับการเปิดตัว WSLG ครั้งแรก VGPU Interops กับ Weston Compositor ผ่านหน่วยความจำระบบ หากทำงานบน GPU แบบไม่ต่อเนื่องนี่หมายความว่าข้อมูลที่แสดงผลจะถูกคัดลอกจาก VRAM ไปยังหน่วยความจำระบบก่อนที่จะถูกนำเสนอไปยังผู้ประกอบการภายใน WSLG และอัปโหลดไปยัง GPU อีกครั้งทางด้าน Windows เป็นผลให้มีการลงโทษประสิทธิภาพตามอัตราการนำเสนอ ที่อัตราเฟรมที่สูงมากเช่น 600fps ใน GPU แบบไม่ต่อเนื่องค่าโสหุ้ยนั้นอาจสูงถึง 50% ในอัตราเฟรมที่ต่ำกว่าหรือใน GPU ในตัวประสิทธิภาพที่ใกล้เคียงกับพื้นเมืองมากขึ้นสามารถทำได้ขึ้นอยู่กับปริมาณงาน การใช้ VGPU ยังคงให้ประสิทธิภาพและการปรับปรุงประสบการณ์ที่สำคัญมากกว่าการใช้ซอฟต์แวร์เรนเดอร์แม้จะมีข้อ จำกัด V1 นี้
WSLG สร้างขึ้นจากการทำงานที่ยอดเยี่ยมของชุมชน Linux และใช้ประโยชน์จากโครงการโอเพนซอร์สจำนวนมาก ส่วนประกอบส่วนใหญ่จะใช้ตามรุ่นต้นน้ำและไม่ต้องการการเปลี่ยนแปลงใด ๆ เพื่อให้แสงสว่างใน WSLG ส่วนประกอบบางอย่างที่เป็นหัวใจของ WSLG โดยเฉพาะ Weston, Freerdp และ Pulseaudio จำเป็นต้องมีการเปลี่ยนแปลงเพื่อเปิดใช้งานการรวม WSLG ที่หลากหลาย การเปลี่ยนแปลงเหล่านี้ยังไม่ได้ต้นน้ำ Microsoft กำลังทำงานร่วมกับชุมชนเพื่อแบ่งปันการมีส่วนร่วมเหล่านี้กลับมากับแต่ละโครงการซึ่งเมื่อเวลาผ่านไป WSLG สามารถสร้างได้จากส่วนประกอบต้นน้ำโดยตรงโดยไม่จำเป็นต้องมีการแก้ไขเฉพาะ WSLG ใด ๆ
การบริจาคทั้งหมดในเที่ยวบินเหล่านี้จะถูกเก็บไว้ใน Microsoft Mirror Repos เราทำให้กระจกเหล่านี้ทันสมัยอยู่เสมอด้วยการเปิดตัวต้นน้ำและเวทีการเปลี่ยนแปลง WSLG ของเราใน repos เหล่านั้น WSLG ดึงและสร้างรหัสจาก Repos กระจกเหล่านี้ซึ่งเป็นส่วนหนึ่งของการแสดงตัวอย่าง WSLG ภายในของเรา กระจกเหล่านี้เป็นที่สาธารณะและเข้าถึงได้สำหรับทุกคน นักพัฒนาที่อยากรู้อยากเห็นสามารถมองในระยะแรกของการบริจาคของเราโดยดูที่รหัสในกระจกเหล่านั้นโปรดทราบว่ารหัสสุดท้ายของรหัสจะดูแตกต่างกันเมื่อการบริจาคมาถึงโครงการต้นน้ำและปรับตามคำติชมที่ได้รับโดย เจ้าของโครงการต่างๆ กระจกทั้งหมดของเราทำตามรุ่นเดียวกัน มีสาขา หลัก ที่สอดคล้องกับสาขาต้นน้ำที่จุดซิงโครไนซ์ล่าสุดของเรา เราอัปเดตสาขา หลัก เป็นครั้งคราวเพื่อเลือกอัปเดตจากโครงการต้นน้ำ นอกจากนี้ยังมีสาขา การทำงาน ที่มีการเปลี่ยนแปลงในเที่ยวบินทั้งหมดของเรา WSLG ถูกสร้างขึ้นโดยใช้สาขา การทำงาน จากแต่ละโครงการกระจก
โครงการที่ WSLG รักษากระจกจะเปลี่ยนไปตามกาลเวลาเนื่องจากการมีส่วนร่วมในเที่ยวบินวิวัฒนาการ เมื่อการมีส่วนร่วมบางอย่างเป็นต้นน้ำมันอาจไม่จำเป็นต้องรักษากระจกอีกต่อไป ณ จุดนั้นจะถูกลบออกและ WSLG จะเริ่มใช้ประโยชน์จากส่วนประกอบต้นน้ำโดยตรง ในขณะที่เราสว่างขึ้นฟังก์ชั่นใหม่ใน WSLG กระจกใหม่อาจได้รับการแนะนำให้รู้จักกับการมีส่วนร่วมของเวทีกับส่วนประกอบใหม่ ดังนั้นคาดว่ารายการกระจกจะเปลี่ยนการทำงานล่วงเวลา
ณ จุดนี้เรามีกระจกโครงการต่อไปนี้สำหรับการมีส่วนร่วมในเที่ยวบินในปัจจุบัน
โครงการ | repo ต้นน้ำ | กระจก WSLG |
---|---|---|
เวสตัน | https://github.com/wayland-project/weston | https://github.com/microsoft/weston-mirror |
Freerdp | https://github.com/freerdp/freerdp | https://github.com/microsoft/freerdp-mirror |
พูเลียอุดิโอ | https://github.com/pulseaudio/pulseaudio | https://github.com/microsoft/pulseaudio-mirror |
ต่อไปนี้เป็นภาพรวมระดับสูงของการมีส่วนร่วมในการบินในแต่ละโครงการที่มีอยู่ในกระจกเหล่านี้
WSLG ใช้ประโยชน์จาก Weston ในฐานะนักแต่งเพลง Wayland ที่เชื่อมโยง Linux และ Windows Worlds โดยใช้เทคโนโลยี RDP เพื่อเนื้อหาแอปพลิเคชันระยะไกลระหว่างกัน Weston มีแบ็กเอนด์ RDP อยู่แล้ว แต่มันก็ถูก จำกัด ไว้ที่การรีโมท remoting ผู้ตรวจสอบเดี่ยว เราได้ปรับปรุงแบ็กเอนด์ RDP อย่างมากเพื่อรวมฟังก์ชันการทำงานขั้นสูงเช่นการสนับสนุนแบบหลายผู้ตรวจสอบการรวมคลิปบอร์ดสำหรับการคัดลอก/วางและเสียงเข้า/ออก เราได้เปิดใช้งานโหมดรีโมทใหม่ที่เรียกว่า Rail (แอปพลิเคชันระยะไกลที่รวมเข้าด้วยกัน) และ VAIL (แอปพลิเคชันเสมือนจริงที่รวมเข้าด้วยกัน) ซึ่งแอปพลิเคชันแต่ละตัวแทนที่จะเป็นเดสก์ท็อป/จอภาพ การเปลี่ยนแปลงเหล่านี้ไม่เฉพาะเจาะจงกับ WSLG พวกเขาเพิ่มฟังก์ชั่นลงในแบ็กเอนด์ RDP ที่มีอยู่และสามารถนำกลับมาใช้ใหม่ได้ในสถานการณ์อื่น ๆ เช่นกัน (เช่นการใช้แบ็กเอนด์ Weston RDP ใหม่เพื่อแอปพลิเคชันระยะไกลที่ทำงานบน Raspberry Pi ไปยังอุปกรณ์อื่นที่ใช้ไคลเอนต์ RDP)
เพื่อเปิดใช้งานการรวมที่หลากหลายใน WSLG เรายังได้เพิ่มปลั๊กอินขนาดเล็กลงในแบ็กเอนด์ RDP เฉพาะกับ WSLG ใน Weston ปลั๊กอินมีหน้าที่รับผิดชอบในการเชื่อมต่อกับผู้ใช้ distro และค้นหาแอปพลิเคชันที่ติดตั้ง (aka ไฟล์เดสก์ท็อป) ปลั๊กอินส่งรายการแอพพลิเคชั่นทั้งหมดที่พบพร้อมกับคำสั่งและไอคอนการเปิดใช้งานโฮสต์ บนโฮสต์ Windows ส่วนปลั๊กอิน MSTSC โอเพ่นซอร์สของโครงการ WSLG ใช้ข้อมูลนั้นเพื่อสร้างทางลัดสำหรับแอปพลิเคชัน Linux เหล่านี้ไปยังเมนูเริ่มต้น Windows
นอกจากนี้เรายังแก้ไขข้อบกพร่องหลายอย่างที่ส่งผลกระทบต่อแอปพลิเคชันต่าง ๆ โดยทั่วไปสิ่งเหล่านี้เป็นปัญหาที่ส่งผลกระทบต่อเวสตันในทุกโหมดและไม่เฉพาะเจาะจงกับ WSLG
ปัจจุบัน Weston ใช้ FreerDP สำหรับแบ็กเอนด์ RDP WSLG ยังคงใช้ประโยชน์จาก FreeRDP และเราได้เพิ่มการสนับสนุนสำหรับโปรโตคอล/ช่อง RDP ใหม่เพื่อเปิดใช้งานสถานการณ์ที่ปรับให้เหมาะสมของ VAIL รวมถึงการรองรับปลั๊กอิน WSLG นอกจากนี้เรายังแก้ไขข้อบกพร่องต่าง ๆ ที่ส่งผลกระทบต่อ interops ด้วย MSTSC หรือทำให้เกิดความไม่แน่นอน
สำหรับ Pulseaudio การมีส่วนร่วมของเรามุ่งเน้นไปที่อ่างล้างจานและปลั๊กอินแหล่งข้อมูลที่สลับข้อมูลเสียงระหว่าง Pulseaudio และ Backend Weston RDP เพื่อให้ข้อมูลเสียงสามารถรวมเข้ากับการเชื่อมต่อ RDP กลับไปยังโฮสต์ ไม่มีการเปลี่ยนแปลงแกนกลางของ Pulseaudio นอกการเพิ่มปลั๊กอินใหม่เหล่านี้
หากคุณต้องการที่จะทุบหรือมีส่วนร่วมใน WSLG โปรดดูรายละเอียดหน้าการบริจาคของเรารวมถึงวิธีการสร้างและเรียกใช้ WSLG เวอร์ชันส่วนตัว
สำหรับปัญหาที่เกี่ยวข้องกับความปลอดภัยเช่นการรายงานข้อผิดพลาดหรือให้คำแนะนำสำหรับคุณสมบัติใหม่โปรดใช้ตัวติดตามปัญหาของโครงการนี้
หากต้องการรายงานปัญหาด้านความปลอดภัยกับ WSLG หรือผลิตภัณฑ์ Microsoft อื่น ๆ โปรดทำตามคำแนะนำที่มีรายละเอียดที่นี่
โครงการนี้อาจมีเครื่องหมายการค้าหรือโลโก้สำหรับโครงการผลิตภัณฑ์หรือบริการ การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ที่ได้รับอนุญาตขึ้นอยู่กับและต้องปฏิบัติตามแนวทางเครื่องหมายการค้าและแบรนด์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ในรุ่นที่แก้ไขของโครงการนี้จะต้องไม่ทำให้เกิดความสับสนหรือบอกเป็นสปอนเซอร์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของบุคคลที่สามจะอยู่ภายใต้นโยบายของบุคคลที่สามเหล่านั้น