Unit III-Software and its Need, and Types

सॉफ्टवेयर Software:-

सॉफ्टवेयर कई कम्प्यूटर प्रोग्रामों से मिल कर बनते है। कम्प्यूटर प्रोग्राम किसी विशिष्ट कार्य करने के लिए बहुत सारे निर्देशों (Set of Instruction)से मिल कर बनते है। इन निर्देशों के द्वारा ही कम्‍प्‍यूटर को जानकारी दी जाती है की दिए गए डाटा को किस प्रकार प्रोसेस करना है।

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

black background with text overlay screengrab
Photo by Pixabay on Pexels.com

सॉफ्टवेयर की आवश्‍यकता Need :-

  1. कम्‍प्‍यूटर को प्रारंभ करने के लिए
  2. पत्र टाइप करने के लिए
  3. चार्ट का निर्माण करने लिए
  4. प्रस्‍तुतीकरण का निर्माण करने के लिए
  5. अपने डाटा का प्रबंधन करने के लिए
  6. इन्‍टरनेट का उपयोग करने के लिए
  7. ऑपरेटिंग सिस्‍टम पर निपुणता से कार्य करने के लिए।

सॉफ्टवेयर के प्रकार  Types :-

  1. . सिस्‍टम सॉफ्टवेयर
  2. एप्‍लीकेशन साफ्टवेयर
  3. यूटिलिटिज सॉफ्टवेयर

1. सिस्‍टम सॉफ्टवेयर System Software:-

एप्लिकेशन सॉफ्टवेयर कम्प्यूटर हार्डवेयर, संसाधनों का प्रबंधन एवं नियंत्रण करता है, जिससे एप्लिकेशन सॉफ्टवेयर के कार्य पूरे हो सके। यह हमारे कम्‍प्‍यूटर सिस्‍टम का एक आवश्‍यक हिस्‍सा होता है।

जैसे- आपरेटिंग सिस्‍टम, डिवाइस ड्राइवर।

2. एप्‍लीकेशन सॉफ्टवेयर :-

एप्‍लीकेशन साफ्टवेयर कंप्यूटर प्रोग्राम होता है। इन्हें उपयोगकर्ता द्वारा कम्प्यूटर से किसी विशेष काम (User Tasks) को पूरा करने के लिए उपयोग किया जाता है। ये सॉफ्टवेयर यूजर तथा कम्‍प्‍यूटर को जोड़ने का कार्य करते है।

यह, सिस्टम सॉफ्टवेयर (जैसे ऑपरेटिंग सिस्टम) के ऊपर चलता है और सीधे उपयोगकर्ता (End User) की जरूरतों को पूरा करता है।

इसे आम लोगों (जैसे छात्र, डॉक्टर, इंजीनियर) के लिए बनाया जाता है। प्रत्येक एप्लीकेशन का एक निश्चित उद्देश्य होता है, जैसे डॉक्यूमेंट बनाना, गेम खेलना या वीडियो एडिटिंग करना। यूजर इसे GUI (ग्राफिकल यूजर इंटरफेस) या कमांड के माध्यम से चलाता है।

उदाहरण – MS Word, Excel, Google Docs, Chrome, Firefox, WhatsApp, Photoshop, Candy Crush

3. ऑपरेटिंग सिस्‍टम सॉफ्टवेयर Operating System:-

ऑपरेटिंग सिस्टम (OS) एक सिस्टम सॉफ्टवेयर है। यह कंप्यूटर हार्डवेयर और उपयोगकर्ता (User) के बीच इंटरफेस का काम करता है। यह कम्‍प्‍यूटर के स्‍टार्ट होने के बाद सबसे पहले लोड होता है। यह कंप्यूटर के सभी संसाधनों (जैसे CPU, मेमोरी, स्टोरेज) को मैनेज करता है। यह बूटिंग प्रोसेस, एप्लीकेशन सॉफ्टवेयर और यूटिलिटिज सॉफ्टवेयर चलाने के लिए आवश्यक होता है।

उदाहरण – Windows (Windows 10, 11), macOS (Apple कंप्यूटर्स के लिए), Linux (Ubuntu, Fedora), Android (स्मार्टफोन्स के लिए), iOS (iPhones के लिए)

आपरेटिंग सिस्‍टम के कार्य:-

  • प्रोसेस मैंनेजमेंट
  • मेमोरी मैंनेजमेंट
  • डिस्‍क और फाइल सिस्‍टम मैंनेजमेंट
  • नेटवर्किंग  
  • सिक्‍योरिटी मैंनेजमेंट
  • डिवाइस ड्राइवर्स

डॉस:-

