विंडोज 7 में UNIX- आधारित अनुप्रयोगों के लिए सबसिस्टम


13

विंडोज 7. के तहत चालू और बंद संवाद में यूनिक्स-आधारित एप्लिकेशन के लिए सबसिस्टम नामक सबसिस्टम नामक नोट को पहले कभी नहीं देखा गया था, और यह दिलचस्प लगता है। वास्तव में यह क्या है? यह किस लिए है और मैं इसके लिए क्या उपयोग कर सकता हूं?


1
क्या विंडोज 7 प्रोफेशनल में इसका उपयोग करने के लिए कोई हैक है?
iceman

@ पुलिस: एंटरप्राइज़ या अल्टीमेट इंस्टॉल करें, फिर।
जोए

क्या हो सकता था इसका एक अच्छा पढ़ा: 'Microsoft POSIX सबसिस्टम का दुखद इतिहास' brianreiter.org/2010/08/24/…
डैनियल

जवाबों:


18

पहले UNIX के लिए SFU या सेवा के रूप में जाना जाता है । यह विंडोज में एक पर्यावरण सबसिस्टम है, पूर्ण POSIX अनुपालन और उपकरणों का एक बड़ा भार प्रदान करता है जो सामान्य रूप से UNIX सिस्टम के साथ आते हैं।

एक पर्यावरण सबसिस्टम के रूप में इसका मतलब है कि यह विंडोज एपीआई के साथ-साथ सीधे कर्नेल के शीर्ष पर चलता है। इसलिए यह देशी विंडोज एपीआई की तुलना में अधिक अनुकरणीय नहीं है और इसलिए उदाहरण के लिए, साइबरविन की तुलना में बहुत बेहतर प्रदर्शन करता है। 1

यह मुख्य रूप से विंडोज पर सीधे यूनिक्स अनुप्रयोगों के निर्माण और चलाने के लिए है, यदि आपका पसंदीदा यूनिक्स प्रोग्राम विंडोज पोर्ट के साथ नहीं आता है, तो आप इसे एसयूए में बनाने की कोशिश कर सकते हैं:

यूनिक्स-आधारित अनुप्रयोगों के लिए यूनिक्स और सबसिस्टम के लिए विंडोज सेवाएं हेडर फाइलें और लाइब्रेरी प्रदान करती हैं जो विंडोज पर उपयोग के लिए यूनिक्स अनुप्रयोगों को फिर से शुरू या पोर्ट करना आसान बनाती हैं; वे यूनिक्स बायनेरिज़ को विंडोज बायनेरिज़ के साथ संगत नहीं बनाते हैं। यह एक विशिष्ट यूनिक्स जैसा प्लेटफॉर्म है।

SFU के वर्तमान संस्करण में शामिल हैं:

  • 350 से अधिक यूनिक्स उपयोगिताओं जैसे vi, ksh, csh, ls, cat, awk, grep, किल, आदि।
  • GCC 3.3 संकलक, शामिल हैं और पुस्तकालय (एक MS libc के माध्यम से)
  • Microsoft Visual Studio कमांड-लाइन C / C ++ कंपाइलर के लिए cc- जैसा आवरण
  • GDB डिबगर
  • एनएफएस सर्वर और क्लाइंट
  • एक pcnfsd डेमॉन
  • X11 उपकरण और पुस्तकालय
  • NFS माउंट पॉइंट बनाने के लिए उपकरण विंडोज के शेयरों के रूप में दिखाई देते हैं, और इसके विपरीत (प्रवेश द्वार सेवाएं)
  • सक्रिय निर्देशिका (AD) से जुड़ा एक NIS सर्वर क्षमता
  • कुछ विंडोज / यूनिक्स प्रमाणीकरण सूचना सिंक्रनाइज़ेशन उपकरण

SFU में निम्नलिखित शामिल नहीं हैं (लेकिन बायनेरिज़ एक अलग इंस्टॉलेशन के लिए उपलब्ध हैं):

  • बैश, ओपनएसएसएच, सुडो, सीवीएस, क्लैमाव, बीज़िप 2, गमेक, कर्ल, एमएसीएस, अपाचे, एक्सएवी, रूबी, टीसीएल, पायथन

