सॉफ्टवेयर क्या हैं? (What is Software?)
सॉफ्टवेयर, किसी कंप्यूटर का वो हिस्सा हैं, जो कंप्यूटर में किसी particular work (Specific Task) को करने के लिए प्लेटफॉर्म प्रदान करता है। कंप्यूटर पर हम जो भी कार्य करते हैं वह सभी सॉफ्टवेयर पर ही करते हैं। सॉफ्टवेयर के बिना कोई भी कंप्यूटर नहीं चलाया जा सकता। हर सॉफ्टवेयर अलग अलग विशिष्ट कार्य (Specific Task) के लिए बनाया जाता है और उसमें सिर्फ वही कार्य किया जा सकता है जिस कार्य के लिए उसे बनाया गया है। जैसे – MS Office जिसमें हम कुछ टाइप कर सकते हैं।, Photoshop जिसमें फोटोस को एडिट किया जाता है।, Chrome जिसमें इंटरनेट एक्सेस करते हैं और इसे ब्राउज़र भी कहा जाता है। सॉफ्टवेयर को हम छू नहीं सकते। यह अदृश्य (Invisible) होता है। क्योंकि सॉफ्टवेयर बहुत सारी प्रोग्राम को इकट्ठा करके बनाया जाता है इसलिए ना तो हम इसे देख सकते हैं और ना ही छू सकते हैं।
सॉफ्टवेर की परिभाषा (Definition of Software)
सॉफ्टवेयर प्रोग्रामो, नियम व क्रियाओं का वह समूह है जो कंप्यूटर सिस्टम के कार्यों को नियंत्रित करता है तथा कंप्यूटर के विभिन्न हार्डवेयर के बीच समन्वय स्थापित करता है, ताकि किसी विशेष कार्य को पूरा किया जा सके। इस तरह, सॉफ्टवेयर वह निर्देश है जो हार्डवेयर से निर्धारित कार्य कराने के लिए उसे दिए जाते हैं। सॉफ्टवेयर, हार्डवेयर को यह बताता है कि उसे क्या करना है, कब करना है और कैसे करना है। सॉफ्टवेयर कंप्यूटर का वह भाग है जिसे हम छू नहीं सकते। अगर हार्डवेयर इंजन है तो सॉफ्टवेयर उसका ईंधन।
सॉफ्टवेयर बहुत सारे प्रोग्रामो का समूह है जो एक कंप्यूटर के विशिष्ट कार्य (Specific Task) को निष्पादन करता है।
Software is a set of programs which perform a specific task in a computer.
निर्देशों या प्रोग्रामो के समूह को सॉफ्टवेयर कहते हैं, यह प्रोग्राम्स कंप्यूटर को उपयोगकर्ता के इस्तेमाल योग्य बनाते हैं।
सॉफ्टवेयर को क्यों देखा या छुआ नहीं जा सकता?
सॉफ्टवेयर को ना तो आंखों से देखा जा सकता है और ना ही इसे हाथों से छुआ जा सकता है। ऐसा इसलिए क्योंकि सॉफ्टवेयर निर्देशों और प्रोग्रामो के समूह से बनता है और इसका कोई भौतिक अस्तित्व नहीं होता है। यह पूरी तरह से अदृश्य (Invisible) होता है इसे केवल समझा जा सकता है। किसी भी कंप्यूटर या इलेक्ट्रॉनिक डिवाइस जैसे – मोबाइल, टेबलेट, लैपटॉप, टेलीविजन, आदि को बिना सॉफ्टवेयर के नहीं चलाया जा सकता।
सॉफ्टवेयर के प्रकार? (Types of Software)
हर समय हम सॉफ्टवेयर से खीरे रहते है। हमारे काम को आसान बनाने और कम समय में करने के लिए सॉफ्टवेयर को बनाया गया है। प्रति दिन हम बहुत से सॉफ्टवेयर का इस्तेमाल करते हैं चाहे वह कंप्यूटर, लैपटॉप से करे या मोबाइल से, फिर चाहे वह व्हाट्सएप हो या कोई और सॉफ्टवेयर हो। हमारा यह पोस्ट भी आप किसी ना किसी ब्राउजर सॉफ्टवेयर के माध्यम से ही पढ़ रहे हैं। सॉफ्टवेयर को मुख्य रूप से तीन भागों में बांटा जा सकता है।
>> System Software
प्रोग्रामों का समूह जो कंप्यूटर सिस्टम के मूलभूत कार्यों को संपन्न करने तथा उन्हें कार्य के लायक बनाये रखने के लिए तैयार किये जाते हैं, सिस्टम सॉफ्टवेर कहलाते हैं। यह कंप्यूटर और उपयोगकर्ता के बीच mediator का काम करता है। सिस्टम सॉफ्टवेयर के बिना कंप्यूटर एक बेजान मशीन भर ही रह जाता है।सिस्टम सॉफ्टवेयर एक तरफ तो कंप्यूटर हार्डवेयर से जुड़ा होता है तो दूसरी तरफ एप्लीकेशन सॉफ्टवेयर से। सिस्टम सॉफ्टवेयर एप्लीकेशन सॉफ्टवेयर के लिए बैकग्राउंड तैयार करता है। कोई भी एप्लीकेशन सॉफ्टवेयर सिस्टम सॉफ्टवेयर को ध्यान में रखकर ही तैयार किया जाता है। सिस्टम सॉफ्टवेयर के मुख्य कार्य निम्नलिखित हैं :
i) विभिन्न हार्डवेयर संसाधनों का नियंत्रण, समन्वय और अनुकूलतम उपयोग सुनिश्चित करना।
ii) एप्लीकेशन सॉफ्टवेयर के लिए बैकग्राउंड तैयार करना।
iii) पेरीफेरल डिवाइसेज का सामान्य तथा नियंत्रण करना।
iv) उपयोगकर्ता, एप्लीकेशन सॉफ्टवेयर और हार्डवेयर के बीच मेडिएटर का काम करना।
सिस्टम सॉफ्टवेयर के उदाहरण : डॉस (डॉस), विंडोज (Windows), यूनिक्स (Unix), मैसिंटास (Macintosh), इत्यादि। सिस्टम सॉफ्टवेयर को मुख्य रूप से दो भागों में बांटा जाता है। ऑपरेटिंग सिस्टम सॉफ्टवेयर (Operating System Software) और लैंग्वेज ट्रांसलेटर सॉफ्टवेयर (Language Translator Software)।
ऑपरेटिंग सिस्टम प्रोग्रामों का वह समूह है जो कंप्यूटर सिस्टम और उसके विभिन्न संसाधनों के कार्यों को नियंत्रित करता है तथा हार्डवेयर, एप्लीकेशन सॉफ्टवेयर और उपयोगकर्ता के बीच संबंध स्थापित करता है। यह विभिन्न एप्लीकेशन प्रोग्राम के बीच समन्वय स्थापित करता है। ऑपरेटिंग सिस्टम के बिना हार्डवेयर किसी एप्लीकेशन प्रोग्राम को क्रियान्वित नहीं कर सकता। अधिकांश ऑपरेटिंग सिस्टम के साथ कुछ एप्लीकेशन सॉफ्टवेयर पहले से ही बने होते हैं जैसे – Video Player, Web Browser, Calculator, Etc. कुछ ऑपरेटिंग सिस्टम के मुख्य उदाहरण:- MS DOS, Windows, Apple Mac OS, Unix, Linux, Ubuntu, Etc.
Read More
>> What is Input Device And Output Device? इनपुट डिवाइस और आउटपुट डिवाइस क्या हैं?
>> कंप्यूटर का इतिहास और विकास | History and Development of Computer
i) कंप्यूटर चालू किए जाने पर सॉफ्टवेयर को सेकेंडरी मेमोरी से लेकर प्राइमरी मेमोरी में डालना और कुछ बेसिक एक्शंस को फिर से शुरू करना।
ii) हार्डवेयर और यूजर्स के बीच संबंध स्थापित करना।
iii) हार्डवेयर संसाधनों का नियंत्रण और बेहतर उपयोग सुनिश्चित करना।
iv) एप्लीकेशन सॉफ्टवेयर के implementation के लिए background तैयार करना।
v) मेमोरी और फाइल को मैनेज करना तथा मेमोरी और स्टोरेज डिस्क के बीच डाटा का आदान प्रदान करना।
vi) हार्डवेयर और सॉफ्टवेयर से संबंधित कंप्यूटर के विभिन्न errors को indicate करना।
vi) कंप्यूटर सॉफ्टवेयर और डाटा को अवैध प्रयोग से सुरक्षित रखना तथा इसकी warning देना।
ऑपरेटिंग सिस्टम के प्रकार (Types of Operating System)
इसमें एक ही प्रकृति के कार्यों को एक बैच के रूप में ऑर्गेनाइज करके समूह में क्रियान्वित किया जाता है। इसके लिए बैच मॉनिटर सॉफ्टवेयर का प्रयोग किया जाता है। इस सिस्टम का लाभ यह है कि प्रोग्राम के क्रियान्वयन के लिए कंप्यूटर के सभी संसाधन उपलब्ध रहते हैं, इसलिए इसमें टाइम मैनेजमेंट की जरूरत नहीं पड़ती।
लेकिन इसमें उपयोगकर्ता और प्रोग्राम के बीच क्रियान्वयन के दौरान कोई अंत संबंध नहीं रहता और रिजल्ट मिलने में समय अधिक लगता है। Intermediate Results पर यूजर्स का कोई कंट्रोल नहीं रहता। इस सिस्टम का प्रयोग ऐसे कार्यों के लिए किया जाता है जिसमें मानवीय हस्तक्षेप की आवश्यकता नहीं होती है। जैसे – Statistical Analysis करना, Payroll बनाना, Bill Printout करना, इत्यादि।
इस प्रकार के ऑपरेटिंग सिस्टम में एक साथ कई कार्यों को किया जा सकता है। उदाहरण के लिए, किसी एक प्रोग्राम के क्रियान्वयन के बाद जब उसका प्रिंट लिया जा रहा होता है तो प्रोसेसर खाली बैठने के स्थान पर दूसरे प्रोग्राम का क्रियान्वयन आरंभ कर देता है जिसमें प्रिंटर की आवश्यकता नहीं होती। इससे क्रियान्वयन में लगने वाला समय कम हो जाता है और संसाधनों का बेहतर उपयोग किया जा सकता है। मल्टीप्रोग्रामिंग ऑपरेटिंग सिस्टम में प्रोसेसर कई प्रोग्रामों को एक साथ क्रियान्वित नहीं करता, बल्कि एक समय में एक ही निर्देश को संपादित करता है।
एक निर्देश संपादित होने के बाद ही मेन मेमोरी में स्थित दूसरे कार्य के निर्देश को संपादित किया जाता है। इसके लिए स्पेशल हार्डवेयर और सॉफ्टवेयर की जरूरत होती है। इसमें कंप्यूटर की मेन मेमोरी का आकार बड़ा होना चाहिए ताकि मेन मेमोरी का कुछ हिस्सा प्रत्येक प्रोग्राम के लिए बांटा जा सके। इसमें प्रोग्राम क्रियान्वयन का क्रम तथा वरीयता निर्धारित करने की व्यवस्था भी होनी चाहिए।
इस ऑपरेटिंग सिस्टम में एक साथ कई यूजर्स जिन्हें टर्मिनल भी कहते हैं, इंटरएक्टिव मोड में वर्क करते हैं जिसमें प्रोग्राम के क्रियान्वयन के बाद मिलने वाले रिजल्ट को तुरंत दर्शाया जाता है। हर एक ही यूजर्स को संसाधनों के साझा उपयोग के लिए कुछ समय दिया जाता है जिसे टाइम स्लाइस (Time Slice) या क्वांटम (Quantum) कहते हैं। इनपुट देने और आउटपुट प्राप्त करने के बीच के समय को टर्न अराउंड टाइम (Turn Around Time) कहा जाता है। इस समय का उपयोग कंप्यूटर द्वारा दूसरे यूजर्स के प्रोग्रामो के क्रियान्वयन में किया जाता है।
इस ऑपरेटिंग सिस्टम में मेमोरी का सही प्रबंधन आवश्यक होता है क्योंकि कई प्रोग्राम एक साथ मुख्य मेमोरी में उपस्थित होते हैं। इस व्यवस्था में पूरे प्रोग्राम को मुख्य मेमोरी में न रखकर प्रोग्राम क्रियान्वयन के लिए आवश्यक हिस्सा ही मुख्य मेमोरी में लाया जाता है। इस प्रोसेस को स्वैपिंग (Swapping) कहते हैं।
ऑपरेटिंग सिस्टम में निर्धारित समय सीमा में परिणाम देने को महत्व दिया जाता है। इसमें एक प्रोग्राम के परिणाम का दूसरे प्रोग्राम में इनपुट डाटा के रूप में प्रयोग किया जा सकता है। पहले प्रोग्राम के क्रियान्वयन में देरी से दूसरे प्रोग्राम का क्रियान्वयन और परिणाम रुक सकता है। इसलिए इस व्यवस्था में प्रोग्राम के क्रियान्वयन समय (Response Time) को Fast रखा जाता हैं। इस ऑपरेटिंग सिस्टम का उपयोग उपग्रहों के संचालन, हवाई जहाज के नियंत्रण, वैज्ञानिक अनुसंधान, रक्षा, चिकित्सा, रेलवे आरक्षण, इत्यादि में किया जाता है। लाइनेक्स (Linux) ऑपरेटिंग सिस्टम इन रियल टाइम ऑपरेटिंग सिस्टम का उदाहरण है।
पर्सनल कंप्यूटर के विकास के साथ सिंगल ऑपरेटिंग सिस्टम की आवश्यकता महसूस की गई जिसमें प्रोग्राम क्रियान्वयन की समय सीमा या संसाधनों के बेहतर उपयोग को वरीयता ना देकर प्रोग्राम की सरलता और यूजर्स को अधिक से अधिक सुविधा प्रदान करने पर जोर दिया गया। एमएस डॉस (MS DOS – Microsoft Disk Operating System) सिंगल ऑपरेटिंग सिस्टम का उदाहरण है।
इस ऑपरेटिंग सिस्टम का प्रयोग नेटवर्क से जुड़े कंप्यूटर सिस्टम में किया जाता है। इसमें कई उपयोगकर्ता एक ही समय में कंप्यूटर पर स्थित एक ही डेटा का उपयोग तथा उसका प्रोसेस कर सकते हैं। Windows – 7, 8, 8.1, 10, Unix, Linux, इत्यादि मल्टी यूजर ऑपरेटिंग सिस्टम के उदाहरण है।
किसी उपकरण के भीतर स्थित प्रोसेसर के प्रयोग के लिए बना ऑपरेटिंग सिस्टम एंबेडेड ऑपरेटिंग सिस्टम कहलाता है। यह सॉफ्टवेयर प्रोसेसर के भीतर ही ROM मैं स्टोर किया जाता है। माइक्रोवेव, वाशिंग मशीन, डीवीडी प्लेयर, इलेक्ट्रॉनिक घड़ी, इत्यादि मैं इसका प्रयोग किया जाता है।
ओपन सोर्स ऑपरेटिंग सिस्टम में सॉफ्टवेयर का केरनेल (Kernel) या सोर्स कोड (Source Code) सबके लिए उपलब्ध होता है और कोई भी अपनी जरूरत के अनुसार इस में परिवर्तन कर उसका उपयोग कर सकता है। इस ऑपरेटिंग सिस्टम पर किसी का अधिकार नहीं होता और ना ही यूजर्स द्वारा कोई शुल्क चुकाना पड़ता है। क्लोज्ड सोर्स ऑपरेटिंग सिस्टम में उसका सोर्स कोड गुप्त रखा जाता है और यूजेस निर्धारित शुल्क चुकाकर ही इस सॉफ्टवेयर का उपयोग कर सकते हैं। लाइनेक्स एक ओपन सोर्स ऑपरेटिंग सिस्टम है जबकि विंडोज माइक्रोसॉफ्ट कंपनी का क्लोज्ड सोर्स ऑपरेटिंग सिस्टम है। मोबाइल टेलीफोन में प्रयुक्त गूगल का Android OS ओपन सोर्स सॉफ्टवेयर है जबकि Apple का iPhone OS एक क्लोज्ड सोर्स ऑपरेटिंग सिस्टम है।
कंप्यूटर एक इलेक्ट्रॉनिक मशीन हैं जो केवल बाइनरी नंबर (0 और 1) समझ सकता हैं। बाइनरी नंबर में लिखें निर्देश या सॉफ्टवेयर प्रोग्राम को मशीन भाषा (Machine Language) कहा जाता हैं। कंप्यूटर मशीन भाषा में लिखे प्रोग्राम को समझ कर Run कर सकता हैं। लेकिन मशीन भाषा में प्रोग्राम या सॉफ्टवेयर तैयार करना मुस्किल काम होता हैं। साथ ही, हर एक कंप्यूटर प्रोसेसर की अपनी एक अलग मशीन भाषा होती हैं जो प्रोसेसर बनाने वाली कंपनी पर निर्भर करती हैं। इससे बचने के लिए सॉफ्टवेयर प्रोग्राम को High Level Language में तैयार किया जाता हैं। और इसे Language Translator Software के जरिये मशीन भाषा में बदला जाता हैं। लैंग्वेज ट्रांसलेटर सॉफ्टवेयर को लैंग्वेज प्रोसेसर भी कहते हैं।
High Level Language कंप्यूटर की आम बोलचाल की भाषा के करीब होती है। इसलिए इस भाषा में प्रोग्राम तैयार करना आसान होता है। और साथ ही हाई लेवल लैंग्वेज प्रोसेसर की कंपनी तथा उसके मॉडल पर निर्भर नहीं करती। हाई लेवल लैंग्वेज में तैयार प्रोग्राम को लैंग्वेज ट्रांसलेटर सॉफ्टवेयर द्वारा मशीन भाषा में बदल कर किसी भी कंप्यूटर पर चलाया जा सकता है। हाई लेवल लैंग्वेज में तैयार किया गया प्रोग्राम सोर्स प्रोग्राम (Source Program) या सोर्स कोड कहलाता हैं। जबकि ट्रांसलेटर सॉफ्टवेयर द्वारा मशीन भाषा में परिवर्तित प्रोग्राम ऑब्जेक्ट प्रोग्राम (Object Program) या मशीन कोड कहलाता है। सामान्य तौर पर ऑपरेटिंग सिस्टम सॉफ्टवेयर लो लेवल लैंग्वेज (LLL) में लिखा जाता है जबकि एप्लीकेशन या यूटिलिटी सॉफ्टवेयर हाई लेवल लैंग्वेज (HLL) में तैयार किया जाता है।
लैंग्वेज ट्रांसलेटर सॉफ्टवेयर तीन प्रकार के होते हैं :-
i) असेम्बलर (Assembler)
यहां एक सॉफ्टवेयर प्रोग्राम है जो असेंबली या लो लेवल लैंग्वेज में लिखे प्रोग्राम को मशीन भाषा में परिवर्तित करता है। असेंबलर सॉफ्टवेयर कंप्यूटर निर्माता कंपनियों द्वारा उपलब्ध कराया जाता है और हार्डवेयर प्रोसेसर के प्रकार पर निर्भर करता है। इसलिए हर एक प्रोसेसर का असेंबलर प्रोग्राम अलग अलग हो सकता है। असेंबलर सॉफ्टवेयर, असेंबली भाषा में लिखे प्रोग्राम के सोर्स कोड को मशीन या ऑब्जेक्ट कोड में बदलता है। यह मशीन कोर्ट को एक स्थान पर असेंबल (Assemble) करता है और उसे कंप्यूटर मेमोरी में स्थापित कर क्रियान्वयन के लिए तैयार करता है।
ii) कंपाइलर (Compiler)
यह एक लैंग्वेज ट्रांसलेटर सॉफ्टवेयर है जो हाई लेवल लैंग्वेज में तैयार किए गए प्रोग्राम को मशीनी भाषा में बदलता है। कंपाइलर पूरे प्रोग्राम को एक ही बार में ट्रांसलेट करता है और प्रोग्राम की सभी गलतियों को उनके लाइन के क्रम में एक साथ इनफॉर्म करता है। जब सभी गलतियां दूर हो जाती है तो प्रोग्राम संपादित हो जाता है और मेमोरी में सोर्स प्रोग्राम की कोई जरूरत नहीं होती। प्रत्येक हाई लेवल लैंग्वेज के लिए अलग कंपाइलर सॉफ्टवेयर होता है। कंपाइलर हाई लेवल लैंग्वेज के प्रत्येक निर्देश को मशीन लैंग्वेज के निर्देश में संकलित (Compile) करता है। कंपाइलर पूरे सोर्स प्रोग्राम या सोर्स कोड को ऑब्जेक्ट प्रोग्राम में बदलकर उसे मेमोरी में स्टोर करता है लेकिन उसे Run नहीं करता।
iii) इंटरप्रेटर (Interpreter)
कंपाइलर की तरह इंटरप्रेटर भी एक लैंग्वेज ट्रांसलेटर सॉफ्टवेयर है। इंटरप्रेटर सॉफ्टवेयर हाई लेवल लैंग्वेज में तैयार किए गए प्रोग्राम को मशीन लैंग्वेज में बदलकर उसे रन कराता है। इंटरप्रेटर हाई लेवल लैंग्वेज में तैयार किए गए प्रोग्राम के प्रत्येक लाइन को एक-एक कर मशीन भाषा में परिवर्तित करता है। यह प्रोग्राम की एक लाइन का मशीनी भाषा में अनुवाद कर लेने के पश्चात उसे Run या Execute भी करता है। अगर इस लाइन के Run करने में कोई गलती हो तो उसे उसी समय इंगित करता है और संशोधन के बाद ही अगली लाइन को मशीन भाषा में परिवर्तित करता है। कंपाइलर की तुलना में इंटरप्रेटर सॉफ्टवेयर तैयार करना आसान होता है। क्योंकि इंटरप्रेटर एक एक लाइन कल प्रोग्राम की गलतियों को इंगित करता है और इंटरप्रेटर द्वारा प्रोग्राम में सुधार करना आसान होता है।
>> एप्लीकेशन सॉफ्टवेयर (Application Software)
यह प्रोग्राम ओं का समूह है जो किसी special work के लिए तैयार किए जाते हैं। संस्थान, व्यक्ति या कार्य को देखकर आवश्यकता अनुसार इस सॉफ्टवेयर का विकास किया जाता है। यह सिस्टम सॉफ्टवेयर और यूजर्स के बीच समन्वय स्थापित करता है। एप्लीकेशन सॉफ्टवेयर का विकास किसी विशेष ऑपरेटिंग सिस्टम को ध्यान में रखकर किया जाता है। एप्लीकेशन सॉफ्टवेयर ऑपरेटिंग सिस्टम द्वारा तैयार किए गए पुष्ठभूमी पर ही कार्य कर सकता है। एप्लीकेशन सॉफ्टवेयर के कुछ उदाहरण :- माइक्रोसॉफ्ट ऑफिस, वेब ब्राउज़र, मीडिया प्लेयर, इत्यादि।
>> यूटिलिटी सॉफ्टवेयर (Utility Software)
यह कंप्यूटर के कार्यों को आसान बनाने, उसे वायरस से दूर रखने और सिस्टम के विभिन्न सुरक्षा कार्यों के लिए बनाया गया सॉफ्टवेयर है। इसका उपयोग कई एप्लीकेशन सॉफ्टवेयर में किया जा सकता है। यूटिलिटी सॉफ्टवेयर कंप्यूटर की कार्य क्षमता में वृद्धि करता है। यूटिलिटी सॉफ्टवेयर के कुछ उदाहरण :- एंटीवायरस (Antivirus), बैकअप प्रोग्राम, डिस्क क्लीनअप (Disk Clean Up), डिस्क फॉर्मेटिंग (Disk Formatting), डिस्क फ्रेगमेंटेशन (Disk Fragmentation), फाइल मैनेजर, इत्यादि।