What is Software Definition In Hindi




What is Software Definition In Hindi

दोस्तों सामान्य शब्दों में Program के समूह को Software कहा जाता हैं. Computer से कार्य संपन्न करवाने के लिए उसे कुछ निर्देश देने होते हैं . इन निर्देशों के समूह को हम Computer प्रोग्राम कहते हैं तथा संबंधित प्रोग्रामों के समूह को Computer सॉफ्टवेयर कहते हैं. अतः Computer सॉफ्टवेयर एक प्रकार का Program है जो कंप्यूटर को दिये गये निर्देशों का तार्किक समन्वय करता है. सॉफ्टवेयर के कोई कार्य सम्पन्न नहीं कर सकता है. Software प्रोग्रामिंग भाषा में लिये गये निर्देशों की एक श्रृंखला को जिसके अनुसार ही Computer दिये गये डाटा की प्रोसेसिंग कर वांछित Result प्रदान करता है.

सॉफ्टवेयर की परिभाषा ?

कंप्यूटर सिस्टम के संचालन से जुड़े अनुप्रयोगों, प्रोटोकॉल और प्रक्रियाओं का पूरा सेट सॉफ्टवेयर का उपयोग करता है. एक प्रोग्राम या सॉफ्टवेयर प्रोग्राम को निर्देशों का एक सेट कहा जाता है जो कंप्यूटर के हार्डवेयर को किसी विशेष कार्य को करने के लिए निर्देशित करता है. सिस्टम सॉफ्टवेयर और डिवाइस सॉफ्टवेयर दो मुख्य प्रकार के सॉफ्टवेयर हैं. सिस्टम सॉफ्टवेयर कंप्यूटर के आंतरिक संचालन को मुख्य रूप से ऑपरेटिंग सिस्टम द्वारा नियंत्रित करता है और डिस्प्ले, प्रिंटर और स्टोरेज डिवाइस जैसे बाह्य उपकरणों को नियंत्रित करता है. इसके विपरीत, एप्लिकेशन सॉफ़्टवेयर उपयोगकर्ता द्वारा दिए गए आदेशों को निष्पादित करने के लिए मशीन का मार्गदर्शन करता है और उपयोगकर्ता के डेटा को संसाधित करने वाले किसी भी प्रोग्राम को शामिल करने के लिए मान सकता है. हालाँकि, कंप्यूटर सॉफ़्टवेयर में टेक्स्ट प्रोसेसर, स्प्रेडशीट, डेटाबेस प्रोसेसिंग, इन्वेंट्री और पेरोल सेवाएँ और कई अन्य ऐप शामिल हैं. सॉफ्टवेयर की तीसरी श्रेणी नेटवर्क सॉफ्टवेयर है, जो नेटवर्क से जुड़े कंप्यूटरों के बीच संचार का समन्वय करता है.

सॉफ़्टवेयर, जैसे हार्ड ड्राइव या चुंबकीय डिस्केट, आमतौर पर बाहरी दीर्घकालिक स्मृति इकाई पर रखे जाते हैं. सॉफ्टवेयर के संचालन के दौरान मशीन इसे रिकॉर्डिंग यूनिट से पढ़ती है, रैंडम-एक्सेस मेमोरी निर्देशों को संक्षेप में संग्रहीत करती है. एक प्रोग्राम को "रनिंग" या "एक्ज़ीक्यूटिंग" और फिर निर्देशों का पालन करना कहा जाता है. दूसरी ओर, कंप्यूटर की मेमोरी में केवल-पढ़ने के लिए तकनीक के साथ अनिश्चित काल तक संग्रहीत सॉफ़्टवेयर प्रोग्राम और प्रक्रियाओं को फ़र्मवेयर या हार्ड सॉफ़्टवेयर माना जाता है.

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