एम.एस. डॉस का पूरा नाम माइक्रोसाफ्ट डिस्‍क आपरेटिंग सिस्‍टम है। एम.एस. डॉस, ‘सी.यू.आई’ पर आधारित  है। वर्ष 1984 में इनटेल 80286 प्रोसेसर युक्‍त माइक्रो कम्‍प्‍यूटर के लिए इन्हें विकसित किया गया। उस समय इनका वर्जन एम.एस. डॉस 3.0 और एम.एस. डॉस 4.0 था।

  1. एम.एस. डास 16 बिट आपरेटिंग सिस्‍टम है।
  2. उपलब्‍ध स्‍टोरेज स्‍पेस की उच्‍चतम मात्रा 2 जी.बी. होती है।
  3. यह फाइल प्रबंधन को बेहतर बनाने में सहायक है फाइले बनाना, संपादित करना, हटाना आदि।
  4. यह उपयोगकर्ता आपरेटिंग सिस्‍टम है कोई भी उपयोगकर्ता इस आपरेटिंग सिस्‍टम में एक समय पर काम कर सकता है।
  5. टेक्‍सट आधारित इंटरफेस का उपयोगकर्ता है और इसे संचालित करने के लिए टेक्‍सट और कोड की आवश्‍यकता होती है।
  6. डॉस में इनपुट बेसिक सिस्‍टम कमाण्‍डस के माध्‍यम से होता है अर्थात इसे संचालित करने के लिए माउस का उपयोग नही किया जा सकता है।

विण्‍डोज Windows:-

विण्‍डोज Windows माइक्रोसाफ्ट द्वारा विकसित के ‘जी.यू.आई’ (ग्राफिकल यूजर इंटरफेस) आधारित आपरेटिग सिस्‍टम है।

विण्डोज ऑपरेटिंग सिस्टम में आइकन, मीन्‍यू, बटनो इत्यादि को क्लिक करके कम्प्यूटर को निर्देश दिए जाते है। इसके पहले कम्‍प्‍यूटर को दिए जाने वाले निर्देश केवल की-बोर्ड से टाइप करके दिए जाते थे।

इस आपरेटिंग सिस्‍टम का नाम विण्‍डोज इसलिए रखा गया है, क्‍योंकि इसमें प्रत्‍येक साफ्टवेयर, एक आयताकार बाक्‍स, जो खिडकी की चौखट के सामान होता है, के अंदर खुलता है।

विण्‍डोज सबसे पहले डॉस आपरेटिंग सिस्‍टम के अंतर्गत एक साफ्टवेयर के रूप में आया। विण्‍डोज 3.1 पहला संस्‍करण बहुत लोकप्रिय हुआ। इसके बाद सन् 1955 में विण्‍डोज 95 नमक सम्पूर्ण संस्करण आया ,जिसके अब तक विण्‍डोज 95, 98, 2000, एम.ई, विण्‍डोज एक्‍स.पी., विण्‍डोज एन.टी., विण्‍डोज विस्‍टा, विण्‍डोज 7, विण्‍डोज 8, विण्‍डोज 8.1, विण्‍डो 10 आदि अनेक संस्‍करण आ चुके है।

यूटिलिटी सॉफ्टवेयर Utility Software:-

यूटिलिटी सॉफ्टवेयर Utility Softwareएक विशेष प्रकार का सिस्टम सॉफ्टवेयर है। इन्हें कम्‍प्‍यूटर हार्डवेयर, ऑपरेटिंग सिस्‍टम या एप्‍लीकेशन सॉफ्टवेयर को व्‍यवस्थित करने, रखरखाव, सुरक्षा के लिए हेतु डिजाइन किया गया हैं।

ये सॉफ्टवेयर कंप्यूटर के प्रदर्शन को बेहतर बनाने और विभिन्न समस्याओं को हल करने में मदद करते है। ये कम्‍प्‍यूटर को रिपेयर कर कम्‍प्‍यूटर कि कार्यक्षमता को बढ़ाते है तथा उसे और कार्यशील बनाने में मदद करते है।

यूटिलिटी सॉफ्टवेयर के प्रकार:-

  1. डिस्‍क डिफ्रैगमेन्‍टर   2.स्‍कैन डिस्‍क  3. डिस्‍क किलीनअप 4.एन्‍टी वाइरस 5. डिस्‍क चेकर 6. सिस्‍टम प्रोफाइलर्स   7. वाइरस स्‍कैनर

कम्‍प्‍यूटर प्रोग्रामिंग लैग्‍वेज:-

Programming Language – कम्प्यूटर को प्रत्येक कार्य करने के लिए निर्देश देना पड़ता है। ये निर्देश कैसे लिखे जायेंगे जिससे कम्प्यूटर इन्हे समझ सके, इसके लिए विभिन्न भाषा विकसित की गयी है जिन्हें प्रोग्रामिंग भाषा कहते है।

मानवीय भाषा की तरह सभी प्रोग्रामिंग लैग्‍वेज के भी अपने-अपने नियम तथा व्‍याकरण होते है। प्रोग्रामिंग भाषाओं का उपयोग निर्देश देने एवं उनके परिचालन के लिए कम्प्यूटर से संवाद स्‍थापित करने में होता है।

किसी भी प्रोग्रामिंग लैंग्वेज के मुख्य निम्न ३ तत्व होते है:-

सिंटेक्स (Syntax): यह नियमों का वह सेट जो बताता है कि प्रोग्राम को कैसे लिखा जाए

सेमेंटिक्स (Semantics): यह कोड के अर्थ को परिभाषित करता है

कंपाइलर/इंटरप्रेटर: यह मानव-लिखित कोड को मशीन कोड में बदलता है

मशीन भाषा Machine Language:-

कम्‍प्‍यूटर सिस्‍टम सिर्फ अंको के संकेतो को समझता है जो कि केवल बाइनरी (0/1) 0 (OFF) और 1 (ON) के लिए होते है। जिस प्रोग्रामिंग भाषा में निर्देश बाइनरी कोड में लिखे जाते है उन्‍हें मशीनी भाषा कहते है। मशीन भाषा कंप्यूटर की एकमात्र “मूल भाषा” है जिसे सीधे CPU समझ और execute कर सकता है। मशीनी भाषा Machine Language सभी प्रोग्रामिंग भाषाओं का अंतिम रूप होती है।

मशीनी भाषा कम्प्यूटर के समझने के लिए आसान होती है, लेकिन प्रोग्रामर के लिए कठिन होती है। इसमें गलती की संभावनाऍ अधिक होती है। मशीन भाषा प्रत्‍येक कम्‍प्‍यूटर सिस्‍टम पर अलग-अलग कार्य करती है। प्रत्येक प्रोसेसर की अपनी मशीन भाषा होती है इसलिए एक कम्‍प्‍यूटर के मशीन कोड दूसरे कम्‍प्‍यूटर पर नही चलते है।

लाभ :-

  • निर्देश की स्‍टोरेज को आसानी से कंट्रोल कर सकते है।
  •  सभी उच्च-स्तरीय भाषाएँ अंततः इसमें परिवर्तित होती हैं
  • मशनी भाषा में दी गई निर्देश जल्‍दी एग्जिक्‍यूट होती है। बिना ट्रांसलेशन के सीधे एक्जीक्यूट होती है .
  • प्रोसेसर रजिस्टर्स और मेमोरी तक सीधी पहुँच

हानि :-

  1. मशीन भाषा का प्रोग्राम बनाना कठिन होता है।
  2. यह मशीन पर निर्भर है
  3. इसे सही करना कठिन होता है।

असेम्‍बली भाषा Assembly Language:-

असेम्‍बली भाषा Assembly Languageमें निर्देश अंग्रेजी के शब्‍दों के रूप में दिये जाते है जैसे –MOV, ADD, SUB आदि इसे मेमोनिक कोड कहते है। मशीनी भाषा की तुलना में असेम्‍बली भाषा को समझना सरल होता है .

लेकिन जैसा कि हम जानते है कम्‍प्‍यूटर एक इलेक्‍ट्रनिक डिवाइस है और यह सिर्फ बाइनरी कोड को समझता है इसलिए जो प्रोग्राम असेम्‍बली भाषा में लिखा होता है उसे मशीन स्‍तरीय भाषा में ट्रांसलेट करना होता है . जो ट्रांसलेटर असेम्‍बली भाषा को मशीन भाषा में ट्रांसलेट करता है उसे एसेम्ब्लर कहते है।

डाटा को कम्‍प्‍यूटर रजिस्‍ट्रर Register में स्‍टोर किया जाता है और प्रत्‍येक कम्‍प्‍यूटर पर अपना अलग रजिस्‍ट्रर सेट होता है इसलिए असेम्‍बली भाषा में लिखा प्रोग्राम सुविधाजनक नही होता इसका मतलब यह है कि दूसरे कम्‍प्‍यूटर सिस्‍टम के लिए हमें इसे फिर से ट्रांसलेट करना पड़ता है।

लाभ :-

  1. मेमोरी लोकेशन के बारे में जानकारी रखने की आवश्‍यकता नही है।
  2. असेम्‍बली लैग्‍वेज प्रोग्राम को मशीन लैग्‍वेज प्रोग्राम्‍स की तुलना में परिवर्तित करना आसान होता है।
  3. कुछ निर्देश की आवश्‍यकता होती है।

हानि :-

  • यह मशीन पर निर्भर होती है।
  • असेम्‍बली कोड लिखने में समय लगता है।
  • प्रोग्राम में पोर्टेबिलटी की कमी होती है।

उच्‍च स्‍तरीय भाषा (High Level Language):-

हाई-लेवल प्रोग्रामिंग लैंग्वेज High Level Language अंग्रेजी भाषा के समान कीवर्ड्स और सिंटैक्स का उपयोग करती है। यह भाषा अंग्रेजी के भाषा जैसी होती है, इसलिए इसे कोड करना या समझना सरल होता है। इस भाषा के उपयोग से मशीन भाषा की तुलना में प्रोग्रामिंग सरल होती है।

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

       1. तृतीय पीढ़ी भाषा           2. चतुर्थ पीढ़ी भाषा

GenerationLanguagePeriod
1stMachine Language1940 – 1950
2ndAssembly Language1950 – 1958
3rdHigh Level Language1958 – 1985
4th4GLs        1985- onward

चतुर्थ पीढ़ी भाषा (4GL):-

फोर्थ जनरेशन लैंग्वेज (4GL) एक उच्च-स्तरीय प्रोग्रामिंग भाषा है जिसे नॉन-टेक्निकल यूजर्स के लिए डिज़ाइन किया गया है। यह डेटाबेस मैनेजमेंट, रिपोर्ट जनरेशन और एप्लिकेशन डेवलपमेंट जैसे कार्यों को सरल बनाती है।

सामान्‍यत: चतुर्थ पीढ़ी की भाषाओं में विजुअल वातावरण होता है। जबकि तृतीय पीढ़ी की भाषाओं में टेक्‍चुअल वातावरण होता था। टेक्‍चुअल वातावरण में प्रोग्रामर सोर्स कोड को निर्मित करने के लिए अंग्रेजी के शब्‍दो का उपयोग करते है। चतुर्थ पीढ़ी की भाषाओं के एक पंक्ति का कोड तृतीय पीढ़ी के आठ पंक्तियों के कोड बराबर होता है।

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

लाभ :-

  • चतुर्थ पीढ़ी की भाषा को सीखना सरल है तथा इसमें साफ्टवेयर का विकास करना आसान है।
  • चतुर्थ पीढ़ी की भाषाओं में टेक्‍सचुअल इंटरफेस के साथ-साथ ग्राफिकल इटरफेस भी होता है।
  • प्रोग्रामरो के लिए चतुर्थ पीढ़ी की भाषाओं में विकल्‍प उपलब्‍ध रहते है क्‍योंकि इसकी संख्‍या काफी बड़ी होती है।
  • चतुर्थ पीढ़ी की भाषाओं की उपलब्‍धता कठिन नही है।

हानि :-

  • चतुर्थ पीढ़ी की भाषाऐ उच्‍च कन्‍फीग्रेशन के कम्‍प्‍यूटरों पर ही संचालित हो सकता है।
  • इस पीढ़ी की भाषाओं के लिए विशेषज्ञता की कम आवश्‍यकता होती है इसका अर्थ यह है कि प्रोग्रामिंग आसान होने के कारण नौसिखिए भी साफ्टवेयर विकसित करने में सक्षम हो पाते है परिणामस्‍वरूप विशेषज्ञो का महत्‍व कम हो जाता है।
  • इस पीढ़ी में प्रोग्रामिंग भाषाओं की एक बड़ी श्रंखला होती है जिससे यह निर्णय ले पाना कठिन हो जाता है कि इसका प्रयोग किया जाए तथा इसे छोडा जाए।

असेम्‍बलर Assembler:-

Assembler एक प्रोग्राम होता है जो असेम्‍बली लैंग्‍वेज को मशीन लैंग्‍वेज में अनुवाद करता है। इंटरप्रेटर तथा कम्‍पाइलर की तरह हाइ लेवल लैंग्‍वेज को मशीन लैंग्‍वेज में अनुवाद करता है।असेम्‍बलर न्‍यूमोनिक कोड को बाइनरी कोड में बदलता है।

कम्पाइलर Compiler :-

कम्पाइलर Compiler एक्जिक्यूट बनाने के लिए सोर्स कोड को मशीन कोड में परिवर्तित करता है . कम्पामइलर सोर्स कोड को मशीन कोड में बदलने का कार्य करता है। इसकी कार्य करने की गति अधिक होती है। यह मेमोरी में अधि‍क स्‍थान घेरता है . क्योंकि यह एक बार में पूरे प्रोग्राम को रीड करता है और यदि कोई एरर होती है तो एरर मैसेज प्रदर्शित करता है।

इंटरप्रेटर Interpreter:-

Interpreter एक प्रोग्राम होता है जो हाइ लेवल लैंग्वेमज में लिखे प्रोग्राम के एक- एक निर्देश को बारी-बारी से मशीन भाषा में परिवर्तित करके एक्जिक्यूट करता है। यह हाइलेवल भाषा के प्रोग्राम के सभी निर्देशों को एक साथ मशीनी भाषा में परिवर्तित नही करता है।