आर्टिकल डाउनलोड करें आर्टिकल डाउनलोड करें

अगर आपको कंप्यूटर प्रोग्रामिंग या कोड (code) करना नहीं आता है, तो ये विकिहाउ गाइड आपको एक ऑपरेटिंग सिस्टम प्लान करना और तैयार करना सिखाएगी। ऑपरेटिंग सिस्टम कंप्यूटर हार्डवेयर को मैनेज करता है और एप्लिकेशन को रन करने के लिए जरूरी रिसोर्सेस भी प्रोवाइड करता है। ऑपरेटिंग सिस्टम को एकदम शुरुआत से लिखने के लिए कंप्यूटर साइंस, C या C++ जैसी एक प्रोग्रामिंग लेंग्वेज और कोड मैनेजमेंट प्रैक्टिस के बारे में अच्छी समझ की जरूरत होगी।

विधि 1
विधि 1 का 2:

बेसिक्स सीखना (Learning the Basics)

आर्टिकल डाउनलोड करें
  1. वेब (web) डेवलप करने के विपरीत, एक ऑपरेटिंग सिस्टम तैयार करने के लिए अल्गोरिदम (algorithms), डेटा स्ट्रक्चर (data structures), कंप्यूटर हार्डवेयर (computer hardware) और रिसोर्स मैनेजमेंट (resource management) के बारे में अच्छी समझ की जरूरत होती है। [१] लोग इन चीजों में डिग्री करते हैं, इसलिए किसी एक ऑनलाइन ट्यूटोरियल को पढ़ने के बाद ऐसी उम्मीद मत लगा लें कि आप एक पूरे ऑपरेटिंग सिस्टम को लिख लेंगे! हार्वर्ड (Harvard) यूनिवर्सिटी का कंप्यूटर साइंस का इंट्रो कोर्स EDX के जरिए ऑनलाइन बिना किसी कीमत पर उपलब्ध है।
  2. C जैसी एक हाइ-लेवल प्रोग्रामिंग लेंग्वेज सीख लें: जैसे ही आपको कंप्यूटर साइंस के फंडामेंटल्स की अच्छी समझ मिल जाती है, फिर C और/या C++ जैसी प्रोग्रामिंग लेंग्वेज सीखना आपका अगला कदम होगा। कंप्यूटर साइंस सीखने की तरह, एक लेंग्वेज को अच्छी तरह से सीखना ऑप्शनल नहीं होता—अगर आप सॉलिड एप्लीकेशन्स नहीं लिख सकते हैं, तो आप एक ऑपरेटिंग सिस्टम कोड नहीं कर पाएंगे।
  3. असेंबली लेंग्वेज ऐसी लो-लेवल लेंग्वेज होती हैं, जिन्हें अलग-अलग प्रोसेसर्स के साथ में कम्युनिकेट करने के लिए डिजाइन किया जाता है। क्योंकि असेंबली अलग-अलग प्रोसेसर टाइप्स (जैसे, Intel के लिए x86 असेंबली लेंग्वेज, AMD, VIA, और दूसरे प्रोसेसर्स) के लिए अलग होती है, आप जिस भी प्रोसेसर के लिए कोडिंग कर रहे हैं, आपको उसी टाइप के वर्जन को सीखना होगा।
    • अगर अच्छी तरह से पढ़ा जाए, तो ये ओपन-सोर्स बुक आपको एक ऑपरेटिंग सिस्टम बनाने के लिए एक अच्छी समझ दे सकती है। [२]
    • द आर्ट ऑफ असेंबली लेंग्वेज (The Art of Assembly Language) को ऑनलाइन और ऑफलाइन दोनों ही तरह की उपलब्ध असेंबली के लिए रिकमेंड किया गया है।
    • आपको उस प्रोसेसर के टाइप के ऊपर भी काफी रिसर्च कर लेना चाहिए, जिसके ऊपर आपका ऑपरेटिंग सिस्टम रन होने वाला है। प्रोसेसर आर्किटेक्चर को आसानी से ("Intel Manuals, " "ARM manuals, " बगैरह) गूगल सर्च से पाया जा सकता है।
  4. OS ट्यूटोरियल्स आपको बेसिक ऑपरेटिंग सिस्टम तैयार करने की प्रोसेस को अच्छी तरह से समझाएगा। ये आपको इस प्रोसेस के साथ बढ़ने की आदत डालने में मदद करेगा और साथ ही बीच में छूट रहे किसी भी पीस को भी पता करने में मदद करेगा। जैसे ही आप एक या दो ट्यूटोरियल को पूरा कर लें, फिर आप आपके अपने ऑपरेटिंग सिस्टम को तैयार करने के लिए आगे बढ़ सकते हैं।
  5. आप आपके ऑपरेटिंग सिस्टम से क्या कराना चाहते हैं? क्या आपको एक पूरे ऑपरेटिंग सिस्टम को लिखने की जरूरत है या फिर आप आपके डेस्कटॉप के लिए एक खास लुक तैयार करना चाहते हैं? कोड लिखना शुरू करने से पहले ध्यान में रखने लायक कुछ बातें हैं। [३]
    • दूसरे प्रोग्रामर्स की टीम के साथ डेवलप करने के बारे में सोचें। किसी प्रोजेक्ट के ऊपर काम करने के लिए डेवलपर की एक टीम बना लेना, इसके डेवलपमेंट टाइम में लगने वाले टाइम को काफी कम कर सकता है।
    • अपने प्रोजेक्ट गोल्स, प्लान और अपने पब्लिक रिपोजिटरी के लिए सवाल एड करें, ताकि दूसरों के लिए आपकी मदद करना आसान बन जाए।
