ऑपरेटिंग सिस्टम को डिजाइन करने के लिए आपको क्या करना चाहिए। यहां तक कि अगर, उदाहरण के लिए, आप तय करते हैं कि यह एक यूनिक्स-जैसी प्रणाली होनी चाहिए, अभी भी बहुत सारे निर्णय लेने हैं। UNIX आपको कितना पसंद है? UNIX के कौन से भाग आपको पसंद हैं और आपको क्या लगता है कि सुधार की आवश्यकता है?
यदि आप इसके UNIX- जैसे होने पर सेट नहीं हैं, तो आप जवाब देने के लिए और भी अधिक प्रश्नों के साथ समाप्त होते हैं : क्या प्रक्रियाओं को एक पेड़ बनाना चाहिए, या वे "फ्लैट" हैं? आप किस प्रकार की अंतर-प्रक्रिया संचार का समर्थन करना चाहते हैं? क्या आप चाहते हैं कि यह मल्टी-यूजर हो, या सिर्फ मल्टी-टास्किंग (या संभवतः सिंगल-टास्किंग) हो? क्या आप चाहते हैं कि यह एक वास्तविक समय प्रणाली हो? कार्यों के बीच आप किस हद तक अलगाव प्रदान करना चाहते हैं? आप यह कहां चाहते हैं कि यह अखंड बनाम सूक्ष्म-कर्नेल पैमाने पर आए? किस हद तक (यदि कोई है) क्या आप इसे वितरित ऑपरेशन का समर्थन करना चाहते हैं?
मैं आमतौर पर आपकी प्रेरणा के लिए लिनक्स कर्नेल का अध्ययन करने के खिलाफ सलाह दूंगा। यह लिनक्स कर्नेल के खिलाफ कुछ भी नहीं है, लेकिन एक सरल तथ्य यह है कि लिनक्स मुख्य रूप से उत्पादन उपयोग के लिए है, शिक्षा नहीं। इसमें बहुत सारे अनुकूलन, पिछड़े संगतता संगतता हैक आदि हैं, जो उत्पादन के लिए बेहद उपयोगी हैं लेकिन शिक्षित होने की तुलना में विचलित होने की अधिक संभावना है।
यदि आप इसे पा सकते हैं, तो शेर की किताब ( लायंस कमेंटरी ऑन यूनिक्स 6 वें संस्करण की एक प्रति , सोर्स कोड के साथ , जॉन लायंस द्वारा) एक बहुत आसान शुरुआती बिंदु है। 6th संस्करण UNIX अभी भी काफी छोटा और सरल था, जिसे ओवरसिप्लाइफाइड टॉय सिस्टम होने के बिना पढ़ने और समझने में काफी जल्दी थी।
यदि आप x86 (कम से कम प्राथमिक रूप से) को लक्षित करने की योजना बना रहे हैं, तो आप रिचर्ड बर्गेस द्वारा MMURTL V 1.0 को देखना चाह सकते हैं । यह x86 के लिए एक प्रणाली प्रस्तुत करता है जो मूल रूप से इच्छित सीपीयू डिजाइनरों के रूप में x86 हार्डवेयर का उपयोग करता है - कुछ अन्य वास्तविक सिस्टम अन्य सीपीयू के लिए पोर्टेबिलिटी के पक्ष में आगे बढ़ते हैं। जैसा कि आप अनुमान लगा सकते हैं, यह चीजों के हार्डवेयर अंत की ओर बहुत अधिक उन्मुख हो जाता है। मुद्रित प्रतियां महंगी और खोजने में कठिन लगती हैं, लेकिन आप मुफ्त में पाठ और कोड डाउनलोड कर सकते हैं।
सौभाग्य से, उदाहरण के लिए एंड्रयू टेनबाम और अल्बर्ट वुडहुल द्वारा और भी बहुत कुछ संभावनाएं हैं - ऑपरेटिंग सिस्टम डिज़ाइन और कार्यान्वयन ।