OpenBSD पर Wine पोर्ट किया गया
Windows compatibility layer Wine को OpenBSD पर पोर्ट करने से The Witcher 3 और Disco Elysium जैसे आधुनिक गेम पारंपरिक रूप से security-focused BSD सिस्टम पर चल पाए हैं, और यह काम updated AMD/Intel graphics drivers तथा Vulkan-based tooling पर निर्भर करता है। योगदानकर्ता बताते हैं कि `%gs` instructions को trap और rewrite करना, signals को re-route करना, और OpenBSD के strict ptrace व process isolation model के आसपास काम करना जैसी गहरी तकनीकी मेहनत लगी; साथ ही यह भी कि Wine upstream दूसरे OS के लिए आधिकारिक support जोड़ने को लेकर अनिच्छुक है। यह परियोजना AI-assisted code पर OpenBSD की स्थिति, long-term maintainability, और क्या LLM-generated contributions को अस्वीकार करने से छोटे operating systems feature और hardware support के मामले में “पीछे” रह जाएंगे—इन व्यापक सवालों का भी केंद्र बन जाती है।
पोर्टिंग प्रयास और तकनीकी दृष्टिकोण
- Wine को OpenBSD/amd64 पर पोर्ट किया गया है और यह भारी-भरकम गेम चला सकता है (जैसे, Witcher 3 remaster, Disco Elysium, Hollow Knight, Prey, Death Stranding, Factorio)।
- OpenBSD-विशिष्ट प्रमुख काम:
%gsरजिस्टर को संभालना: OpenBSD%gsनिर्देशों को ट्रैप करता है क्योंकि%gs/gsbase0 हैं, इसलिए पोर्ट ट्रैप हुए निर्देशों को डिकोड करता है, उन्हें scratch registers का उपयोग करके non‑%gsरूपों में फिर से लिखता है, और stubs के जरिए जंप करता है। इससे अधिकांश बुनियादी Windows ऐप्स और कई गेम खुल जाते हैं।ucontext, stack mapping,mmap, और trap context से निपटना ताकि%gsलॉजिक को पता रहे कि कहाँ काम करना है।- Signal handling: OpenBSD दूसरे process में किसी thread को signal देने की अनुमति नहीं देता। Wine Unix signals के जरिए Windows thread APIs को emulate करता है, इसलिए पोर्ट inter-process signals को पकड़ता है और उन्हें target process के अंदर फिर से emit करता है (जैसे, किसी दूसरे signal पर remap करना)।
ReadProcessMemory/WriteProcessMemoryके समकक्ष काम करना OpenBSD के security model और ptrace प्रतिबंधों के कारण कठिन है, खासकर Electron/Chromium और Steam के लिए।
Upstreaming और रखरखाव
- Wine पहले से FreeBSD और macOS को सपोर्ट करता है, इसलिए एक और BSD तक विस्तार को चुनौतीपूर्ण लेकिन असंभव नहीं माना जा रहा है।
- कुछ patches केवल OpenBSD के लिए हैं और Wine के emulated application code में इतने hacky या invasive माने जाते हैं कि upstream उन्हें स्वीकार नहीं करेगा।
- बताया गया है कि Wine maintainers किसी और OS के लिए ongoing support जोड़ने में हिचकते हैं; OpenBSD और संभवतः NetBSD शायद अलग patches ही बनाए रखें।
Graphics, drivers, और hardware support
- OpenBSD आधुनिक Intel और AMD GPUs को hardware-accelerated 2D/OpenGL और Linux-derived DRM drivers के जरिए Vulkan के साथ सपोर्ट करता है; Nvidia support प्रभावी रूप से पुराने, non-accelerated
nv(4)hardware तक सीमित है। - VKD3D तब काम करता है यदि Vulkan और आवश्यक extensions मौजूद हों; OpenBSD पर यह AMD hardware के साथ अच्छी तरह काम करता दिखता है।
- कुछ लोगों के अनुसार performance “acceptable” है, लेकिन विस्तृत benchmarks नहीं दिए गए हैं।
Tooling, repositories, और ports
- Wine port OpenBSD ports tree में है (CVS-based, GitHub पर mirrored)। ports entry एक build recipe और patches है, पूरे Wine का fork नहीं।
- OpenBSD-विशिष्ट Wine काम को ट्रैक करने वाली एक अलग GitHub branch है; issues वहाँ स्वीकार किए जा रहे हैं।
Community प्रतिक्रिया और महत्व
- कई commenters उत्साहित हैं, इसे प्रभावशाली काम और BSD gaming तथा legacy Windows app support के लिए बड़ा कदम बता रहे हैं।
- कुछ लोग इसे इस बात का संकेत मानते हैं कि BSDs पर अधिक ध्यान दिया जा रहा है और वे अन्य OS trends से बचाव के लिए refuges बन सकते हैं।