Windows पर BSD: वे चीज़ें जिन्हें मैं जानना चाहता था कि मौजूद थीं
Windows पर BSD या Unix-जैसे environments चलाने के प्रयास—प्रारंभिक projects जैसे BSD on Windows (BOW) और coLinux से लेकर Microsoft के अपने SFU/Interix और आज के WSL तक—इन operating systems को जोड़ने के आकर्षण और जटिलता, दोनों को उजागर करते हैं। टिप्पणीकार ऐसे subsystems की व्यावहारिकता की तुलना virtual machines और compatibility layers जैसे आधुनिक विकल्पों से करते हैं, और इस पर बहस करते हैं कि POSIX, Linux-specific APIs, और Windows का स्थिर Win32 interface आज की fragmented portability कहानी तक कैसे पहुंचे। यह thread NT kernel design की ताकतों और कमजोरियों तथा Microsoft और व्यापक open-source ecosystem की रणनीतिक पसंदों पर भी विचार करता है, जिन्होंने तय किया कि कौन-से platforms dominant बने।
Windows पर ऐतिहासिक BSD (BoW) और Unix सबसिस्टम
- BoW को एक बहुत ही दिलचस्प ऐतिहासिक कलाकृति माना जाता है: Windows 3.1 पर BSD environment, जो a.out binaries का उपयोग करता था, और Cygwin की तुलना में EMX/HURD-शैली की services जैसा अधिक था।
- बताई गई खूबियाँ: बहुत मामूली hardware पर चलता है, disk formatting या driver changes की ज़रूरत नहीं, Winsock का उपयोग कर सकता है, और vi, gcc, hack, Apache 1.3 जैसी चीज़ें चला सकता है।
- मुख्य सीमा: Win16 constraints के कारण लगभग single-user; लोग अटकल लगाते हैं कि NT-आधारित evolution कहीं अधिक प्रभावशाली हो सकता था।
- कुछ लोग BoW जैसे quirky environment की बजाय Windows पर एक modern, full BSD subsystem पसंद करेंगे।
Windows पर अन्य Unix समाधान
- प्रतिभागियों को कई approaches याद आती हैं: Cygwin, MSYS2, Git Bash, coLinux, hacked debugger-based Linux, SFU/Interix, UWIN।
- SFU/Interix को उपयोग-case के अनुसार “awful” भी कहा गया और “worked fine” भी; कुछ लोगों ने real workloads compile करने में सफलता पाई, जबकि दूसरों ने इसे unreliable और licensing के लिहाज़ से awkward पाया।
- एक ऐसे Windows के लिए nostalgia है जो character-mode Unix-like userland में boot होता हो।
Cross-Platform Binaries और POSIX बनाम Linux
- कुछ लोग Windows और Linux executables के बीच native cross-compatibility चाहते हैं; दूसरे तर्क देते हैं कि मौजूदा reality (Win32 + WSL + containers) शायद जितनी अच्छी हो सकती है, उतनी ही है।
- Cosmopolitan/APE और Linux पर Win32 को promising दिशा माना गया है, लेकिन complex APIs (graphics, Bluetooth, आदि) के लिए सीमाएँ भी बताई गई हैं।
- “Linux-only” APIs और glibc-specific behavior को निशाना बनाने की कड़ी आलोचना की गई; POSIX को कम उपयोग किए जाने वाला माना गया, जबकि वह अधिकांश apps के लिए पर्याप्त है।
- BSD users का तर्क है कि यदि developers Linux-specific code से बचें, तो उनका software BSD और अन्य Unix-like systems पर लगभग “just work” करेगा।
Static Linking, Packaging, और Linux की जटिलता
- एक विस्तृत anecdote में Love2D game के लिए single statically linked binary ship करने के असफल प्रयासों का वर्णन है, क्योंकि dependency stacks बहुत गहरे थे (image/audio libraries, Mesa, GPU drivers)।
- Linux पर static linking को fragile और frustrating बताया गया है; dynamic linking के साथ bundling (.so files, AppImage, Flatpak) को अधिक realistic विकल्प माना गया।
- cgo disabled के साथ Go को static CLI binaries के लिए एक आंशिक workaround के रूप में बताया गया, हालांकि graphics अब भी कठिन है।
Microsoft, POSIX, और WSL
- NT के ऐतिहासिक POSIX subsystem को सरकारी contracts के लिए एक checkbox और एक missed opportunity दोनों के रूप में देखा गया; यदि इसे छोड़ा न गया होता और सुधार किया गया होता, तो कुछ लोगों के अनुसार Linux का बाद का प्रभुत्व कम हो सकता था।
- WSL/WSL2 को एक तरह के “mea culpa” के रूप में संदर्भित किया गया है, जो पहले subsystems हटाए जाने के बाद Unix-like क्षमताओं को फिर से लाता है।
- Interix पर बहस: एक पक्ष इसे “bought and extinguished” कहता है, जबकि दूसरे इंगित करते हैं कि इसे आधिकारिक रूप से एक दशक से अधिक समय तक support मिला, हालांकि इसकी usability कथित रूप से घटती गई।
Kernel Design: NT बनाम Unix
- कुछ लोग NT kernel के VMS heritage और design की प्रशंसा करते हैं; दूसरे इसे “not great / not terrible” कहते हैं, और driver complexity, IRQL model, HAL, तथा split network stack की आलोचना करते हैं।
- इस बात पर असहमति है कि benchmarks या रोज़मर्रा के अनुभव में NT विशेष रूप से मजबूत है या कमजोर; आम सहमति यह है कि Win32 layers नीचे की किसी भी elegance को काफी हद तक छिपा देती हैं।
व्यापक निराशाएँ: Ecosystems और Longevity
- proprietary ecosystems के कारण hardware obsolescence की शिकायतें (जैसे, नए macOS versions पर printer driver support खो देना)।
- चिंता कि hardware और DRM support में Linux का प्रभुत्व paradoxically OS choice को कम कर देता है, क्योंकि अन्य free OSes को साथ बने रहने के लिए Linux code आयात करना पड़ता है।
- कुछ लोग तर्क देते हैं कि उद्योग backward compatibility और preservation को कम आँकता है, जिससे अनावश्यक waste होता है।
Off-Topic: Wealth, Creativity, और Expectations
- एक tangent इस बात की पड़ताल करता है कि कुछ wealthy creators rich होने के बाद “cool projects” (जैसे ambitious games या OS experiments) करना क्यों बंद कर देते हैं।
- मत भिन्न हैं: कुछ इसे एक wasted opportunity मानते हैं, जबकि अन्य स्वीकार करते हैं कि पहले का काम ही “enough” contribution था।