(विकिपीडिया)

चूंकि SUA लिनक्स या BSD बनने की कोशिश नहीं करता है, लेकिन सिर्फ सादे POSIX का मतलब यह भी हो सकता है कि कई प्रोग्राम जो प्लेटफॉर्म-विशिष्ट चीजों पर भरोसा करते हैं, वे निर्माण या चलाने में विफल हो सकते हैं। शैल स्क्रिप्ट जो श या लिनक्स-विशिष्ट सिस्टम कॉल के बजाय बैश मान लेते हैं। आजकल बहुत कम प्रोग्राम लिखे जाते हैं जो किसी भी POSIX-compliant सिस्टम पर सीधे चल सकते हैं। इसके अलावा gcc का संस्करण भी शामिल है जो कुछ हद तक पुराना है जिसका अर्थ है कि यह आपके सबसे हाल के C99 + अच्छाई का समर्थन नहीं कर सकता है।


1 यह अभी भी विंडोज-विशिष्ट सीमाओं के अधीन है, जैसे कि धीमी प्रक्रिया स्टार्टअप समय, इसलिए चरम फोर्किंग अभी भी बहुत धीमी होगी, यही कारण है कि आप कई ./configureस्क्रिप्ट या कुछ मेकफाइल्स को निष्पादित करने के लिए उम्र का इंतजार करेंगे ।


ठंडा। तो, क्या इसका मतलब है कि आप शेल जैसे यूनिक्स प्राप्त कर सकते हैं और उदाहरण के लिए ssh का उपयोग कर सकते हैं?
श्वेत

कोई SSH सर्वर या क्लाइंट नहीं है, लेकिन csh और ksh शामिल हैं (वैसे भी POSIX द्वारा अनिवार्य नहीं है)। आप स्रोत से निर्माण कर सकते हैं जो आपको चाहिए, उम्मीद है कि यह काम करेगा (अधिक जटिल सॉफ़्टवेयर के लिए यह आमतौर पर नहीं करता है क्योंकि मेकफाइल्स और सॉफ़्टवेयर POSIX को ध्यान में रखते हुए या gcc और Microsoft libc के साथ नहीं लिखे गए हैं। लिनक्स उपकरण भी इसके लिए कुख्यात हैं। बिना किसी विशेष कारण के बैश की आवश्यकता है। जाहिर तौर पर आप pkgsrc सेट कर सकते हैं । हालांकि, मैंने अभी तक ऐसा करने का प्रबंधन नहीं किया है, लेकिन मेरा अनुभव विंडोज 2000 पर SFU 3.5 पर वापस आ गया है। हो सकता है कि चीजें अब तक बदल गई हों।
जॉय

हालांकि यह सही है कि NT में मूल POSIX सबसिस्टम Win32 और OS / 2 सबसिस्टम के साथ सीधे कर्नेल पर चलता है, SUA विंडोज एपीआई के शीर्ष पर चलता है।
ァ パ ー フ ミ コ

2
मैथ्यू: SUA के लिए एक्सेलेबल्स अभी भी POSIX सबसिस्टम अनुप्रयोग हैं (हाँ, मैंने वास्तव में एक हेक्स संपादक लिया और अंदर देखा)। तो कर्नेल को विंडोज एपीआई से कुछ चलाने का विचार भी नहीं मिलेगा।
जॉय

4
@Svish: आप से OpenSSH SUA बाइनरी (और भी बहुत कुछ) डाउनलोड कर सकते हैं suacommunity.com
bk1e

1

सॉफ़्टवेयर स्थापित / अनइंस्टॉल करने के लिए आप BSD- शैली पैकेज का उपयोग कर सकते हैं। यदि आपके पास ओपनएसएसएच स्थापित है, तो आप एसएसएच के माध्यम से एसयूए का उपयोग कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.