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

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

सॉफ्टवेयर क्या होता है ?

सॉफ्टवेयर किसी कार्य को अंजाम देने के लिए बनाया गया एक प्रोग्राम होता है जिसमे उस कार्य को हार्डवेयर लेवल पर पूरा करने के निर्देश का सेट होता है । इन निर्देशों को इन्स्ट्रक्शन सेट (Instruction Set) कहा जाता है । यह बिल्कुल उसी तरह है जैसे हम किसी नवसीखिए को दिशा निर्देश देते है । जैसे सीधे जाओ, फिर दाए मुड़ो , स्टेशन आने तक चलते रहो और १.३० की ट्रेन मे बैठ जाओ इत्यादि । कोई भी सॉफ्टवेयर पहले हाई लेवल प्रोग्रामिंग मे लिखा जाता है फिर उसे कम्पाइल कर मशीन लैंग्वेज मे कन्वर्ट किया जाता है ।

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

सॉफ्टवेयर मुख्यता दो तरह के होते है ,

  1. एप्लीकेशन सॉफ्टवेयर : यह वही सॉफ्टवेयर होते है जिन्हे हम स्क्रीनपर इस्तेमाल करते है और यह फ्रन्ट एंड यानि सामनेसे हमसे इनरैक्ट करते है तो बैक एंड मे सिस्टम से या सिस्टम सॉफ्टवेयर से। जैसे एम एस ऑफिस , पेन्ट इत्यादि
  2. सिस्टम सॉफ्टवेयर : सिस्टम सॉफ़्टवेयर को कंप्यूटर के हार्डवेयर को चलाने के लिए डिज़ाइन किया गया है और अनुप्रयोगों को फ्रन्ट एंड पर चलाने के लिए एक मंच प्रदान करता है। जैसे विंडोज़ सॉफ्टवेयर , लिनक्स और एंड्रॉयड

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

पुराने जमाने मे कम्पाइलर, लिंकर और असेम्ब्लर टूल इस्तेमाल कर सॉफ्टवेयर प्रोग्राम बनाए जाते थे । आजकल बहुत ही उन्नत किस्म के सॉफ्टवेयर डिवेलपमेंट टूल इस्तेमाल कर काम वक्त मे अच्छे क्वालिटी के सॉफ्टवेयर प्रोग्राम बनाए जाते है । अलग अलग प्रोग्रामिंग लैंग्वेज और प्लेटफॉर्म के लिए विभिन्न प्रकार के टूल्स आते है । जैसे की Android SDK, Visual Studio इत्यादि

सॉफ्टवेयर उत्पादन को अच्छे से समझने के लिए हम एक छोटा सा उदाहरण देखेंगे । उदाहरण के तौर पर , स्क्रीन पर ” Hello World ” प्रिन्ट करने के लिए हाई लेवल लैंग्वेज C-programming का इस्तेमाल कर हमे एक कोड लिखना होगा , वह कुछ इस तरह दिखाई देगा

#include <stdio.h>
int main() {
   printf("Hello, World!");
   return 0;
}

फिर इसे कम्पाइल किया जाता है , कम्पाइल करने के दौरान इसके एरर को चेक कर दूर किया जाता है । बिना एरर को दूर किए कोई प्रोग्राम कम्पाइल नहीं होता । कम्पाइल करने के दौरान कम्पाइलर लिंकिंग और असेंबली का काम करता है । जरूरी डाटा रिसोर्सेज को जोड़ने को लिंकिंग और कोड को इन्स्ट्रक्शन सेट मे बदलने को असेंबली कहते है ।

कम्पाइल होनेपर c language का कम्पाइलर मशीन इन्स्ट्रक्शन वाली .exe एक्स्टेन्शन वाली फाइल बनाता है । इस फाइल मे “Hello World” प्रिन्ट करने वाले मशीन इन्स्ट्रक्शन होते है ।


जो बाइनरी व्यूअर प्रोग्राम मे खोलकर देखने पर कुछ इस तरह दिखाई देते है ,