विधि 2
विधि 2 का 2:

अपना ऑपरेटिंग सिस्टम तैयार करना (Building Your Operating System)

आर्टिकल डाउनलोड करें
  1. यही वो प्लेटफॉर्म है, जिसे आप आपके नए ऑपरेटिंग सिस्टम को कोड करने के लिए यूज करेंगे। ये आपकी पर्सनल प्रेफरेंस पर डिपेंड करता है, लेकिन ज़्यादातर लोग या तो विंडोज (Windows) या फिर यूनिक्स (UNIX) के फ्लेवर का यूज करते हैं। अगर आप विंडोज यूज कर रहे हैं, ऐसे में Cygwin या MinGW के जैसे किसी यूनिक्स एनवायरनमेंट को इन्स्टाल करना आपके लिए अच्छा आइडिया रहेगा। आपको आमतौर पर जो भी एनवायरनमेंट यूज कर रहे हैं, उसे सुनिश्चित करना होगा, जिसमें ये नाम भी शामिल हैं:
    • GCC (Gnu कम्पाइलर): अगर आप विंडोज यूज कर रहे हैं, तो आप इसे Cygwin या MinGW में इन्स्टाल कर सकते हैं।
    • Binutils टूल्स का एक कलेक्शन है, जिसे ऑब्जेक्ट फाइल्स को मेनिपुलेट करने के लिए यूज किया जाता है। फिर से, अगर आप विंडोज यूज कर रहे हैं, तो आप इसे Cygwin में इन्स्टाल कर सकते हैं।
    • एक अच्छा टेक्स्ट एडिटर (text editor): Vim और emacs को आमतौर पर UNIX एनवायरनमेंट में यूज किया जाता है। विंडोज यूजर्स Notepad यूज कर सकते हैं या फिर मल्टी-टैब अपग्रेड के लिए Notepad++ भी चेक कर सकते हैं।
    • Perl और/या Python: इनमें से किसी एक या दोनों को ही स्ट्रिंग मेनिपुलेशन (string manipulation) के लिए रिकमेंड किया जाता है।
  2. एक ऑपरेटिंग सिस्टम लिखने का मतलब कि आप कोड की कई सैंकड़ों (या शायद हजारों!) लाइन लिखेंगे। जब आप रिविजन्स के ऊपर काम कर रहे होते हैं, तब आपके लिए ये कन्फ़्यूजिंग लग सकता है। चेक करने लायक कुछ ऑप्शन में CVS , Mercurial और Subversion शामिल हैं।
  3. अगर आप आपके खुद के बूटलोडर को तैयार नहीं करना चाहते हैं, तो आप ग्रैंड यूनिफ़ाइड बूटलोडर (GRUB) के जैसे किसी मौजूदा बूटलोडर का यूज कर सकते हैं। अगर आप बूटलोडर को भी कोड करना चाहते हैं, तो फिर OSDev.org पर रोलिंग योअर ओन बूटलोडर (Rolling Your Own Bootloader) चेक करें।
  4. कर्नेल आपके ऑपरेटिंग सिस्टम का कोर होता है, जो यूजर और हार्डवेयर के बीच में इंटरफेस प्रोवाइड करता है। ये मोनोलिथिक कर्नेल्स (monolithic kernels) और माइक्रो कर्नेल्स (micro kernels) होते हैं। मोनोलिथिक कर्नेल्स, कर्नल की सारी सर्विसेज को इम्प्लीमेंट करते हैं, जबकि माइक्रो कर्नेल्स पर यूजर डेमन्स (user daemons) इंप्लिमेंटिंग सर्विसेज के साथ कम्बाइन होने वाले छोटे कर्नेल्स रहते हैं। आमतौर पर, मोनोलिथिक कर्नेल्स तेज होते हैं, लेकिन माइक्रो कर्नेल्स पर बेहतर फॉल्ट आइसोलेशन और रिलाइबिलिटी होती है।
  5. मेमरी मैनेजमेंट और मल्टीटास्किंग के जैसी बड़ी चीजों पर जाने के पहले छोटी-छोटी चीजों के साथ शुरुआत करें, जैसे कि टेक्स्ट और इंटरप्ट्स डिस्प्ले करना। कुछ बहुत बड़ा करने से पहले आप चाहें तो एक सिम्पल 16-बिट ऑपरेटिंग सिस्टम भी बनाने की कोशिश कर सकते हैं।
    • आप दो हफ्ते में एक पूरा सिस्टम नहीं बना लेंगे। ऐसे OS के साथ शुरू करें, जो बूट (boot) होता है, फिर उसके बाद कुछ बड़ा करने के लिए आगे बढ़ें।
  6. वर्चुअल मशीन के साथ अपने नए ऑपरेटिंग सिस्टम को टेस्ट करें: कोई बदलाव करने पर हर बार अपने कंप्यूटर को रीबूट करने या फिर फाइल्स को आपके डेवलपमेंट कंप्यूटर से आपके टेस्ट मशीन पर ट्रांसफर करने की बजाय एक वर्चुअल एप्लिकेशन ट्राई करके देखें। VMWare एक कॉमन ऑप्शन है, जो विंडोज और लिनक्स दोनों ही के साथ काम करता है और ऐसा ही Bochs के साथ भी है। संभावित डैडलॉक्स और दूसरे बग को चेक करें और जरूरत पड़ने पर उन्हें रिपेयर करें।
  7. आप ऐसा आपके पब्लिक रिपोजिटरी पर आपके टेस्ट किए कोड को अपलोड करके कर सकते हैं। ये लोगों को आपका ऑपरेटिंग सिस्टम टेस्ट करने और उनके सामने आने वाले इशू को रीबूट करने देगा।
  8. दूसरे ऑपरेटिंग सिस्टम डेवलपर्स के साथ नेटवर्क बनाएँ: ऑपरेटिंग सिस्टम डेवलपर की एक बहुत बड़ी कम्यूनिटी मौजूद है, जो Reddit पर /r/osdev और the Software Engineering Stack Exchange पर इकट्ठी होती है। जैसे ही आपको बेसिक ऑपरेटिंग सिस्टम डेवलप करते आ जाए, फिर मौजूदा पोस्ट को पढ़कर पता करें कि डेवलपमेंट प्रोसेस के दौरान आपके सामने क्या-क्या चीजें आने वाली हैं।

सलाह

  • अगर आपके सिस्टम को सक्सेसफुल बनाना चाहते हैं, तो सिक्योरिटी फीचर्स को इम्प्लीमेंट करने को अपनी टॉप प्रायोरिटी बना लें।
  • सारे डेवलपमेंट के पूरे होने के बाद, डिसाइड करें कि आप आपके कोड को ओपन सोर्स पर रिलीज करना चाहते हैं या फिर अपने लिए ही रखना चाहते हैं।
  • OSDev.org फोरम जॉइन न कर लें और वहाँ पर जाने-माने सवाल न पूछें। इसकी वजह से आपको सीधे "Read the Manual" आन्सर मिलेंगे। आपको Wikipedia पढ़कर देखना चाहिए और साथ ही जिन टूल्स को आप यूज करना चाहते हैं, उन्हें भी पढ़कर देखना चाहिए।
  • प्रोग्रामिंग करना सीखने के लिए सीधे ऑपरेटिंग सिस्टम प्रोजेक्ट तैयार करना शुरू न कर दें। अगर आपको C, C++, Pascal, या और कोई दूसरी लेंग्वेज के बारे में समझ नहीं है, जिसमें पॉइंटर मेनिपुलेशन, लो-लेवल मेनिपुलेशन, बिट शिफ्टिंग, इनलाइन असेंबली लेंग्वेज बगैरह भी शामिल हैं, तो आप अभी ऑपरेटिंग सिस्टम डेवलपमेंट के लिए तैयार नहीं हैं।
  • एक ऑपरेटिंग सिस्टम यूजर-फ्रेंडली भी हो सकता है। यूजर फ्रेंडली फीचर्स ही यूज करने की पुष्टि कर लें, इन्हें आपकी डिजाइन का इंटीग्रल पार्ट बना लें।
  • मल्टीपल प्रोसेसर्स को हैंडल करने लायक एक ऑपरेटिंग सिस्टम तैयार करने के लिए, आपके मेमोरी मेनेजर (Memory Manager) पर एक ही टाइम पर एक ही रिसोर्स को कई सारे प्रोसेसर्स से एक्सेस करने से रोकने के लिए एक "लॉकिंग" मेकेनिज़्म रहना चाहिए। इसके लिए यूज होने वाले "लॉक्स" एक समय पर किसी एक प्रोसेसर के द्वारा किसी खास रिसोर्स को एक्सेस करने की पुष्टि के लिए और बाकी को इंतज़ार करके रोकने के लिए एक शेड्यूलर का यूज करेगा। ये शेड्यूलर मेमोरी मेनेजर की प्रजेन्स पर डिपेंड करता है। ये डैडलॉक डिपेंडेंसी (deadlocked dependency) का मामला होता है। इस तरह की मुश्किलों को हल करने का कोई स्टैंडर्ड तरीका नहीं होता है; एक प्रोग्रामर होने के नाते, आपको इन सभी के साथ काम करने के इनके अपने तरीके के साथ अवगत रहना चाहिए।
  • अगर आपको गलत सलाह दी जाए, जैसे रैनडम I/O पोर्ट्स के लिए रैनडम बाइट्स लिखना, तो आप आपके OS को क्रैश कर बैठेंगे और (थ्योरी में) आपके हार्डवेयर को खराब कर सकते हैं।

संबंधित लेखों

अपने सिम कार्ड से अपना मोबाइल नंबर पता करें
उस व्यक्ति को कॉल करें जिसने आपका नंबर ब्लॉक कर दिया है (Call a Person That Has Blocked Your Number)
इंस्टाग्राम पासवर्ड रीसेट करें (Reset Your Instagram Password)
इंस्टाग्राम पर किसी लड़की से बात शुरू करें (Start a Conversation with a Girl on Instagram)
ब्लॉक (block) किए हुये नंबर पर वापस कॉल करें
WhatsApp टिप्स: फेक नंबर से व्हाट्सअप चलायें
फोटो की मदद से किसी की खोज करें (Search and Find About Someone Using Image Easily)
यूट्यूब से गाने डाउनलोड करें (Kaise YouTube se Gaane Download Kare)
PC में हिंदी में टाइप करें (Type in Hindi on a PC)
Pirate Bay से डाउनलोड करें (Download from Pirate Bay)
लड़कियों से ऑनलाइन बातें करें (Talk to Girls Online)
एंड्राइड में सेफ मोड बंद करें
HTML का इस्तेमाल करके एक वेब पेज तैयार करें (Create a Simple Web Page with HTML)
क्रोम पर एडल्ट कॉन्टेंट ब्लॉक करने के 4 आसान तरीके

विकीहाउ के बारे में

सभी लेखकों को यह पृष्ठ बनाने के लिए धन्यवाद दें जो ३,७७७ बार पढ़ा गया है।

यह लेख ने कैसे आपकी मदद की?