मैंने पिछले चार वर्षों में एक एप्लिकेशन डेवलपर (ज्यादातर C) के रूप में * निक्स वातावरण पर काम किया है।
कृपया मेरी * nix internals ज्ञान में सुधार के लिए कुछ पुस्तकें / ब्लॉग आदि का सुझाव दें।
मैंने पिछले चार वर्षों में एक एप्लिकेशन डेवलपर (ज्यादातर C) के रूप में * निक्स वातावरण पर काम किया है।
कृपया मेरी * nix internals ज्ञान में सुधार के लिए कुछ पुस्तकें / ब्लॉग आदि का सुझाव दें।
जवाबों:
पिछली पोस्टों में की गई बारीक सिफारिशों के अलावा, यूनिक्स की "भावना" को समझने के तरीके के बारे में कुछ सुझाव यहां दिए गए हैं:
कार्निघन और पाइक द्वारा "द यूनिक्स प्रोग्रामिंग पर्यावरण": एक पुरानी किताब है, लेकिन यह यूनिक्स पर्यावरण का सार दर्शाता है। यह आपको एक प्रभावी शेल उपयोगकर्ता बनने में भी मदद करेगा।
"यूनिक्स फॉर इम्पाटेंट" यूनिक्स वातावरण को नेविगेट करने के लिए सीखने के लिए एक उपयोगी संसाधन है। मेरे पसंदीदा में से एक।
यदि आप पावर उपयोगकर्ता बनना चाहते हैं, तो ओ'रिली के "यूनिक्स पावर टूल्स" से बेहतर कुछ नहीं है, जिसमें यूनिक्स पेशेवरों के सामूहिक सुझाव और ट्रिक्स शामिल हैं।
एक अन्य पुस्तक जिसे मैंने नहीं देखा है कि एक मजेदार प्रकाश है और शिक्षा पढ़ना "ऑपरेटिंग सिस्टम, डिज़ाइन और कार्यान्वयन" है, एंडी तेनबाम की पुस्तक जिसमें कोड की 12k लाइनों में पूर्ण यूनिक्स ऑपरेटिंग सिस्टम के लिए स्रोत कोड शामिल है।
आप निश्चित रूप से स्टीवंस द्वारा यूनिक्स पर्यावरण में उन्नत प्रोग्रामिंग पढ़ना चाहते हैं । उन्नत शीर्षक को आपको डराने मत दो, यह बहुत पठनीय है।
पुस्तकें / साइट / मैनुअल जो मैं अक्सर उपयोग कर रहा हूं:
लिनक्स कर्नेल : यह पुस्तक टीएलडीपी (लिनक्स डॉक्यूमेंटेशन प्रोजेक्ट) के एक भाग के रूप में ऑनलाइन प्रकाशित की जाती है। यह अप-टू-डेट नहीं है और आंतरिक मैनुअल नहीं है, लेकिन कर्नेल के सिद्धांतों और तंत्र के बारे में उपयोगी जानकारी और परिचयात्मक सामग्री प्रदान करता है।
लिनक्स कर्नेल को समझना: IMHO, यह शुरुआती लोगों के लिए सबसे अच्छी किताब है, जिनके पास ऑपरेटिंग सिस्टम के डिजाइन और अवधारणा के बारे में पृष्ठभूमि है। इसे अप-टू-डेट के रूप में स्वीकार किया जाता है, कर्नेल के संस्करण 2.6 को कवर करता है। वेब पर पुस्तक का एक HTML संस्करण है, लेकिन मुझे लगता है कि यह संभवतः सबसे अधिक वेयर है।
लिनक्स कर्नेल इंटर्नल्स का अध्ययन करते समय, आपको आमतौर पर यह जानने की जरूरत होती है कि हार्डवेयर कैसे काम करता है और हार्डवेयर सार तरीके से क्या प्रदान करता है। इंटेल के पास इसके लिए बहुत अच्छे मैनुअल हैं।
इंटेल 64 और आईए -32 आर्किटेक्चर सॉफ्टवेयर डेवलपर मैनुअल : अप-टू-डेट, विस्तृत जानकारी।
इंटेल 80386 प्रोग्रामर का संदर्भ मैनुअल : मुझे पता है कि यह थोड़ा पुराना है, लेकिन मैंने इस मैनुअल से बहुत सारी चीजें सीखी हैं।
यदि आपको ऑपरेटिंग सिस्टम के डिजाइन और अवधारणा के बारे में अध्ययन करने की आवश्यकता है, तो मैं निम्नलिखित पुस्तक का सुझाव देता हूं: ऑपरेटिंग सिस्टम अवधारणाओं ।
नटशेल में ओरेली लिनक्स कर्नेल
और ओरेली लिनक्स डिवाइस ड्राइवर्स
लिनक्स सिस्टम प्रोग्रामिंग या रॉबर्ट लव द्वारा कोई अन्य पुस्तक (ये सभी ओ'रिली पुस्तकें हैं):
मैं सभी अन्य लोगों से सहमत हूं और मुझे यह कहना है कि स्टीवंस एपीयूई (मेरे पास दूसरा संस्करण है) एक क्लासिक है। मैं यह भी जोड़ना चाहूंगा कि मेरी सूची में एरिक रेमंड की द आर्ट ऑफ यूनिक्स प्रोग्रामिंग रैंकिंग वहीं स्टीवंस के साथ है।
खैर, BSD यूनियनों के लिए, 4.4BSD ऑपरेटिंग सिस्टम का डिज़ाइन और कार्यान्वयन है, जिसके कुछ हिस्से अब http://www.freebsd.org/doc/en/books/design-44bsd/ पर मुफ्त में उपलब्ध हैं ।
लिनक्स डिवाइस ड्राइवर्स एक और अच्छा संसाधन है। यह आपको आंतरिक कामकाज में शामिल होने का एक और तरीका देगा। प्रस्तावना से:
यह सतह पर, लिनक्स सिस्टम के लिए डिवाइस ड्राइवर लिखने के बारे में एक किताब है। यह एक योग्य लक्ष्य है, निश्चित रूप से; नए हार्डवेयर उत्पादों का प्रवाह जल्द ही कभी भी धीमा होने की संभावना नहीं है, और किसी को उन सभी नए गैजेट्स को लिनक्स के साथ काम करना होगा। लेकिन यह पुस्तक इस बारे में भी है कि लिनक्स कर्नेल कैसे काम करता है और अपनी जरूरतों या रुचियों के लिए अपने कामकाज को कैसे अनुकूलित करता है। लिनक्स एक खुली प्रणाली है; इस पुस्तक के साथ, हम आशा करते हैं, यह डेवलपर्स के एक बड़े समुदाय के लिए अधिक खुला और सुलभ है।
कर्नेल को समर्थन देने के लिए क्यों और क्या का अर्थ है, यह जानने के लिए, एरिक रेमंड द्वारा द आर्ट ऑफ यूनिक्स प्रोग्रामिंग पर एक नज़र डालें । यह चीजों को काफी उच्च, दार्शनिक स्तर पर ले जाता है, लेकिन यह अन्य पुस्तकों के नॉटी-ग्रिट्टी विवरण के साथ अच्छी तरह से जाना जाएगा।
मैं निम्नलिखित दो पुस्तकों के साथ-साथ (अन्य के अलावा) सुझाव दे सकता हूं:
मैंने पहले एक को बड़े पैमाने पर संदर्भित किया है (यदि मेरे पास बेहतर मेमोरी थी, और मेरे पास अधिक समय था, तो मुझे अब और भी बहुत कुछ पता होगा, लेकिन यह एक और कहानी है)। मैं वर्तमान में दूसरा पढ़ रहा हूं।