मुझे इन 2 तथ्यों को समेटने की आवश्यकता है:
- मैं लिनक्स पर काम करने में सहज महसूस नहीं करता;
- मुझे लिनक्स के लिए सॉफ्टवेयर विकसित करने की आवश्यकता है।
कुछ पृष्ठभूमि: मेरे पास विंडोज़ पर 10+ वर्षों का प्रोग्रामिंग अनुभव है (लगभग अनन्य रूप से C / C ++, लेकिन कुछ .NET के साथ भी), मैं लगभग 3 वर्षों तक घर पर FreeBSD का उपयोगकर्ता था (या फिर उसे वापस जाना पड़ा था) विंडोज), और मुझे लिनक्स के साथ कभी भी बहुत भाग्य नहीं मिला है। और अब मुझे लिनक्स के लिए सॉफ्टवेयर विकसित करना है। मुझे एक योजना चाहिए।
विंडोज पर, आप केवल एक प्रोग्रामिंग भाषा, एक एपीआई जिसे आप के खिलाफ कोडिंग कर रहे हैं, अपने IDE (VisualStudio) और समस्या निवारण के लिए कुछ बहुत ही बुनियादी उपकरण (निर्भर करता है, प्रोसेस एक्सप्लेयर, डीबग व्यू, विनडबग) के साथ दूर हो सकते हैं। बाकी सब कुछ स्वाभाविक रूप से आता है।
लिनक्स पर, यह एक बहुत अलग कहानी है। अगर मैं फ़ायरफ़ॉक्स प्लगइन से इसे लिंक करता हूं तो मुझे कैसे पता चलेगा कि DLL (क्षमा करें, साझा वस्तु) लोड होगा? लिनक्स __asm int 3 / DebugBreak () को स्रोत में डालने और प्रोग्राम को चलाने के बराबर है, और फिर OS को डीबगर कहने देता है? क्यों नर्क रिलीज़ कुछ का उपयोग करता है, जिसे ऐप्लाडर कहा जाता है, जबकि डिबग बिल्ड किसी तरह काम करता है? सबसे खराब: लिनक्स विकास पर्यावरण को कैसे व्यवस्थित करें?
इसलिए, इस बात को ध्यान में रखते हुए कि घृणा आमतौर पर पर्याप्त रूप से नहीं जानने के साथ जुड़ी हुई है, आप क्या सलाह देंगे? मैं एमएसीएस और जीसीसी के साथ ठीक हूं। मुझे अपने आप को लिनक्स व्यवस्थापक / उपयोगकर्ता के रूप में शिक्षित करने की आवश्यकता है, और मुझे उचित समस्या निवारण उपकरण (स्ट्रेस कूल, बीडब्ल्यूटी) सीखने की जरूरत है, जो मैंने ऊपर उल्लेख किया है।
क्या मुझे स्क्रैच से लिनक्स करने की आवश्यकता है? या क्या मुझे सिर्फ कुछ किताबें पढ़ने की ज़रूरत है (मैंने स्टीवर्न द्वारा कर्निघन और "एडवांस्ड प्रोग्रामिंग ..." द्वारा "UNIX प्रोग्रामिंग वातावरण" पढ़ा है, लेकिन मुझे कुछ और व्यावहारिक सीखने की ज़रूरत है)? या क्या मुझे अपने घर के कंप्यूटर पर कुछ लिनक्स डिस्ट्रो करने की आवश्यकता है?
man
पर आपका दोस्त है। मैं man nm
और man ld
एक प्रारंभिक बिंदु के रूप में होगा ।