सॉफ्टवेयर

कंप्युटर सॉफ्टवेयर निर्देशों का एक समूह होता है। इसे हम सरल भाषा मे सॉफ्टवेयर या प्रोग्राम भी बोलते है। इसका उपयोग कंप्युटर को संचालित और विशेष प्रकार के कार्यों को पूर्ण करने के लिए किया जाता है। सॉफ्टवेयर कंप्युटर का एक बेहद खास हिस्सा होता है। क्युकी इसके बिना कंप्युटर किसी काम का नहीं रहता है।

सॉफ्टवेयर बिल्कुल हार्डवेयर से बिपरित होता है, हार्डवेयर को हम देख और छु सकते है लेकिन सॉफ्टवेयर को हम छु नहीं सकते और देख नहीं सकते है। क्योंकि सॉफ्टवेयर का कोई भौतिक रूप नहीं होता है यह एक आभासी होता है जिसे हम समझ और अभाष कर सकते है। 

उद्धारण के लिए आपका वेब ब्राउजर जिस पर आप इस पोस्ट को पढ़ रहे है ओ भी एक प्रकार का सॉफ्टवेयर ही है। अगर हमारे पास ऐसा सॉफ्टवेयर नहीं होता तो क्या आप इनरनेट पर किसी प्रकार का जानकारी प्राप्त कर सकते है। इसलिए सॉफ्टवेयर उन प्रोग्राम को कहते है जो कंप्युटर पर इंस्टॉल होते है और विशेष प्रकार का कार्य करते है।[thumb|300px|अनुप्रयोग सॉफ्टवेयरों के अन्तर्गत बहुत से सॉफ्टवेयर आते हैं। [लीब्र ऑफ़िस|लिब्रऑफिस मुक्तस्रोत अनुप्रयोग है जिसके द्वारा शब्दसंसाधन, स्प्रेडशीट, स्लाइड प्रस्तुतीकरण आदि किए जा सकते हैं (क्रमशः 'राइटर', 'कैल्क' और 'इम्प्रेस' के द्वारा)।]]

कम्प्यूटर विज्ञान में, **सॉफ़्टवेयर** या **तंत्रांश** (Software) सार्थक क्रमादेशों (instructions) और आवश्यक सूचनाओं का एक ऐसा समूह है जो संगणक (कम्प्यूटर) को यह बताता है कि उसे क्या काम करना है। सॉफ्टवेयर, एक तरह से, हार्डवेयर से अत्यन्त भिन्न चीज है। हार्डवेयर और सॉफ़्टवेयर एक-दूसरे के पूरक हैं और एक के बिना दूसरा बहुत कम या नहीं के बराबर उपयोगी हैं। सॉफ़्टवेयर इस अर्थ में सॉफ्ट (मृदु) है कि एक ही हार्डवेयर में अलग-अलग सॉफ्टवेयर लगाकर बिलकुल अलग-अलग काम लिये जाते हैं। उदाहरण के लिए एक ही कम्प्यूटर (हार्डवेयर) में स्प्रेडशीट प्रोग्राम चलाने पर किसी आँकड़े की बारीकियों का अध्ययन किया जाता है वहीं एक दूसरा प्रोग्राम चलाकर उसी हार्डवेयर से एक मशीन (जैसे मिलिंग मशीन) चलायी जा सकती है।

व्यावहारिक तौर पर अगर कम्प्यूटर को परिभाषित किया जाये तो हम हार्डवेयर को मनुष्य का शरीर और सॉफ़्टवेयर को उसकी आत्मा कह सकते हैं। हार्डवेयर कम्प्यूटर के हिस्सों को कहते हैं, जिन्हें हम अपनी आँखों से देख सकते हैं, छू सकते हैं अथवा औजारों से उन पर कार्य कर सकते हैं। यह वास्तविक पदार्थ है। इसके विपरीत सॉफ़्टवेयर कोई पदार्थ नहीं है। ये वे सूचनाएँ, आदेश अथवा तरीके हैं जिनके आधार पर कम्प्यूटर का हार्डवेयर कार्य करता है। कम्प्यूटर हार्डवेयर सॉफ्टवेयर से परिचित होते हैं अथवा सॉफ़्टवेयर कम्प्यूटर के हार्डवेयर से परिचित एवम् उन पर आधारित होते हैं।

## सॉफ़्टवेयर का इतिहास
### द्वैध निर्देशों का समय
पहले एक कार्य के लिये एक ही कम्प्यूटर तन्त्र होता था और उसे यान्त्रिक स्तर पर क्रमादेश दिये जाते थे जिन्हें बदलना आर्थिक रूप से निरर्थक था। तकनीक के विकास के साथ ऐसे यन्त्रांश बनाना तकनीकी रूप से सम्भव और आर्थिक रूप से लाभदायक हो सका। प्रारम्भिक कम्प्यूटर तन्त्रो को क्रमादेश देना बहुत कठिन था क्योंकि उस समय यह सिद्धान्त कि सॉफ़्टवेयर भी सूचनाओं का एक समूह जो किसी यन्त्रांश की स्मृति में सुरक्षित रहे, प्रारम्भिक अवस्था में था। तब 'पंच कार्ड' नामक साधारण से यन्त्रांश पर कम्प्यूटर के यन्त्रांश को दिये जाने वाले क्रमादेश के निर्देश सीधे लिखे जाते थे। कम्प्यूटर के यन्त्रांश को सभी निर्देश केवल दो अंको- '0' और '1' की सहायता से दिए जाते थे। इसे द्वैध निर्देश कहते है, द्वैध रूप के ही क्रमादेशों को ही यन्त्रांश लागू कर सकता है।

## सॉफ्टवेयर के प्रकार

तकनीकी दृष्टि से सॉफ्टवेयर तीन प्रकार के होते हैं। 
* **[[सिस्टम सॉफ्टवेयर]]**
* **एप्लीकेशन सॉफ्टवेयर**
* **उपयोगिता सॉफ्टवेयर**

### सिस्टम सॉफ्टवेयर
[thumb|[उबण्टू|उबन्तू 13.10 का खोजी इंजन]]
“सिस्टम सॉफ्टवेयर” यह एक ऐसा प्रोग्राम होता है, जिनका काम सिस्टम अर्थात कम्प्यूटर को चलाना तथा उसे काम करने लायक बनाए रखना है। सिस्टम सॉफ्टवेयर ही हार्डवेयर में जान डालता है। ऑपरेटिंग सिस्टम, कम्पाइलर आदि सिस्टम सॉफ्यवेयर के मुख्य भाग हैं। 

ऑपरेटिंग सिस्टम के माध्यम से सिस्टम सॉफ्टवेयर कंप्यूटर के कामकाज पर नियंत्रण रखता है। और यह सिस्टम सॉफ्टवेयर कंप्यूटर के बाहरी उपकरणों जैसे मॉनिटर प्रिंटर और स्टोरेज डिवाइस पर अपना नियंत्रण रखता है। 

### एप्लिकेशन सॉफ्टवेयर
‘एप्लीकेशन सॉफ्टवेयर’ ऐसे प्रोग्रामों को कहा जाता है, जो हमारे कंप्यूटर पर आधारित मुख्य कामों को करने के लिए लिखे जाते हैं। आवश्यकतानुसार भिन्न-भिन्न उपयोगों के लिए भिन्न-भिन्न सॉफ्टवेयर होते हैं। वेतन की गणना, लेन-देन का हिसाब, वस्तुओं का स्टाक रखना, बिक्री का हिसाब लगाना आदि कामों के लिए लिखे गए प्रोग्राम ही एप्लीकेशन सॉफ्टवेयर(application software)कहे जाते हैं।

## सॉफ़्टवेयर

सॉफ्टवेयर कानून में बौद्धिक सम्पदा अधिकार के अन्दर सुरक्षित होता है। ट्रिप्स में सात प्रकार के बौद्धिक सम्पदा अधिकार के बारे में चर्चा की गयी है इसमें तीन प्रकार के अधिकार, यानि की कॉपीराइट (*Copyright*), ट्रेड सीक्रेट (*Trade Secret*), तथा पेटेंट (*Patent* या एकस्व), कंप्यूटर सॉफ्टवेयर को प्रभावित करते हैं। सॉफ्टवेयर को पेटेंट कराने का मुद्दा विवादास्पद है तथा कुछ कठिन भी। इसकी चर्चा हम अलग से पेटेंट एवं कमप्यूटर सॉफ्टवेयर के अन्दर की गई है।

* कॉपीराइट के प्रकार: ‘सोर्स कोड और ऑबजेक्ट कोड’ शीर्षक के अन्दर पर चर्चा की थी कि आजकल सोर्सकोड उच्चस्तरीय कंप्यूटर भाषाओं (*high level languages*) में अंग्रेजी भाषा के शब्दों एवं वर्णमाला का प्रयोग करते हुये लिखा जाता है। यह उस सॉफ्टवेयर के कार्य करने के ठंग को बताता है तथा यह एक प्रकार का वर्णन है। यदि, इसे प्रकाशित किया जाता है तो उस सॉफ्टवेयर के मालिक या जिसने उसे लिखा है उसका कॉपीराइट होता है।