image 1
हेलो वर्ल्ड प्रोग्राम का बाइनरी कोड

इस स्क्रीनशॉट मे आप देख सकते है की यह डाटा इंसानों के समझ से परे है । हम बस इतना समझ सकते है के इस डाटा मे हर एक इन्स्ट्रक्शन का एक अड्रेस होता है जो hexadecimal नंबर सिस्टम मे लिखा हुआ होता है । और हर अड्रेस के आगे बाइट कोड होता है ।

यह इन्स्ट्रक्शन हार्डवेयर को समझ मे आने वाले भाषा मे कन्वर्ट किए हुए होते है । अकसरियत मे यह बाइनरी (०-१ ) के भाषा मे होते है । ऊपर से देखनेपर हम इंसान इसे समझ नहीं सकते । लेकिन हार्डवेयर चिप जैसे की कंप्युटर का माइक्रोप्रोसेसर इसे बेहद तेजी से पढ़ , समझ और एक्सक्यूट कर सकता है । यह स्पीड इतना ज्यादा होता है के इन्हे फ्रीक्वन्सी मे गिनना पड़ता है । इसी लिए जितना ज्यादा हर्ट्ज (Hz) का प्रोसेसर होगा उतना तेजीसे वह इन इन्स्ट्रक्शन को एक्सक्यूट कर सकता है ।

जब मशीन या प्रोसेसर इसे execute करना शुरू करता है तो execution सबसे ऊपर यानि शुरू के इन्स्ट्रक्शन से शुरू होता है । फिर वह काउंसे इन्स्ट्रक्शन पर जाएगा या जम्प करेगा यह इनपुट डाटा और logical condition पर आधारित होता है । इसीतरह बड़े-बड़े प्रोग्राम लाखों करोड़ों लाइन के इन्स्ट्रक्शन से भरे होते है । और अपने पूरे लाइफ साइकिल मे वह इन्ही instractions मे घूमता रहता है और इसी दौरान डाटा प्रोसेस और आउटपुट कर वह यूजर का काम फ्रन्ट एंड पर कर देता है । जैसे की hello-world.exe एक्सक्यूट करने पर वह कुछ इस तरह आउटपुट देगी ।

हैलो वर्ल्ड प्रोग्राम का आउट्पुट

सॉफ्टवेयर कैसे काम करता है ?| Software kaise kaam karta hai

सॉफ्टवेयर को एक्सक्यूट करने के लिए सबसे पहले उसे पर्मनन्ट मेमोरी जैसे हार्ड ड्राइव मे लोड करना पड़ता है । ऑपरेटिंग सिस्टम के मदद से यूजर उसका एक्सक्यूशन शुरू करता है । अब यहा कम्पाइलर द्वारा बनाए गए एक्सिक्युटेबल फाइल मे मौजूद इन्स्ट्रक्शन सेट को ऑपरेटिंग सिस्टम द्वारा रैम (RAM) के अंदर लोड कर लिया जाता है ।

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

सॉफ्टवेयर कैसे काम करता है
सॉफ्टवेयर कैसे काम करता है

प्रोसेसर कैशै मे मौजूद इन्स्ट्रक्शन सेट को एक एक कर के बहुत ही तेजी के साथ एक्सक्यूट किया जाता है । और आउट्पुट को उसी प्रोग्राम मे पहलेसे निर्देशित अड्रेस पर लोड कर दिया जाता है । यह अड्रेस रैम और हार्ड ड्राइव लोकैशन का हो सकता है । इसी दौरान जरूरत पड़ने पर सभी जरूरी अरिथमेटिक, लाजिकल और बूलियन इटीसदी ऑपरेशन प्रोसेसर मे डाटा के ऊपर किए जाते है । जरूरत पड़नेपर हार्डवेयर इनपुट भी लिया जाता है । और प्रोसेस पूरा होनेपर डाटा किसी माध्यम जैसे स्क्रीन के आउट्पुट कर दिया जाता है ।

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

शायद आपको भी ये अच्छा लगे
टिप्पणी छोड़ें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा।