वेबडेव से बैकएंड में स्विच करना काफी निराशाजनक होगा।
सबसे पहले, बोर्ड/हार्डवेयर/आर्किटेक्चर चुनें - शायद एक ओएस सिम्युलेटर के साथ भी जाएं जो आप अपनी मशीन पर चला सकते हैं। सी और कुछ असेंबली (इंटेल, एमआईपीएस, एआरएम, कोल्डफायर/मोटरोला 68k) जानें, इस पर निर्भर करता है कि आप किस सीपीयू आर्किटेक्चर के लिए अपना ओएस बना रहे हैं।
मैंने सी ++ पैकेज देखे हैं जो आपको सी ++ में ओएस बनाने की अनुमति देगा, फिर इसे स्वचालित रूप से आपके लिए असेंबली में परिवर्तित कर दें, लेकिन यह ठीक तरह से परिवर्तित करने के लिए ऐसा सिरदर्द है। मैं उन्हें अनुशंसा नहीं करता।
कोड लिखना शुरू करने से पहले, आपको अपना ओएस डिज़ाइन करना चाहिए। हो सकता है कि कुछ डिज़ाइनों के साथ 50 पेज पेपर में भी अपने डिज़ाइन फैसले रखें।
कुछ बातें सोचने के लिए के बारे में:
- स्मृति नक्शा (जहां वास्तव में स्मृति आप अपने ओएस के कुछ हिस्सों को लोड करते में, जहां यह निवास करेंगे)
- कैसे अपने अनुसूचक काम करेगा (प्रक्रिया और/या धागा जागरूक, प्राथमिकताओं)। शायद विभिन्न प्राथमिकताओं के लिए कतार के साथ एक आरेख; विभिन्न कतारों में प्रक्रिया राज्यों के लिए एक आरेख (तैयार, अवरुद्ध, संदेश के लिए प्रतीक्षा, दौड़ना, निष्पादन, बाधित, इत्यादि)
- इंटरप्रोसेस संचार (मेलबॉक्स, म्यूटेक्स, परमाणुता, सिंक्रोनस बनाम एसिंक्रोनस संचार,
message envelopes {sender process id, receiver process id, message type, message}
का प्रारूप)
- कैसे गिरी उपयोगकर्ता मोड बनाम
- स्मृति आवंटन एल्गोरिदम को संभालने के लिए? -? आप अपने खुद के malloc/मुक्त ऑपरेटर लिखेंगे (कैसे आप ट्रैक रखने के है जब उपयोगकर्ता गतिशील रूप से स्मृति आवंटित करता है आप एक साथी पेड़ algo का उपयोग करेगा लिंक्ड सूची ढेर ? आदि)
- इंटरप्ट्स को कैसे संभालना है (यहां तक कि संदर्भ स्विच भी यहां जाता है - आप सभी रजिस्टरों को कैसे सहेजेंगे और उन्हें पुनर्स्थापित करेंगे: आपके पास एक स्टैक है जिसे आपको ट्रैक रखने की आवश्यकता है की जहां आप इसे पर)
- मानक प्रक्रियाओं हैं: कुंजीपटल प्रक्रिया, उत्पादन, समय, पर नजर रखने के
- समय सेवाओं को जोड़ने का तरीका
- कैसे उपयोगकर्ता प्रक्रियाओं लोड और
- जोड़ने के लिए उन्हें चलाने के पूर्वक्रय करने के लिए या नहीं
- हॉटकी जोड़ें (अपने ओएस esp डीबग करने के लिए उपयोगी। मामले में यह जमा में, आप स्मृति का निरीक्षण करने)
- अपने OS का परीक्षण गर्म कुंजी जोड़ सकते हैं
संपादित करें - यूआरएल अद्यतन अपनी खुद की 32-बिट ऑपरेटिंग सिस्टम का विकास प्रिंट से बाहर है, लेकिन ऑनलाइन उपलब्ध है: http://www.ipdatacorp.com/mmurtl/mmurtlv1.pdf
आप उस बिंदु तक पहुंचने से पहले बहुत सी कोड लिखेंगे, जहां आप वास्तविक कंसोल/"cmd" सॉफ़्टवेयर लिखेंगे। – Joe
नीचे मतदान के लिए धन्यवाद वास्तविक मदद – Kevin
@ जो ओह लेकिन जो, याद रखें, प्रोग्रामर हमेशा सोचते हैं कि वे अधिक सक्षम हैं तो वे हैं। मजेदार समय तब होता है जब एक शौक परियोजना के रूप में जहां आप अपनी कंपनी के लिए समस्याएं नहीं पैदा करते हैं, आप पाते हैं कि आप वास्तव में ऐसा नहीं कर सकते हैं, और समझ सकते हैं कि वास्तव में कुछ प्रोग्राम करने में कितना लगता है। मुझे उन क्षणों से प्यार है। जब मैं वापस आकर प्रोग्रामर के काम की सराहना करता हूं जो मेरे सामने आए थे और मैंने कभी भी बेहतर प्रदर्शन किया था। – Narcolapser