सॉफ्टवेयर निर्देशों का एक संग्रह है जो कंप्यूटर को बताता है कि कैसे काम करना है. यह हार्डवेयर के विपरीत है, जिससे सिस्टम बनाया गया है और वास्तव में काम करता है. सबसे कम प्रोग्रामिंग स्तर पर, निष्पादन योग्य कोड में एक व्यक्तिगत प्रोसेसर द्वारा समर्थित मशीन भाषा निर्देश होते हैं-आमतौर पर एक केंद्रीय प्रसंस्करण इकाई (सीपीयू) या एक ग्राफिक्स प्रोसेसिंग यूनिट (जीपीयू). मशीनी भाषा में बाइनरी मानों के समूह होते हैं जो प्रोसेसर निर्देशों को दर्शाते हैं जो कंप्यूटर की स्थिति को उसकी पूर्ववर्ती स्थिति से बदलते हैं. उदाहरण के लिए, एक निर्देश कंप्यूटर में किसी विशेष भंडारण स्थान में संग्रहीत मूल्य को बदल सकता है-एक ऐसा प्रभाव जो उपयोगकर्ता के लिए सीधे देखने योग्य नहीं है. एक निर्देश कई इनपुट या आउटपुट ऑपरेशंस में से एक को भी आमंत्रित कर सकता है, उदाहरण के लिए कंप्यूटर स्क्रीन पर कुछ टेक्स्ट प्रदर्शित करना; राज्य परिवर्तन जो उपयोगकर्ता के लिए दृश्यमान होना चाहिए. प्रोसेसर निर्देशों को उनके द्वारा प्रदान किए गए क्रम में निष्पादित करता है, जब तक कि उसे किसी भिन्न निर्देश पर "कूदने" का निर्देश नहीं दिया जाता है, या ऑपरेटिंग सिस्टम द्वारा बाधित नहीं किया जाता है. 2015 तक, अधिकांश व्यक्तिगत कंप्यूटर, स्मार्टफोन डिवाइस और सर्वर में कई निष्पादन इकाइयों या एक साथ गणना करने वाले कई प्रोसेसर वाले प्रोसेसर होते हैं, और कंप्यूटिंग अतीत की तुलना में बहुत अधिक समवर्ती गतिविधि बन गई है. अधिकांश सॉफ्टवेयर उच्च-स्तरीय प्रोग्रामिंग भाषाओं में लिखे गए हैं. वे प्रोग्रामर के लिए आसान और अधिक कुशल हैं क्योंकि वे मशीनी भाषाओं की तुलना में प्राकृतिक भाषाओं के अधिक करीब हैं. कम्पाइलर या दुभाषिया या दोनों के संयोजन का उपयोग करके उच्च-स्तरीय भाषाओं का मशीनी भाषा में अनुवाद किया जाता है. सॉफ़्टवेयर निम्न-स्तरीय असेंबली भाषा में भी लिखा जा सकता है, जिसमें कंप्यूटर के मशीनी भाषा निर्देशों के लिए एक मजबूत पत्राचार होता है और एक असेंबलर का उपयोग करके मशीन भाषा में अनुवाद किया जाता है.

सॉफ्टवेयर के प्रकार कितने हैं? (Types of Softwares In Hindi)

सॉफ्टवेयर क्या है और सॉफ्टवेयर की परिभाषा क्या होती है के बारे में जान लेने के बाद अब हम जानेंगे की सॉफ्टवेयर के प्रकार कितने होते है और कौन कौन से होते हैं. तो आइये जानते है Software ke Prakar के बारे में :- कम्प्यूटर सॉफ्टवेयर का प्रयोग कम्प्यूटर तथा उसके यूजर के मध्य की Interactive क्रियाओं को संचालित करने हेतु है. कम्प्यूटर सॉफ्टवेयर निम्न प्रकार (Types of Softwares In Hindi) के होते हैं :-

