2008-08-23 4 views
21

मैं ऑपरेटिंग सिस्टम आंतरिक के बेहतर ज्ञान प्राप्त करना चाहता हूं। प्रक्रिया प्रबंधन, स्मृति प्रबंधन, और इस तरह की चीजें।
मैं लिनक्स या बीएसडी कर्नेल को जानकर सीखने की सोच रहा था।
सीखने के उद्देश्य के लिए कौन सा कर्नेल बेहतर है?
शुरू करने के लिए सबसे अच्छी जगह क्या है?
क्या आप किसी भी अच्छी किताबों की सिफारिश कर सकते हैं?
लिनक्स या बीएसडी कर्नेल आंतरिक जानने के लिए सबसे अच्छा तरीका क्या है?

उत्तर

12

कॉलेज में, मेरे पास एक ऑपरेटिंग सिस्टम क्लास था जहां हमने book by Tanenbaum का उपयोग किया था। कक्षा में, हमने Minix operating system में एक डिवाइस ड्राइवर लागू किया। यह बहुत मजेदार था, और हमने बहुत कुछ सीखा।

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

एक साइड नोट के रूप में, यदि आपने Just for Fun पढ़ा है, तो लिनक्स वास्तव में लिनक्स लिखने से पहले मिनिक्स के साथ खेल रहा था, लेकिन यह उनके उद्देश्यों के लिए पर्याप्त नहीं था।

5

मैं पहले ही उद्देश्य के लिए सिफारिश पर इन किताबों को खरीदा था, लेकिन मैं उन्हें कभी का अध्ययन करने के लिए मिल गया है अपने आप को इतना ही उन्हें दूसरे हाथ के रूप में लेने सलाह।

7

एक लिनक्स उपयोगकर्ता के रूप में मैं कहूंगा कि लोगों के लिए कर्नेल के बारे में जानने के लिए लिनक्स का एक बड़ा समुदाय है। http://kernelnewbies.org प्रश्न पूछना शुरू करने और कर्नेल कैसे काम करता है इसके बारे में सीखने के लिए एक शानदार जगह है। मैं एक पुस्तक का पुनर्मूल्यांकन नहीं कर सकता, लेकिन एक बार जब आप कर्नेलन्यूब्स पर प्रारंभिक सामग्री पढ़ लेते हैं तो स्रोत बहुत अच्छी तरह से प्रलेखित होता है।

6

पहले से उल्लिखित अच्छी किताबों के अलावा (ओपेटिंग सिस्टम डिज़ाइन & कार्यान्वयन विशेष रूप से अच्छा है), 1.x रिलीज लिनक्स कर्नेल को पकड़ लें, इसे वीएमवेयर या वर्चुअलबॉक्स में लोड करें और वहां से खेलना शुरू करें।

आपको स्रोत कोड ब्राउज़ करने में काफी समय व्यतीत करना होगा। इसके लिए, http://lxr.linux.no/ देखें जो स्रोत का एक ब्राउज़ करने योग्य लिंक संस्करण है और जीवन को बहुत आसान बनाता है। लिनक्स के पहले संस्करण (0.01) के लिए http://lxr.linux.no/linux-old+v0.01/ देखें। मजा http://lxr.linux.no/linux-old+v0.01/boot/boot.s पर शुरू होता है। जैसे-जैसे आप संस्करण से संस्करण में प्रगति करते हैं, चेंजलॉग देखें और उन हिस्सों में खोदें जो आपको बदले में पूरी चीज को दोबारा पढ़ने के लिए बदल गए हैं।

एक बार जब आप अवधारणाओं को पकड़ लेते हैं, तो 2.0, फिर 2.2, आदि देखें। प्रक्रिया में बहुत समय डुबोने के लिए तैयार रहें।

1

जब मैं यूनी में था, मैंने ऑपरेटिंग सिस्टम का अध्ययन करने वाला एक सेमेस्टर बिताया, और इसके हिस्से के रूप में एक असाइनमेंट था जहां हमें लिनक्स में रैम-आधारित फाइल सिस्टम लागू करना पड़ा।

यह लिनक्स केर्नल के आंतरिक लोगों को समझने के लिए एक शानदार तरीका था और यह सब कुछ समझने के लिए कि कैसे सब कुछ एक साथ फिट बैठता है - और मानक संगीत के साथ यह कैसे काम करता है, इस बारे में समझने के लिए बहुत मजेदार है।

1

कोड में डाइविंग के लिए कोई विकल्प नहीं है। उस ड्राइवर या उपप्रणाली को खोजने का प्रयास करें जिसमें आप रुचि रखते हैं और उसके साथ घूमते हैं। VMware Workstation जैसे टूल के साथ आप जो भी परिवर्तन करना चाहते हैं, उसे VM स्नैपशॉट करना और अपने संशोधित कर्नेल को चलाने में बहुत आसान है। यदि बूट पर कर्नेल पैनिक्स, कौन परवाह करता है? बस स्नैपशॉट पर वापस कूदें और समस्या को ठीक करें।

