2010-05-21 14 views
6

मैं लिनक्स के लिए सिस्टम प्रोग्रामिंग में जाना चाहता था और जानना चाहता था कि उसे कैसे और कहां से शुरू किया जाए। मैं एक वेब विकास पृष्ठभूमि (पायथन, पीएचपी) से आया हूं लेकिन मुझे कुछ सी और सी ++ भी पता है।लिनक्स सिस्टम प्रोग्रामिंग

अनिवार्य रूप से, मैं जानना चाहूंगा:

  1. कौन सी भाषा (ओं) जानने के लिए और आगे बढ़ाने के लिए (मुझे लगता है कि मुख्य रूप से C और C++)?
  2. सिस्टम प्रोग्रामिंग के लिए विशिष्ट भाषाओं को कैसे/कहाँ सीखें? किताबें, वेबसाइटें, ब्लॉग, ट्यूटोरियल इत्यादि
  3. कोई अन्य अच्छी जगह जहां मैं इसे मूल बातें से शुरू कर सकता हूं?
  4. किसी भी अच्छी पुस्तकालय के साथ शुरू करने के लिए?
  5. मुझे किस पर्यावरण सेटअप (या लगभग) की आवश्यकता है? मान लीजिए कि लिनक्स होना चाहिए लेकिन मेरे पास एक लिनक्स बॉक्स है जो मैं शायद ही कभी जीयूआई (हमेशा एसएसएच का उपयोग कर) में लॉग इन करता हूं। क्या जीयूआई बहुत उपयोगी है या छठी संपादक पर्याप्त है? बस स्पष्ट करने के लिए, सिस्टम प्रोग्रामिंग से मैं, डिवाइस ड्राइवर, सिस्टम टूल लेखन जैसी चीजों का मतलब यह देशी अनुप्रयोगों लिखें:

पी एस (करें यदि प्रश्न के इस हिस्से serverfault.com के पास जाना चाहिए मुझे पता है) जो लिनक्स प्लेटफ़ॉर्म पर मौजूद नहीं हैं लेकिन अन्य पर हैं, लिनक्स कर्नेल इत्यादि के साथ खेलें

+0

सामुदायिक विकी ...? – Betamoo

+2

यह apropos है, लेकिन यदि आप वास्तव में भविष्य के साथ बोर्ड पर जाना चाहते हैं, तो जाओ सीखो। –

+0

@ टॉम: क्या मल्टीकोर प्रोग्रामिंग गो के साथ उपलब्ध है? मैं यह भी सोच रहा था क्योंकि ये ऐसे समय हैं जब प्रोसेसर के पास एक से अधिक कोर होते हैं, कोई भी उन लोगों के उपयोग से लाभ उठा सकता है। सही? –

उत्तर

6

यदि आप कर्नेल के साथ खेल रहे हैं, तो आपको सी का उपयोग करना होगा। ऐसी कई किताबें हैं, जैसे आवश्यक लिनक्स डिवाइस ड्राइवर्स, जो आपको देते हैं संरचनाओं की मूल बातें, जहां आपका कोड चलाने के लिए, आदि

आम तौर पर, सी में कई सर्वर लिखे जाते हैं, और कभी-कभी सी ++। लोकप्रिय पुस्तकालयों में ग्लिब, लिबएवेंट, बूस्ट (सी ++ के लिए) शामिल हैं।

आप अपने पसंद के संपादक में कमांड लाइन से सबकुछ कर सकते हैं - यहां कोई स्पष्ट जीत नहीं है, जो आपको पसंद है उसे चुनें।

+0

तो, मूल रूप से ग्रहण जैसे आईडीई की कोई आवश्यकता नहीं है? –

+0

बिलकुल नहीं, अधिकांश कर्नेल डेवलपर्स एक्लिप्स के पास नहीं जाएंगे। एक कर्नेल हैकर से –

+1

+1 जिसे अभी तक एक आईडीई नहीं मिला है जिसे मैं खुद को लड़ नहीं पाया। –

2

वास्तव में लिनक्स सिस्टम प्रोग्रामिंग में शामिल होने के लिए, मैं सी और x86 असेंबली कहता हूं।

अनुप्रयोगों के लिए, लिनक्स असंख्य भाषाओं, पायथन, सी ++, फोर्टन, पर्ल इत्यादि का समर्थन करता है, इसलिए चुनें कि आप किस का उपयोग करना चाहते हैं।

+0

मैं पाइथन के लिए जाऊंगा। –

1

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

+0

मुझे एसएसएच ड्राइव को घुमाने के विचार को पसंद है। –

+0

जब कनेक्शन हिचकी होती है तो 'दिलचस्प' समस्याएं प्रस्तुत करती हैं। मुझे लगता है कि आप एसएसएचएफएस का मतलब है? –

+0

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

3

आपका प्रश्न बहुत व्यापक है। "लिनक्स पर मौजूद मूल अनुप्रयोग" कार्यालय सूट जैसी चीजें शामिल नहीं करते हैं, जिन्हें मैं सिस्टम प्रोग्रामिंग पर विचार नहीं करता हूं। मैं एक समय में एक चीज (डिवाइस ड्राइवर कहें) पर ध्यान केंद्रित करूंगा। इसके बारे में बहुत सारे मौजूदा प्रश्न हैं, जिनमें Linux Programming Book, What IDE would be good for linux kernel driver development, Are there recommended tutorials for writing drivers for Gnu/Linux?, और Ubuntu Linux, what programming languages should I learn? शामिल हैं।

सी 8 9 सीखने के लिए, मैं निश्चित रूप से The C Programming Language (2nd Edition) में पहुंचा दूंगा।

+0

धन्यवाद। पहले से ही उन धागे को तारांकित किया है और मेरे पास कर्निगन और रिची पुस्तक है। इसकी प्यारी, मेरा पहला प्यार। :) –

0

अधिकांश सिस्टम प्रोग्रामिंग सी में किया गया है जैसा कि पहले से ही उल्लेख किया गया है। मानसिकताओं को समझने के लिए आपको कुछ अच्छी किताबें प्राप्त करने की आवश्यकता है, और चीजों को करने के लिए धर्मी यूनिक्स/लिनक्स तरीका एरिक रेमंड द्वारा "यूनिक्स प्रोग्रामिंग की कला" और रिचर्ड स्टीवंस द्वारा "यूनिक्स पर्यावरण में उन्नत प्रोग्रामिंग" होगा।रॉबर्ट लव बुक "लिनक्स सिस्टम प्रोग्रामिंग" के साथ-साथ 'लिनक्स प्रोग्रामिंग इंटरफेस' जैसे बाजार में कुछ नई किताबें हैं, वे अप 2 डेट हैं, हालांकि वे मूल सिद्धांतों और विचारों पर चर्चा नहीं करते हैं जैसे मैंने पहले उल्लेख किया था।

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