सिस्टम सॉफ्टवेयर: डिवाइस सॉफ्टवेयर सॉफ्टवेयर एप्लिकेशन के आधार के रूप में कार्य करता है. सिस्टम सॉफ्टवेयर में एप्लिकेशन ड्राइवर, कंपाइलर, डिस्क फॉर्मेटर, टेक्स्ट एडिटर, ऑपरेटिंग सिस्टम और उपयोगिताएं शामिल हैं जो मशीन को अधिक प्रभावी ढंग से संचालित करने की अनुमति देती हैं. यह हार्डवेयर के घटकों के प्रबंधन और गैर-कार्य-विशिष्ट बुनियादी कार्यों को प्रदान करने के लिए भी जिम्मेदार है. आमतौर पर, मशीन सॉफ्टवेयर C . की प्रोग्रामिंग भाषा में लिखा जाता है

प्रोग्रामिंग सॉफ्टवेयर: प्रोग्रामिंग सॉफ्टवेयर डेवलपर्स को समर्थन देने के लिए प्रोग्राम लिखने के लिए उपकरणों की एक श्रृंखला है. कंपाइलर, लिंकर, डिबगर, दुभाषिए और टेक्स्ट एडिटर ऐसे कई एप्लिकेशन हैं जो उपलब्ध हैं.

एप्लिकेशन सॉफ़्टवेयर: ऐप्स के लिए प्रौद्योगिकी को उन कार्यों को निष्पादित करने के लिए डिज़ाइन किया गया है. ऑफिस सूट, गेमिंग एप्लिकेशन, कंप्यूटर सिस्टम और शैक्षिक ऐप एप्लिकेशन सॉफ़्टवेयर के उदाहरण हैं. अनुप्रयोगों के लिए सॉफ्टवेयर एक एकल कार्यक्रम या छोटे कार्यक्रमों की एक श्रृंखला हो सकती है. इस प्रकार के प्रोग्राम को उपयोगकर्ता आमतौर पर सॉफ्टवेयर के रूप में जानते हैं.

दुर्भावनापूर्ण सॉफ़्टवेयर: दुर्भावनापूर्ण सॉफ़्टवेयर जानबूझकर बनाया गया है. उन उपभोक्ताओं को भी नुकसान होता है जिन्होंने अनजाने में मैलवेयर इंस्टॉल किया है क्योंकि इस तरह का प्रोग्राम आमतौर पर गोपनीयता में काम करता है.

डिज़ाइन और सुधार ?

विशिष्टताओं की प्रारंभिक समीक्षा के बाद समग्र कार्यक्रम डिजाइन जीवन चक्र में दूसरा और तीसरा चरण डिजाइन और परिनियोजन है. सॉफ़्टवेयर आर्किटेक्चर यह निर्धारित करने का प्रयास करता है कि उपयोगकर्ता विनिर्देशों की पहचान के बाद उन्हें कैसे संतुष्ट किया जाए. एक सॉफ़्टवेयर आर्किटेक्चर को लागू किए जाने वाले सॉफ़्टवेयर कॉन्फ़िगरेशन, डेटा संरचना, डिवाइस तत्वों के बीच इंटरफ़ेस, और संभवतः सॉफ़्टवेयर इंजीनियर के उपयोग किए गए एल्गोरिदम के विवरण की आवश्यकता होती है. विनिर्देश विधि उपयोगकर्ता विनिर्देशों को एक स्वीकार्य आकार में परिवर्तित करती है, कंप्यूटर प्रोग्रामर के सॉफ़्टवेयर कोडिंग और निष्पादन का समर्थन करती है. सॉफ़्टवेयर इंजीनियर पुनरावृत्त रूप से सॉफ़्टवेयर डिज़ाइन का निर्माण करते हैं और डिज़ाइन को परिष्कृत करने के साथ ही उसे सही कर सकते हैं.

विभिन्न प्रकार के सॉफ्टवेयर डिजाइन में शामिल हैं:-

वास्तुकला डिजाइन: यह मौलिक डिजाइन है जो सिस्टम के समग्र विन्यास, इसके प्रमुख तत्वों और एक दूसरे के साथ उनके कनेक्शन को परिभाषित करता है.