किताबों के लिए, मैं दृढ़ता से Linux Kernel Development रॉबर्ट लव द्वारा अनुशंसा करता हूं। यह एक अद्भुत लिखित पुस्तक है - बहुत सारी जानकारी, सभ्यता से व्यवस्थित, और विनोदी ... बिल्कुल पढ़ना सूखा नहीं है।

0

मैंने इसे स्वयं नहीं किया है, लेकिन आप स्क्रैच से लिनक्स पर जा सकते हैं और अपना खुद का लिनक्स वितरण शुरू कर सकते हैं। कुछ ऐसा लगता है जो समय का जंकलोड लेगा, लेकिन इसके परिणामस्वरूप लिनक्स कर्नेल की गड़बड़ी और प्रत्येक भाग कैसे काम करता है। बेशक, आप यहां किसी भी अन्य युक्तियों का पालन करके इस सीखने को पूरक बना सकते हैं।

+2

LFS आप एक वितरण के निर्माण के एक अंतरंग ज्ञान प्राप्त करने के लिए डिज़ाइन किया गया है, और वास्तव में मदद नहीं करेगा आप कर्नेल को समझने - बस यह कैसे संकलित करने के लिए। – Draemon

4

यहाँ BSDs की कमी पर ध्यान देते हुए मैं सोचा मैं चिप था में:

मैंने अपने पाठ्यक्रमों में से कोई भी नहीं लिया है, लेकिन मैंने सुना है कि मार्शल किर्क मैक्यूसिक अन्य अवसरों पर बात करते हैं, और वह वास्तव में अच्छा करता है कि वह क्या करता है।

और निश्चित रूप से बीएसडी मैन पेज, जो एक उत्कृष्ट संसाधन हैं क्योंकि उन्हें आपके औसत लिनक्स मैन-पेज की तुलना में काफी हद तक बनाए रखा जाता है। उदाहरण के लिए uvm(9) मैन-पेज लें, ओपनबीएसडी में वर्चुअल मेमोरी इंटरफ़ेस का वर्णन करें।

काफी संबंधित नहीं है, लेकिन मैं वीडियो History of the Berkeley Software Distributions की भी सिफारिश करूंगा क्योंकि यह यूनिक्स इतिहास और संस्कृति के बीएसडी भागों के साथ-साथ बहुत से उल्लसित एक्टोड्स के लिए एक अच्छा परिचय देता है।

1

माइक स्टोन की सलाह लें और मिनिक्स के साथ शुरू करें। लिनस ने यही किया! पाठ्यपुस्तक वास्तव में अच्छी तरह से लिखा गया है, और टैननबाम यह दिखाने का एक अच्छा काम करता है कि वास्तविक प्रणाली में विभिन्न सुविधाओं को कैसे लागू किया जाता है।

1

कोई भी ऐसा नहीं लगता है कि कोड-वार बीएसडी बहुत साफ और अधिक सुसंगत है। प्रलेखन का तरीका भी बेहतर है (जैसा कि पहले से ही उल्लेख किया गया है)। लेकिन चूंकि आपके द्वारा चुने गए सिस्टम के साथ पूरी तरह से झुकाव है - मैं उस व्यक्ति को चुनता हूं जिसका आप अक्सर उपयोग करते हैं।

3

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

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

कुछ प्रणालियों का दर्शन होता है "यदि यह काम करता है, तो यह सही है"।कि प्रकाश में NetBSD के दर्शन के रूप में वर्णित किया जा सकता

आप काफी लंबे समय से काम कर रहा है, तो "यह जब तक यह सही है काम नहीं करता है", तुम्हें पता चलेगा कि NetBSD अच्छा कोडन सीखने के लिए एक काफी खुशी है। हालांकि पेशेवर आप लिनक्स

जो भी चुनाव के लिए ले के साथ और अधिक संभावना है कि मिल जाएगा, उनके मेल सूची में शामिल होने से शुरू करते हैं, विचार-विमर्श का पालन करें। कुछ पैच का अध्ययन करें और आखिर में अपनी खुद की बग फिक्सिंग करने का प्रयास करें। किताबों के बारे में, Diomidis Spinellis लेखों और his book के लिए खोजें। यह बिल्कुल एक कर्नेल पुस्तक नहीं है, लेकिन नेटबीएसडी उदाहरण हैं और बड़े सॉफ्टवेयर से निपटने में बहुत मदद करता है।

1

लिनक्स और Minix जानने के लिए मज़ा कर रहे हैं। यदि आप यह भी जानना चाहते हैं कि आधुनिक माइक्रो-कर्नेल ऑपरेटिंग सिस्टम कैसा दिखता है, तो आप क्यूएनएक्स देख सकते हैं। पूरा दस्तावेज ऑनलाइन उपलब्ध है और यह बहुत ही सुलभ है। उदाहरण के लिए, this ऑनलाइन पुस्तक।

संबंधित मुद्दे