ऑब्जेक्ट कोड कम्प्यूटर को चलाता है और यह सदा प्रकाशित होता है, परन्तु क्या यह किसी चीज़ का वर्णन है अथवा नहीं इस बारे में शंका थी। ट्रिप्स के समझौते के अन्दर यह कहा गया कि कंप्यूटर प्रोग्राम को कॉपीराइट के समान सुरक्षित किया जाय। इसलिये ऑब्जेक्ट कोड हमारे देश में तथा संसार के अन्य देशों में इसी प्रकार से सुरक्षित किया गया है।

कंप्यूटर प्रोग्राम के ऑबजेक्ट कोड तो प्रकाशित होतें हैं पर सबके सोर्स कोड प्रकाशित नहीं किये जाते हैं। जिन कमप्यूटर प्रोग्राम के सोर्स कोड प्रकाशित किये जाते हैं उनमें तो वे कॉपीराइट से सुरक्षित होते हैं। पर जिन कंप्यूटर प्रोग्राम के सोर्स कोड प्रकाशित नहीं किये जाते हैं वे ट्रेड सीक्रेट की तरह सुरक्षित होते हैं।

* ट्रेड सीक्रेट की तरह: मालिकाना कंप्यूटर प्रोग्राम में सामान्यत: सोर्स कोड प्रकाशित नहीं किया जाता है तथा वे सोर्स कोड को ट्रेड सीक्रेट की तरह ही सुरक्षित करते हैं। यह भी सोचने की बात है कि वे सोर्स कोड क्यों नहीं प्रकाशित करते हैं?

सोर्स कोड से ऑब्जेक्ट कोड कम्पाईल (compile) करना आसान है; यह हमेशा किया जाता है और इसी तरह प्रोग्राम लिखा जाता है। पर इसका उल्टा यानि कि ऑबजेक्ट कोड से सोर्स कोड मालूम करना असम्भव तो नहीं पर बहुत मुश्किल तथा महंगा है। इस पर रिवर्स इन्जीनियरिंग का कानून भी लागू होता है। इसी लिये सोर्स कोड प्रकाशित नहीं किया जाता है। इसे गोपनीय रख कर, इसे ज्यादा आसानी से सुरक्षित किया जा सकता है। रिवर्स इन्जीनियरिंग भी रोचक विषय है, इसके बारे पर फिर कभी।

* पेटेन्ट की तरह: ‘बौद्धिक सम्पदा अधिकार (Intellectual Property Rights)’ शीर्षक में चर्चा हुई थी कि सॉफ्टवेयर को पेटेन्ट के द्वारा भी सुरक्षित करने के भी तरीके हैं कई मालिकाना सॉफ्टवेयर इस तरह से भी सुरक्षित हैं पर यह न केवल विवादास्पद हैं, पर कुछ कठिन भी हैं। इसके बारे में फिर कभी।
* सविंदा कानून के द्वारा: सविंदा कानून (Contract Act) भी सॉफ्टवेयर की सुरक्षा में महत्वपूर्ण भूमिका निभाता है। आप इस धोखे में न रहें कि आप कोई सॉफ्टवेयर खरीदते हैं। आप तो केवल उसको प्रयोग करने के लिये लाइसेंस लेते हैंl आप उसे किस तरह से प्रयोग कर सकते हैं यह उसकी शर्तों पर निर्भर करता है। लाइसेंस की शर्तें महत्वपूर्ण हैं। यह सविंदा कानून के अन्दर आता है। 	

**ओपेन सोर्स सौफ्टवेयर** में सोर्स कोड हमेशा प्रकाशित होता है। इसके लिखने वाले इस पर किस तरह का अधिकार रखते हैं यह लाइसेंसों की शर्तों पर निर्भर करता है, जिनके अन्तर्गत वे प्रकाशित किये जाते हैं। ओपेन सोर्स सौफ्टवेयर में कुछ लाइसेन्स की शर्तें उसे कॉपीलेफ्ट (Copyleft) करती हैं। इसे फ्री सॉफ्टवेर या जीपीएल्ड सॉफ्टवेर (GPLed) भी कहा जाता है।
इन सोफ्ट्वेयर को कोइ भी व्यक्ति मुफ्त में डाउनलोड कर सकता है, इस्तेमाल कर सकता है, वितरीत कर सकता है
एवम इसमे अपनी जरूरत के मुताबिक बदलाव भी कर सकता है।
ओपन सोर्स सोफ्टवेयर केवल मशीनी सामग्री भर न हो कर तकनीक, विज्ञान और कला का अद्भूत सन्गम है।
इसने कम्प्यूटर जगत में एक क्रान्ति की शुरुआत कर दी है। केवल ओपन सोर्स सोफ्टवेयर ही सम्पूर्ण विश्व में अधिकाधिक लोगों तक कम्प्यूटर तकनीक को पहुँचाने के सपने को पूरा करता है।