उच्च-स्तरीय वास्तुकला: यह डिजाइन की दूसरी परत है, जो इस बात पर ध्यान केंद्रित करती है कि सिस्टम को मॉड्यूल के रूप में, इसके सभी तत्वों के साथ कैसे निष्पादित किया जाए. विभिन्न मॉड्यूल और डिवाइस फ़ंक्शंस, डेटा फ़्लो, फ़्लो मैप्स और डेटा संरचनाओं के बीच संबंध परिभाषित किए गए हैं.

विस्तृत डिज़ाइन: यह तीसरी डिज़ाइन परत है जो निर्दिष्ट वास्तुकला के लिए आवश्यक कार्यान्वयन के सभी पहलुओं पर ध्यान केंद्रित करती है.

सॉफ्टवेयर लाइसेंसिंग और पेटेंट ?

एक सॉफ्टवेयर लाइसेंस एक दस्तावेज है जिसमें निर्देश होते हैं और सॉफ्टवेयर के उपयोग और वितरण पर कानूनी रूप से बाध्यकारी होते हैं. आमतौर पर, सॉफ़्टवेयर लाइसेंस उपभोक्ताओं को कॉपीराइट को तोड़े बिना एक या अधिक सॉफ़्टवेयर संस्करणों का अधिकार प्रदान करते हैं. इसके अलावा, लाइसेंस पार्टी के दायित्वों को निर्दिष्ट करता है जो लाइसेंस समझौते में प्रवेश करते हैं और इस पर सीमाएं लगा सकते हैं कि अंतिम उपयोगकर्ता कार्यक्रम का उपयोग कैसे कर सकता है. सॉफ़्टवेयर लाइसेंस के लिए नियम और शर्तों में आमतौर पर सॉफ़्टवेयर का समान उपयोग, उत्तरदायित्व के प्रतिबंध, गारंटी, साथ ही अस्वीकरण और सुरक्षा उपाय शामिल होते हैं यदि सॉफ़्टवेयर या उपयोग किसी के बौद्धिक संपदा अधिकारों का उल्लंघन करता है.

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

Software Quality

कार्यक्रम क्या कर सकता है यह लागू विनिर्देशों द्वारा परिभाषित किया गया है. तकनीकी विवरण, डेटा हेरफेर और प्रसंस्करण, माप या कुछ अन्य बुनियादी विशेषताएं परिभाषित करती हैं कि कोई एप्लिकेशन क्या करना चाहता है.

गैर-कार्यात्मक मानदंड यह तय करते हैं कि डिवाइस कैसे काम कर सकता है, जिसे "गुणवत्ता विशेषताओं" के रूप में भी जाना जाता है, पोर्टेबिलिटी, डिजास्टर रिकवरी, स्थिरता, गोपनीयता और प्रयोज्य जैसे आइटम में गैर-कार्यात्मक विनिर्देश हैं.

अभिगम्यता: वह डिग्री जिस तक विभिन्न वर्ग के लोग, यहां तक कि ऐसे व्यक्ति जिन्हें अनुकूली तकनीक जैसे वाक् पहचान और स्क्रीन मैग्निफायर की आवश्यकता होती है, आसानी से कार्यक्रम का उपयोग कर सकते हैं.

दक्षता: स्थान, शक्ति, प्रयास, समय या धन बर्बाद किए बिना अच्छी तरह से काम करने के लिए सॉफ्टवेयर की क्षमता.

रखरखाव: यह इंगित करता है कि हम कितनी जल्दी एन्हांसमेंट जोड़ने, कार्यों को अपग्रेड करने, बग की मरम्मत आदि के लिए ऐप को बदल सकते हैं.

कार्यक्षमता: यह अपने परिभाषित या वांछनीय कार्यों को निष्पादित करने के लिए सॉफ़्टवेयर की क्षमता का प्रतिनिधित्व करता है.

संगतता: विभिन्न ऑपरेटिंग सिस्टम, कंप्यूटर और ब्राउज़र जैसे संदर्भों की एक विस्तृत श्रृंखला में उपयोग किए जाने वाले कार्यक्रम की उपयुक्तता.

