Wine คือ Windows Compatible Layer ที่อนุญาตให้ผู้ใช้เรียกใช้แอพ Windows บนระบบปฏิบัติการอื่น Wine สำหรับ Android มาถึงเวอร์ชัน 5.0 แล้ว ลองดูสิ!
ระบบนิเวศของแอป Android ได้รับการพัฒนาอย่างต่อเนื่องตลอดหลายปีที่ผ่านมาที่ Android มีอยู่ โดยได้แรงหนุนจากการนำอุปกรณ์เคลื่อนที่มาใช้เป็นปฏิสัมพันธ์หลักกับคอมพิวเตอร์อย่างต่อเนื่องสำหรับคนส่วนใหญ่ ผู้ใช้จำนวนมากสนใจที่จะใช้ชีวิตแบบมือถือเท่านั้น และนั่นเป็นเพราะแอพและระบบนิเวศของแอพบนมือถือได้จัดการเพื่อตอบสนองความต้องการเฉพาะของพวกเขาแล้ว แต่ถ้าคุณพบว่าตัวเองต้องการแอปพลิเคชันเดสก์ท็อปโดยไม่ต้องเข้าถึงเดสก์ท็อป คุณจะทำอย่างไร นี่คือที่มาของ Wine ซึ่งเป็น Windows Compatible Layer ที่ให้ผู้ใช้สามารถเรียกใช้แอพพลิเคชั่น Windows เต็มรูปแบบบนระบบปฏิบัติการที่แตกต่างกัน ไวน์สำหรับ Android มี ตอนนี้ถึง v5.0 แล้วเปรียบเทียบความพยายามในการพัฒนาที่คุ้มค่าจากทีมงานตลอดหนึ่งปี
Wine เป็นความเข้ากันได้แบบโอเพ่นซอร์สฟรีสำหรับ Windows โดยมีเป้าหมายเพื่อให้โปรแกรมคอมพิวเตอร์ที่พัฒนาขึ้นสำหรับ Windows สามารถทำงานบนระบบปฏิบัติการอื่นได้ Wine สำหรับ Android นำ Wine มาสู่ Android
, อย่างชัดเจน. Wine ไม่ใช่ Emulator (ซึ่งจริงๆ แล้วเป็นชื่อย่อแบบเรียกซ้ำ) ดังนั้นจึงสามารถทำงานได้เท่านั้น แอพเวอร์ชันเฉพาะสถาปัตยกรรม -- เวอร์ชัน ARM ของ Wine สำหรับ Android จะรันเฉพาะแอปพลิเคชัน ARM เท่านั้น และไม่ใช่ x86ไฮไลท์สำหรับการเปิดตัว Wine 5.0 ที่เสถียร ได้แก่ การรองรับหลายจอภาพและการรองรับ Vulkan 1.1 บันทึกการเปลี่ยนแปลงที่สมบูรณ์สำหรับการอัปเดตมีดังนี้:
บันทึกการเปลี่ยนแปลงไวน์ 5.0:
- โมดูลพีอี:
- โมดูลส่วนใหญ่สร้างขึ้นในรูปแบบ PE (Portable Executable, รูปแบบไบนารีของ Windows) แทนที่จะเป็น ELF เมื่อคอมไพเลอร์ MinGW พร้อมใช้งาน ซึ่งช่วยแผนการป้องกันการคัดลอกต่างๆ ที่ตรวจสอบว่าเนื้อหาบนดิสก์และในหน่วยความจำของโมดูลระบบเหมือนกัน
- ไบนารี PE จริงจะถูกคัดลอกไปยังคำนำหน้า Wine แทนที่จะเป็นไฟล์ DLL ปลอม สิ่งนี้ทำให้คำนำหน้าดูเหมือนการติดตั้ง Windows จริงมากขึ้น โดยต้องเสียพื้นที่ดิสก์เพิ่มเติมบางส่วน
- โมดูลที่ถูกแปลงเป็น PE สามารถใช้ฟังก์ชัน C แบบอักขระแบบกว้างมาตรฐานได้ เช่นเดียวกับค่าคงที่อักขระแบบอักขระแบบกว้าง เช่น L"abc" ทำให้โค้ดอ่านง่ายขึ้น
- ไม่ใช่ทุกโมดูลที่จะถูกแปลงเป็น PE; นี่เป็นกระบวนการต่อเนื่องที่จะดำเนินต่อไปในระหว่างซีรีส์การพัฒนา Wine 5.x
- รันไทม์ Wine C ได้รับการอัปเดตเพื่อรองรับการลิงก์ไปยังไบนารีที่คอมไพล์โดย MinGW โดยค่าเริ่มต้นจะใช้แทนรันไทม์ MinGW เมื่อสร้าง DLL
- กราฟิก:
- รองรับอะแดปเตอร์แสดงผลและจอภาพหลายตัวอย่างเหมาะสม รวมถึงการเปลี่ยนแปลงการกำหนดค่าแบบไดนามิก
- ไดรเวอร์ Vulkan รองรับเวอร์ชัน 1.1.126 ของข้อมูลจำเพาะ Vulkan
- ไลบรารี WindowsCodecs สามารถแปลงรูปแบบบิตแมปเพิ่มเติมได้ รวมถึงรูปแบบที่จัดทำดัชนีด้วยจานสี
- Direct3D:
- แอปพลิเคชัน Direct3D แบบเต็มหน้าจอจะขัดขวางโปรแกรมรักษาหน้าจอ
- DXGI swapchain นำเสนอแจ้งให้แอปพลิเคชันทราบเมื่อหน้าต่างที่เกี่ยวข้องถูกย่อให้เล็กสุด ซึ่งโดยทั่วไปจะช่วยให้แอปพลิเคชันลดการใช้งาน CPU ในขณะที่ย่อเล็กสุด และในบางกรณีจำเป็นต้องอนุญาตให้หน้าต่างแอปพลิเคชันได้รับการกู้คืนอีกครั้ง
- การสลับระหว่างโหมดเต็มหน้าจอและโหมดหน้าต่างโดยใช้ชุดค่าผสม Alt+Enter มาตรฐานถูกนำมาใช้สำหรับแอปพลิเคชัน DXGI
- คุณสมบัติต่อไปนี้ถูกนำมาใช้กับแอปพลิเคชัน Direct3D 12:
- การสลับระหว่างแบบเต็มหน้าจอและแบบหน้าต่าง
- การเปลี่ยนโหมดการแสดงผล
- ของขวัญที่ปรับขนาดแล้ว
- สลับช่วงเวลา คุณลักษณะเหล่านี้เคยถูกนำมาใช้กับ Direct3D API เวอร์ชันก่อนหน้าแล้ว
- ปรับปรุงการจัดการเคส Edge ต่างๆ ท่ามกลางคนอื่น ๆ:
- ค่าอ้างอิงอยู่นอกช่วงสำหรับการทดสอบอัลฟ่าและสเตนซิล
- การสุ่มตัวอย่างทรัพยากร 2D ด้วยเครื่องเก็บตัวอย่าง 3D และในทางกลับกัน
- การวาดภาพด้วยพื้นผิวและบัฟเฟอร์ที่แมป
- การใช้ออบเจ็กต์ Clipper DirectDraw ที่ไม่ถูกต้อง
- การสร้างอุปกรณ์ Direct3D บน Windows ที่ไม่ถูกต้อง เช่น หน้าต่างเดสก์ท็อป
- วิวพอร์ตที่มี Z ขั้นต่ำมากกว่าหรือเท่ากับ Z สูงสุด
- ทรัพยากรเชื่อมโยงผ่านทั้งมุมมองทรัพยากรเชเดอร์และมุมมองเป้าหมายการแสดงผลหรือลายฉลุเชิงลึกในเวลาเดียวกัน
- Blits ระหว่างรูปแบบที่มีและไม่มีส่วนประกอบอัลฟ่า เนื่องจากแอปพลิเคชันที่มีพฤติกรรมที่ดีไม่ได้ขึ้นอยู่กับ Edge Case เหล่านี้ โดยทั่วไปแล้วจะส่งผลต่อแอปพลิเคชันหนึ่งหรือสองแอปพลิเคชันต่อแอปพลิเคชันเท่านั้น อย่างไรก็ตามก็มีอยู่ค่อนข้างมาก
- พื้นที่พื้นผิวสกปรกจะถูกติดตามได้แม่นยำยิ่งขึ้นสำหรับการอัปโหลดพื้นผิว Direct3D 8 และ 9
- การอัปโหลดพื้นผิว 3 มิติที่บีบอัด S3TC ต้องใช้พื้นที่ที่อยู่น้อยลง เนื่องจากพื้นผิว 3 มิติอาจมีขนาดใหญ่ และพื้นที่ที่อยู่มากเกินไปเป็นปัญหาสำหรับแอปพลิเคชัน 32 บิต พื้นผิว 3 มิติที่บีบอัดด้วย S3TC จะถูกอัปโหลดต่อชิ้น แทนที่จะอัปโหลดในการอัปโหลดครั้งเดียว
- มีการใช้งานอินเทอร์เฟซ ID3D11Multithread
- มีการแก้ไขและปรับปรุงการคำนวณแสงต่างๆ สำหรับแอปพลิเคชัน DirectDraw รุ่นเก่า
- มีการสนับสนุนแบบจำกัดสำหรับ blits ข้าม swapchains
- มีการนำ APIs การสะท้อนเชเดอร์เพิ่มเติมมาใช้
- ตัวแยก CPU ของ wined3d สามารถจัดการทรัพยากรต้นทางที่ถูกบีบอัดได้ การสนับสนุนทรัพยากรปลายทางที่บีบอัดถูกนำมาใช้แล้วในรุ่นก่อนหน้า
- ฐานข้อมูลกราฟิกการ์ด Direct3D รู้จักการ์ดกราฟิกมากขึ้น
- คีย์รีจิสทรี HKEY_CURRENT_USER\Software\Wine\Direct3D ใหม่:
- "shader_backend" (REG_SZ)แบ็กเอนด์เชเดอร์ที่จะใช้ ค่าที่เป็นไปได้คือ "glsl" (ค่าเริ่มต้น) สำหรับ GLSL, "arb" สำหรับโปรแกรมจุดยอด/แฟรกเมนต์ ARB และ "ไม่มี" เพื่อปิดใช้งานการสนับสนุนเชเดอร์
- "strict_shader_math" (REG_DWORD)เปิดใช้งาน (0x1) หรือปิดใช้งาน (0x0, ค่าเริ่มต้น) การแปล Direct3D shader ที่เข้มงวดยิ่งขึ้น ซึ่งอาจมีค่าใช้จ่ายด้านประสิทธิภาพ ขณะนี้สิ่งนี้สร้างความแตกต่างกับแบ็กเอนด์ GLSL shader เริ่มต้นร่วมกับไดรเวอร์ NVIDIA ที่เป็นกรรมสิทธิ์เท่านั้น
- คีย์รีจิสทรี HKEY_CURRENT_USER\Software\Wine\Direct3D ที่เลิกใช้แล้ว:
- "UseGLSL"สิ่งนี้ถูกแทนที่ด้วยการตั้งค่า "shader_backend" ด้านบน
- D3DX :
- รองรับการบีบอัดพื้นผิวโดยใช้การบีบอัด S3TC
- การดำเนินงานต่างๆ เช่น การเติมพื้นผิวบนพื้นผิวที่ไม่สามารถแมปได้จะถูกนำไปใช้อย่างถูกต้องมากขึ้น ก่อนหน้านี้การใช้งานของพวกเขาอาศัยการใช้งาน Direct3D พื้นฐานซึ่งไม่ได้บังคับใช้ข้อจำกัดในการทำแผนที่
- มีการปรับปรุงและแก้ไขต่างๆ ในกรอบเอฟเฟกต์
- เคอร์เนล:
- ฟังก์ชันส่วนใหญ่ที่เคยเป็นใน Kernel32 จะถูกย้ายไปยัง KernelBase เพื่อให้เป็นไปตามสถาปัตยกรรมของ Windows เวอร์ชันล่าสุด
- ไลบรารีของบิต 32/64 ที่ไม่ถูกต้องจะถูกละเว้นเมื่อพบในพาธการค้นหา เพื่อให้สามารถโหลดไลบรารีที่ถูกต้องหากพบเพิ่มเติมในพาธ
- อ็อบเจ็กต์เคอร์เนลได้รับการจำลองที่ดีกว่าสำหรับไดรเวอร์อุปกรณ์ที่คาดว่าจะจัดการอ็อบเจ็กต์จากฝั่งเคอร์เนล
- ออบเจ็กต์การซิงโครไนซ์ระดับเคอร์เนล เช่น Spin Locks, Fast mutexes, Remove Locks และทรัพยากรต่างๆ จะถูกนำไปใช้
- สถานะแบตเตอรี่ของระบบได้รับการรายงานไปยังแอปพลิเคชันอย่างเหมาะสม
- หน้าจอผู้ใช้:
- หน้าต่างที่ย่อเล็กสุดจะแสดงโดยใช้แถบชื่อเรื่องแทนไอคอนสไตล์ Windows 3.1 แบบเก่า
- ลักษณะปุ่มใหม่ ปุ่มแยกและลิงค์คำสั่งถูกนำมาใช้
- ตัวควบคุมการแก้ไขจะตั้งค่าระยะขอบอย่างถูกต้องสำหรับฟอนต์ CJK ด้วย
- การรวมเดสก์ท็อป:
- ลิงก์สัญลักษณ์ไปยังไดเร็กทอรี Unix ที่เกี่ยวข้องถูกสร้างขึ้นสำหรับโฟลเดอร์ 'ดาวน์โหลด' และ 'เทมเพลต'
- อุปกรณ์อินพุต:
- สามารถติดตั้งและโหลดไดรเวอร์อุปกรณ์ Plug & Play ได้เมื่อเริ่มต้นระบบ
- คอนโทรลเลอร์เกมได้รับการรองรับที่ดีกว่า รวมถึงการรองรับสวิตช์หมวก ล้อ ระบบควบคุมแก๊ส และเบรกอย่างเหมาะสม
- ไม่รองรับ API จอยสติ๊กเก่าของ Linux เวอร์ชันเก่ากว่า 2.2 อีกต่อไป
- .สุทธิ:
- Mono engine ได้รับการอัพเดตเป็นเวอร์ชัน 4.9.4 รวมถึงบางส่วนของเฟรมเวิร์ก Windows Presentation Foundation (WPF)
- ส่วนเสริม Gecko และ Mono รองรับการติดตั้งที่ใช้ร่วมกัน โดยที่ไฟล์จะถูกใช้โดยตรงจากตำแหน่งร่วมภายใต้ /usr/share/wine แทนที่จะถูกคัดลอกไปยังคำนำหน้าใหม่ทุกรายการ
- อินเทอร์เน็ตและเครือข่าย:
- เอ็นจิ้น Gecko ได้รับการรีเฟรชเพื่อรองรับ toolchain ล่าสุด
- มีการนำ HTML API ใหม่จำนวนหนึ่งมาใช้
- MSHTML รองรับองค์ประกอบ SVG บางอย่าง
- VBScript รองรับวัตถุข้อผิดพลาดและการแพร่กระจายข้อยกเว้น
- มีการนำฟังก์ชันบิวด์อิน VBScript จำนวนหนึ่งไปใช้
- โหมดที่สอดคล้องกับ JScript EcmaScript ได้รับการขยายเพื่อรองรับคุณสมบัติเพิ่มเติม
- วัตถุสคริปต์ JScript และ VBScript เปิดเผยอินเทอร์เฟซข้อมูลประเภท
- การกำหนดค่าพร็อกซี HTTP สามารถเรียกข้อมูลผ่าน DHCP
- รองรับการเปลี่ยนเส้นทาง Passport HTTP
- บริการ HTTP และไลบรารีฝั่งไคลเอ็นต์ที่เกี่ยวข้อง (HTTPAPI) มีการใช้งานบางส่วน
- การเข้ารหัส:
- รองรับคีย์ ECC (elliptic-curve) เมื่อใช้ GnuTLS
- มีการนำเข้าคีย์และใบรับรองจาก PFX blobs
- รองรับอัลกอริธึมการรับคีย์ PBKDF2
- ข้อความและแบบอักษร:
- คุณสมบัติการวางตำแหน่ง OpenType ได้รับการสนับสนุนใน DirectWrite และเปิดใช้งานสำหรับสคริปต์ละตินตามค่าเริ่มต้น รวมถึงการจัดช่องไฟด้วย
- การเข้าถึงข้อมูลแบบอักษรปลอดภัยยิ่งขึ้นโดยการตรวจสอบตารางข้อมูลต่างๆ ก่อนใช้งาน
- อินเทอร์เฟซ DirectWrite ได้รับการอัปเดตเป็น SDK ล่าสุด โดยใช้การเพิ่ม API ล่าสุดบางส่วน
- เสียง / วิดีโอ:
- ไลบรารี XAudio2 ได้รับการปรับใช้ใหม่เพื่อใช้ไลบรารี FAudio ภายนอกเพื่อความเข้ากันได้ที่ดีขึ้น
- ห้องสมุดของ Media Foundation ประกอบไปด้วย:
- รองรับคิวงานแบบอะซิงโครนัสในตัวและผู้ใช้
- ความสามารถในการส่งรายการงานโทรกลับ การรอ กำหนดเวลา และงานปกติเป็นระยะ พร้อมรองรับลำดับความสำคัญของรายการ
- รองรับคิวกิจกรรมสื่อ
- API หลักต่างๆ เพื่อจัดการออบเจ็กต์ประเภทสื่อ ตัวอธิบายสตรีมและการนำเสนอ คุณลักษณะของออบเจ็กต์ ออบเจ็กต์สตรีมไบต์ ตัวอย่าง และบัฟเฟอร์
- การใช้งานตัวแก้ไขซอร์สเริ่มต้น
- การใช้งาน Source Reader API ในเบื้องต้น
- การใช้งานสำหรับวัตถุตัวอย่าง Grabber
- การสนับสนุนหลักสำหรับการสร้างออบเจ็กต์โทโพโลยี
- การใช้งานนาฬิกาการนำเสนอในตัว เริ่มใช้งานฟังก์ชัน Media Session
- ตัวกรองการจับภาพวิดีโอได้รับการย้ายเพื่อใช้ v4l2 แทน v4l1 API ที่เลิกใช้แล้ว ทำให้สามารถใช้กล้องบางตัวที่ไม่รองรับ v4l1
- การสนับสนุนการแปล YUV เป็น RGB และการอ่านจากอุปกรณ์ v4l2 ที่ใช้ mmap() ได้ถูกลบออกแล้ว ตอนนี้เราพึ่งพา libv4l2 สำหรับทั้งสองสิ่งนี้
- ตัวถอดรหัส AVI, MPEG-I และ WAVE ในตัวถูกลบออกแล้ว ตอนนี้เราใช้ GStreamer หรือ Mac QuickTime Toolkit เพื่อถอดรหัสไฟล์สื่อดังกล่าว
- มีการใช้งาน API การกำหนดค่า VMR7 เพิ่มเติมบางส่วน
- ไดรเวอร์เสียงรองรับการปรับระดับเสียงต่อช่องสัญญาณ
- ความเป็นสากล:
- ตารางอักขระ Unicode เป็นไปตามเวอร์ชัน 12.1.0 ของ Unicode Standard
- มีการใช้การทำให้เป็นมาตรฐานของ Unicode
- รหัสภูมิภาคทางภูมิศาสตร์จะถูกตั้งค่าโดยอัตโนมัติในรีจิสทรีตามสถานที่ปัจจุบัน สามารถแก้ไขได้หากจำเป็นภายใต้ HKEY_CURRENT_USER\Control Panel\International\Geo
- รองรับสถานที่สิงหลและอัสตูเรียส
- รองรับเพจรหัส 28601 (ละติน/ไทย)
- RPC/คอม:
- typelib marshaller รองรับโครงสร้างและอาร์เรย์ที่ซับซ้อน
- มีการใช้งานไลบรารีรันไทม์ Windows Script ในเบื้องต้น
- มีการใช้งานเบื้องต้นของไลบรารี Microsoft ActiveX Data Objects (ADO)
- ผู้ติดตั้ง:
- รองรับไฟล์แพตช์ Microsoft Installer (MSI)
- เครื่องมือ WUSA (ตัวติดตั้ง Windows Update Standalone) รองรับการติดตั้งไฟล์อัพเดต .MSU
- แพลตฟอร์ม ARM:
- มีการนำการคลี่คลายข้อยกเว้นสำหรับ ARM64 โดยใช้ไลบรารี libunwind
- พร็อกซี OLE stubless ได้รับการสนับสนุนบน ARM64
- เครื่องมือพัฒนา / Winelib:
- สามารถใช้ดีบักเกอร์ระยะไกล Visual Studio เพื่อดีบักแอปพลิเคชันที่ทำงานภายใต้ Wine
- ไลบรารี Debug Engine (DBGENG) มีการใช้งานบางส่วน
- ไบนารีที่สร้างขึ้นสำหรับเป้าหมาย Windows จะไม่ขึ้นอยู่กับไลบรารี libwine อีกต่อไป เพื่อให้สามารถทำงานได้บน Windows โดยไม่ต้องพึ่งพาเพิ่มเติมใดๆ ไลบรารี libwine ไม่ได้ถูกสร้างขึ้นสำหรับ Windows อีกต่อไป
- คอมไพเลอร์ทรัพยากรและคอมไพเลอร์ IDL รองรับตัวเลือก '--sysroot' เพื่ออนุญาตการค้นหาไฟล์ส่วนหัวในสภาพแวดล้อมการคอมไพล์ข้าม
- Winegcc รองรับตัวเลือก '--target', '--wine-objdir', '--winebuild' และ '-fuse-ld' ที่ทำให้ง่ายต่อการใช้งานเป็น cross-compiler หรือด้วย toolchains แบบกำหนดเอง
- ส่วนหัว wine/unicode.h ไม่สามารถใช้งานได้อีกต่อไปสำหรับแอปพลิเคชัน เนื่องจากฟังก์ชันต่างๆ จะถูกลบออกและแทนที่ด้วยฟังก์ชันอักขระแบบกว้างรันไทม์ C มาตรฐานในที่สุด
- สร้างโครงสร้างพื้นฐาน:
- ไบนารีการทดสอบถูกสร้างขึ้นในรูปแบบ PE หากมี MinGW พร้อมใช้งาน ดังนั้นไบนารีการทดสอบเดียวกันสามารถทำงานได้ทั้งบน Wine และ Windows เป้าหมาย make 'crosstest' ไม่จำเป็นหรือรองรับอีกต่อไป
- รูปแบบการโทร 'fastcall' ได้รับการสนับสนุนในไฟล์ข้อมูลจำเพาะ ใช้ชื่อที่ถูกต้องสำหรับ Windows builds
- แฟล็กจุดเริ่มต้น '-import' ได้รับการสนับสนุนในไฟล์ข้อมูลจำเพาะ เพื่อทำเครื่องหมายฟังก์ชันที่ต้องมีการสร้างคำนำหน้าโค้ด hotpatch สำหรับการนำเข้า
- Winebuild รองรับตัวเลือก '--builtin' เพื่อเพิ่มลายเซ็นพิเศษให้กับไบนารี PE เพื่อทำเครื่องหมายว่าเป็น Wine บิวด์อิน
- แอปพลิเคชันในตัว:
- มีการนำเครื่องมือ CHCP มาใช้ อนุญาตให้ตั้งค่าเพจรหัสคอนโซล
- มีการนำเครื่องมือ MSIDB ไปใช้ อนุญาตให้จัดการฐานข้อมูล MSI
- การปรับปรุงประสิทธิภาพ:
- ฟังก์ชันเวลาต่างๆ จะใช้นาฬิการะบบที่มีประสิทธิภาพสูงกว่า หากมี เพื่อลดค่าใช้จ่ายในการเรนเดอร์ของเกมหลายๆ เกม
- การค้นหาไฟล์ใช้ประโยชน์จากการสนับสนุนการพับเคสระบบไฟล์ ext4 หากเปิดใช้งานในไดเร็กทอรีที่กำลังค้นหา
- กล่องรายการสไตล์ที่ไม่มีข้อมูล (LBS_NODATA) มีประสิทธิภาพที่ดีกว่าสำหรับรายการจำนวนมาก
- การล็อก Slim Reader/Writer เหตุการณ์ที่คีย์ และตัวแปรเงื่อนไขใช้ futexes บน Linux เพื่อหลีกเลี่ยงการส่งไปกลับของเซิร์ฟเวอร์ไวน์
- การพึ่งพาภายนอกใหม่:
- คอมไพเลอร์ข้าม MinGW-w64 ใช้เพื่อสร้างโมดูลในรูปแบบ PE
- ไลบรารี FAudio ใช้เพื่อใช้งาน XAudio2
- ไลบรารี Inotify ใช้สำหรับการแจ้งเตือนการเปลี่ยนแปลงไฟล์บนแพลตฟอร์ม BSD
- ไลบรารี Unwind ใช้สำหรับการจัดการข้อยกเว้นบน ARM64
- ไลบรารี Video4Linux เวอร์ชัน 2 ถูกใช้แทนเวอร์ชัน 1
อ่านเพิ่มเติม
แหล่งที่มา: สำนักงานใหญ่ไวน์
เรื่องราวผ่าน: หุ่นยนต์ตำรวจ