## लाइसेंस
सॉफ्टवेयर का लाइसेंस उपयोगकर्ता को लाइसेंस वाले वातावरण में सॉफ्टवेयर का उपयोग करने का अधिकार देता है, और मुफ्त सॉफ्टवेयर लाइसेंस के मामले में, अन्य अधिकारों जैसे कि प्रतियां बनाने के अधिकार को भी अनुदान देता है।

मालिकाना सॉफ्टवेयर को दो प्रकारों में विभाजित किया जा सकता है:

* फ्रीवेयर, जिसमें "फ्री ट्रायल" सॉफ्टवेयर या "फ्रीमियम" सॉफ्टवेयर की श्रेणी शामिल है (अतीत में, शब्द शेयरवेयर का अक्सर मुफ्त परीक्षण / फ्रीमियम सॉफ्टवेयर के लिए उपयोग किया जाता था)। जैसा कि नाम से पता चलता है, फ्रीवेयर का उपयोग मुफ्त में किया जा सकता है, हालांकि फ्री ट्रायल या फ्रीमियम सॉफ़्टवेयर के मामले में, यह कभी-कभी सीमित अवधि के लिए या सीमित कार्यक्षमता के साथ ही सही होता है।
* शुल्क के लिए उपलब्ध सॉफ़्टवेयर, जिसे अक्सर "वाणिज्यिक सॉफ़्टवेयर" कहा जाता है, जिसे केवल लाइसेंस की खरीद पर कानूनी रूप से उपयोग किया जा सकता है।

दूसरी ओर, ओपन-सोर्स सॉफ्टवेयर, एक मुफ्त सॉफ्टवेयर लाइसेंस के साथ आता है, प्राप्तकर्ता को सॉफ्टवेयर को संशोधित करने और पुनर्वितरित करने का अधिकार प्रदान करता है।

## उद्योग और संगठन
दुनिया में सॉफ्टवेयर कंपनियों और प्रोग्रामर की एक महान विविधता में एक सॉफ्टवेयर उद्योग शामिल है। सॉफ्टवेयर काफी लाभदायक उद्योग हो सकता है: बिल गेट्स, माइक्रोसॉफ्ट के सह-संस्थापक 2009 में दुनिया के सबसे अमीर व्यक्ति थे, बड़े पैमाने पर माइक्रोसॉफ्ट में शेयरों की एक महत्वपूर्ण संख्या के स्वामित्व के कारण, माइक्रोसॉफ्ट विंडोज और माइक्रोसॉफ्ट के लिए जिम्मेदार कंपनी कार्यालय सॉफ्टवेयर उत्पाद - दोनों अपने संबंधित उत्पाद श्रेणियों में बाजार के नेता।

गैर-लाभकारी सॉफ़्टवेयर संगठनों में मुफ्त सॉफ़्टवेयर फ़ाउंडेशन, GNU प्रोजेक्ट और मोज़िला फ़ाउंडेशन शामिल हैं। सॉफ्टवेयर मानक संगठन जैसे W3C, IETF अनुशंसित सॉफ्टवेयर मानक जैसे XML, HTTP और HTML विकसित करते हैं, ताकि सॉफ्टवेयर इन मानकों के माध्यम से आपस में जुड़ सके।

## इन्हें भी देखें
*मुक्तस्रोत सॉफ्टवेयर
*प्रचालन तंत्र (ऑपरेटिंग सिस्टम)
*अनुप्रयोग सॉफ़्टवेयर (अप्लिकेशन सॉफ्टवेयर)
*सॉफ्टवेयर उद्योग

## सन्दर्भ

*

## बाहरी कड़ियाँ
* Historic Documents in Computer Science (collected by Karl Kleine)
* Best Software Development Company In India.

श्रेणी:सॉफ्टवेयर
श्रेणी:कंप्यूटर अभियान्त्रिकी
श्रेणी:कंप्यूटर
__असूचीबद्ध__