स्थानीयकरण: कई भाषाओं, समय क्षेत्रों, आदि में उपयोग की जाने वाली सॉफ़्टवेयर की क्षमता

इंस्टालेबिलिटी: किसी दिए गए संदर्भ में सॉफ़्टवेयर की क्षमता को माउंट करने की क्षमता.

प्रदर्शन: यह दर्शाता है कि प्रोग्राम किसी दिए गए लोड के तहत आसानी से कैसे काम करता है.

सुवाह्यता: सॉफ्टवेयर की क्षमता एक स्थान से दूसरे स्थान पर मूल रूप से स्थानांतरित करने की.

विश्वसनीयता: एक निर्दिष्ट अवधि में विशेष परिस्थितियों में बिना किसी त्रुटि के आवश्यक संचालन को निष्पादित करने के लिए कार्यक्रम की क्षमता.

स्केलेबिलिटी: सॉफ्टवेयर की प्रोसेसिंग मांगों को बेहतर बनाने के लिए आउटपुट को बढ़ाने या घटाने के लिए प्रोग्राम की क्षमता का संकेतक.

सुरक्षा: अवांछित प्रविष्टि, गोपनीयता के उल्लंघन, धोखाधड़ी, डेटा की कमी आदि से बचाव के लिए सॉफ़्टवेयर की क्षमता.

टेस्टेबिलिटी: सॉफ्टवेयर की क्षमता को जल्दी से जांचने की क्षमता.

आप सॉफ्टवेयर कैसे प्राप्त करते हैं?

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

Free software

बहुत सारे मुफ्त सॉफ्टवेयर प्रोग्राम भी उपलब्ध हैं जिन्हें निम्नलिखित श्रेणियों में विभाजित किया गया है.

शेयरवेयर या ट्रायल सॉफ्टवेयर वह सॉफ्टवेयर है जो आपको प्रोग्राम खरीदने से पहले सॉफ्टवेयर को आजमाने के लिए कुछ दिन देता है. परीक्षण समय समाप्त होने के बाद, आपको इसका उपयोग जारी रखने से पहले एक कोड दर्ज करने या उत्पाद को पंजीकृत करने के लिए कहा जाएगा.

फ्रीवेयर पूरी तरह से मुफ्त सॉफ्टवेयर है जिसे कभी भी भुगतान की आवश्यकता नहीं होती है, जब तक कि इसे संशोधित नहीं किया जाता है.

ओपन सोर्स सॉफ्टवेयर फ्रीवेयर के समान है. न केवल कार्यक्रम मुफ्त है, बल्कि स्रोत कोड भी सभी के लिए उपलब्ध है.

बंडल वेयर नए कंप्यूटर और हार्डवेयर के साथ बंडल किया गया सॉफ़्टवेयर है.

आप कंप्यूटर सॉफ्टवेयर का उपयोग कैसे करते हैं?

एक बार कंप्यूटर की हार्ड ड्राइव पर सॉफ्टवेयर इंस्टाल हो जाने के बाद, प्रोग्राम को किसी भी समय उपयोग किया जा सकता है. विंडोज़ कंप्यूटर पर, आपके विंडोज़ के संस्करण के आधार पर, स्टार्ट मेनू या स्टार्ट स्क्रीन में एक प्रोग्राम आइकन जोड़ा जाता है.

सॉफ्टवेयर कैसे बनाए रखें

आपके कंप्यूटर पर सॉफ़्टवेयर स्थापित होने के बाद, किसी भी त्रुटि को ठीक करने के लिए इसे अपडेट करने की आवश्यकता हो सकती है. सॉफ़्टवेयर पैच का उपयोग करके प्रोग्राम को अपडेट किया जा सकता है. एक बार अपडेट इंस्टॉल हो जाने के बाद, प्रोग्राम में अनुभव की गई कोई भी समस्या अब नहीं होगी.

सॉफ्टवेयर कैसे बनाया जाता है और यह कैसे काम करता है?

एक कंप्यूटर प्रोग्रामर (या कई कंप्यूटर प्रोग्रामर) प्रोग्रामिंग भाषा का उपयोग करके निर्देश लिखते हैं, यह परिभाषित करते हुए कि सॉफ्टवेयर को संरचित डेटा पर कैसे काम करना चाहिए. प्रोग्राम को तब व्याख्या किया जा सकता है, या मशीन कोड में संकलित किया जा सकता है.

जब मैं किसी दस्तावेज़ को सहेजता हूँ, तो क्या उस फ़ाइल को भी सॉफ़्टवेयर माना जाता है?

जब आप सॉफ़्टवेयर का उपयोग करके फ़ाइल बनाते या संपादित करते हैं - उदाहरण के लिए, Microsoft Word दस्तावेज़, या फ़ोटोशॉप छवि - उस फ़ाइल को सॉफ़्टवेयर "संसाधन" या "संपत्ति" माना जाता है. हालाँकि, फ़ाइल को स्वयं "सॉफ़्टवेयर" नहीं माना जाता है, भले ही यह आपका सॉफ़्टवेयर क्या कर रहा है, इसका एक अनिवार्य हिस्सा है.

कंप्यूटर सॉफ्टवेयर का पहला टुकड़ा क्या था?

1948 में SSEM के लिए टॉम किलबर्न का पहला कार्यक्रम. पहला सॉफ्टवेयर प्रोग्राम जो इलेक्ट्रॉनिक मेमोरी में रखा गया था, उसे टॉम किलबर्न ने श्रेय दिया और लिखा था. कार्यक्रम ने पूर्णांक 218 = 262,144 के उच्चतम कारक की गणना की और 21 जून, 1948 को इंग्लैंड के मैनचेस्टर विश्वविद्यालय में सफलतापूर्वक निष्पादित किया गया. उस प्रोग्राम को आयोजित करने वाले कंप्यूटर को SSEM (स्मॉल स्केल एक्सपेरिमेंटल मशीन) कहा जाता था, अन्यथा "मैनचेस्टर बेबी" के रूप में जाना जाता था. इस घटना को व्यापक रूप से सॉफ्टवेयर के जन्म के रूप में मनाया जाता है.

ओपन सोर्स क्या है?

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

ओपन सोर्स सॉफ्टवेयर क्या है?

ओपन सोर्स सॉफ्टवेयर सोर्स कोड वाला सॉफ्टवेयर है जिसे कोई भी देख सकता है, संशोधित कर सकता है और बढ़ा सकता है. "सोर्स कोड" सॉफ़्टवेयर का वह भाग है जिसे अधिकांश कंप्यूटर उपयोगकर्ता कभी नहीं देखते हैं; यह वह कोड है जिसे कंप्यूटर प्रोग्रामर बदलने के लिए हेरफेर कर सकते हैं कि कैसे सॉफ्टवेयर का एक टुकड़ा - एक "प्रोग्राम" या "एप्लिकेशन" - काम करता है. प्रोग्रामर्स जिनके पास कंप्यूटर प्रोग्राम के सोर्स कोड तक पहुंच है, उस प्रोग्राम में सुविधाओं को जोड़कर या उन हिस्सों को ठीक करके सुधार कर सकते हैं जो हमेशा सही तरीके से काम नहीं करते हैं.

ओपन सोर्स सॉफ्टवेयर और अन्य प्रकार के सॉफ्टवेयर में क्या अंतर है?

कुछ सॉफ़्टवेयर में स्रोत कोड होता है जिसे केवल वह व्यक्ति, टीम या संगठन जिसने इसे बनाया है—और उस पर विशेष नियंत्रण रखता है—संशोधित कर सकता है. लोग इस तरह के सॉफ़्टवेयर को "मालिकाना" या "बंद स्रोत" सॉफ़्टवेयर कहते हैं. केवल मालिकाना सॉफ़्टवेयर के मूल लेखक ही उस सॉफ़्टवेयर को कानूनी रूप से कॉपी, निरीक्षण और बदल सकते हैं. और मालिकाना सॉफ़्टवेयर का उपयोग करने के लिए, कंप्यूटर उपयोगकर्ताओं को सहमत होना चाहिए (आमतौर पर पहली बार इस सॉफ़्टवेयर को चलाने पर प्रदर्शित लाइसेंस पर हस्ताक्षर करके) कि वे उस सॉफ़्टवेयर के साथ कुछ भी नहीं करेंगे जिसे सॉफ़्टवेयर के लेखकों ने स्पष्ट रूप से अनुमति नहीं दी है. माइक्रोसॉफ्ट ऑफिस और एडोब फोटोशॉप मालिकाना सॉफ्टवेयर के उदाहरण हैं. ओपन सोर्स सॉफ्टवेयर अलग है. इसके लेखक इसके स्रोत कोड को अन्य लोगों के लिए उपलब्ध कराते हैं जो उस कोड को देखना चाहते हैं, इसकी प्रतिलिपि बनाना चाहते हैं, इससे सीखना चाहते हैं, इसे बदलना चाहते हैं या इसे साझा करना चाहते हैं. लिब्रे ऑफिस और जीएनयू इमेज मैनिपुलेशन प्रोग्राम ओपन सोर्स सॉफ्टवेयर के उदाहरण हैं. जैसा कि वे मालिकाना सॉफ़्टवेयर के साथ करते हैं, उपयोगकर्ताओं को ओपन सोर्स सॉफ़्टवेयर का उपयोग करते समय लाइसेंस की शर्तों को स्वीकार करना चाहिए-लेकिन ओपन सोर्स लाइसेंस की कानूनी शर्तें मालिकाना लाइसेंस से नाटकीय रूप से भिन्न होती हैं.

ओपन सोर्स लाइसेंस लोगों के सॉफ़्टवेयर का उपयोग करने, अध्ययन करने, संशोधित करने और वितरित करने के तरीके को प्रभावित करते हैं. सामान्य तौर पर, ओपन सोर्स लाइसेंस कंप्यूटर उपयोगकर्ताओं को किसी भी उद्देश्य के लिए ओपन सोर्स सॉफ़्टवेयर का उपयोग करने की अनुमति देते हैं. कुछ ओपन सोर्स लाइसेंस - जिन्हें कुछ लोग "कॉपीलेफ्ट" लाइसेंस कहते हैं - यह निर्धारित करते हैं कि जो कोई भी संशोधित ओपन सोर्स प्रोग्राम जारी करता है, उसे इसके साथ उस प्रोग्राम के लिए सोर्स कोड भी जारी करना होगा. इसके अलावा, कुछ ओपन सोर्स लाइसेंस यह निर्धारित करते हैं कि जो कोई भी प्रोग्राम को बदलता है और दूसरों के साथ साझा करता है, उसे उस प्रोग्राम के सोर्स कोड को इसके लिए लाइसेंस शुल्क चार्ज किए बिना साझा करना होगा. डिज़ाइन के अनुसार, ओपन सोर्स सॉफ़्टवेयर लाइसेंस सहयोग और साझाकरण को बढ़ावा देते हैं क्योंकि वे अन्य लोगों को स्रोत कोड में संशोधन करने और उन परिवर्तनों को अपनी परियोजनाओं में शामिल करने की अनुमति देते हैं. वे कंप्यूटर प्रोग्रामर्स को जब चाहें ओपन सोर्स सॉफ़्टवेयर तक पहुँचने, देखने और संशोधित करने के लिए प्रोत्साहित करते हैं, जब तक कि वे दूसरों को ऐसा करने देते हैं जब वे अपना काम साझा करते हैं.

क्या ओपन सोर्स सॉफ्टवेयर केवल कंप्यूटर प्रोग्रामर के लिए महत्वपूर्ण है?

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

अधिक से अधिक, लोग दूरस्थ कंप्यूटर पर भरोसा करते हैं जब वे कार्य करते हैं जो वे अन्यथा अपने स्थानीय उपकरणों पर कर सकते हैं. उदाहरण के लिए, वे ऑनलाइन वर्ड प्रोसेसिंग, ईमेल प्रबंधन, और छवि संपादन सॉफ़्टवेयर का उपयोग कर सकते हैं जिन्हें वे अपने व्यक्तिगत कंप्यूटर पर स्थापित और चलाते नहीं हैं. इसके बजाय, वे वेब ब्राउज़र या मोबाइल फ़ोन एप्लिकेशन का उपयोग करके इन प्रोग्रामों को दूरस्थ कंप्यूटरों पर आसानी से एक्सेस करते हैं. जब वे ऐसा करते हैं, तो वे "रिमोट कंप्यूटिंग" में लगे रहते हैं.

कुछ लोग दूरस्थ कंप्यूटिंग को "क्लाउड कंप्यूटिंग" कहते हैं, क्योंकि इसमें ऐसी गतिविधियां शामिल होती हैं (जैसे फ़ाइलें संग्रहीत करना, फ़ोटो साझा करना, या वीडियो देखना) जिसमें न केवल स्थानीय उपकरण शामिल होते हैं, बल्कि दूरस्थ कंप्यूटरों का एक वैश्विक नेटवर्क भी होता है जो उनके चारों ओर एक "वातावरण" बनाते हैं. क्लाउड कंप्यूटिंग इंटरनेट से जुड़े उपकरणों के साथ रोजमर्रा की जिंदगी का एक महत्वपूर्ण पहलू है. कुछ क्लाउड कंप्यूटिंग एप्लिकेशन, जैसे Google Apps, मालिकाना हैं. अन्य, जैसे कि खुद के क्लाउड और नेक्स्टक्लाउड, खुले स्रोत हैं. क्लाउड कंप्यूटिंग एप्लिकेशन अतिरिक्त सॉफ़्टवेयर के "शीर्ष पर" चलते हैं जो उन्हें सुचारू रूप से और कुशलता से संचालित करने में मदद करते हैं, इसलिए लोग अक्सर कहेंगे कि क्लाउड कंप्यूटिंग अनुप्रयोगों के "नीचे" चलने वाला सॉफ़्टवेयर उन अनुप्रयोगों के लिए "प्लेटफ़ॉर्म" के रूप में कार्य करता है. क्लाउड कंप्यूटिंग प्लेटफॉर्म ओपन सोर्स या क्लोज्ड सोर्स हो सकते हैं. ओपनस्टैक एक ओपन सोर्स क्लाउड कंप्यूटिंग प्लेटफॉर्म का एक उदाहरण है.

लोग ओपन सोर्स सॉफ्टवेयर का उपयोग करना क्यों पसंद करते हैं?

लोग कई कारणों से मालिकाना सॉफ़्टवेयर के बजाय ओपन सोर्स सॉफ़्टवेयर पसंद करते हैं, जिनमें शामिल हैं:

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

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

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

स्थिरता. कई उपयोगकर्ता महत्वपूर्ण, दीर्घकालिक परियोजनाओं के लिए मालिकाना सॉफ़्टवेयर के लिए ओपन सोर्स सॉफ़्टवेयर पसंद करते हैं. चूंकि प्रोग्रामर ओपन सोर्स सॉफ़्टवेयर के लिए स्रोत कोड सार्वजनिक रूप से वितरित करते हैं, इसलिए महत्वपूर्ण कार्यों के लिए उस सॉफ़्टवेयर पर भरोसा करने वाले उपयोगकर्ता यह सुनिश्चित कर सकते हैं कि उनके उपकरण गायब नहीं होंगे या यदि उनके मूल निर्माता उन पर काम करना बंद कर देंगे तो वे खराब नहीं होंगे. इसके अतिरिक्त, ओपन सोर्स सॉफ्टवेयर खुले मानकों के अनुसार दोनों को शामिल और संचालित करता है.

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

क्या "ओपन सोर्स" का मतलब यह नहीं है कि कुछ मुफ्त है?

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