विंडोज से लिनक्स पर जा रहा है [बंद]


57

मुझे इन 2 तथ्यों को समेटने की आवश्यकता है:

  1. मैं लिनक्स पर काम करने में सहज महसूस नहीं करता;
  2. मुझे लिनक्स के लिए सॉफ्टवेयर विकसित करने की आवश्यकता है।

कुछ पृष्ठभूमि: मेरे पास विंडोज़ पर 10+ वर्षों का प्रोग्रामिंग अनुभव है (लगभग अनन्य रूप से C / C ++, लेकिन कुछ .NET के साथ भी), मैं लगभग 3 वर्षों तक घर पर FreeBSD का उपयोगकर्ता था (या फिर उसे वापस जाना पड़ा था) विंडोज), और मुझे लिनक्स के साथ कभी भी बहुत भाग्य नहीं मिला है। और अब मुझे लिनक्स के लिए सॉफ्टवेयर विकसित करना है। मुझे एक योजना चाहिए।

विंडोज पर, आप केवल एक प्रोग्रामिंग भाषा, एक एपीआई जिसे आप के खिलाफ कोडिंग कर रहे हैं, अपने IDE (VisualStudio) और समस्या निवारण के लिए कुछ बहुत ही बुनियादी उपकरण (निर्भर करता है, प्रोसेस एक्सप्लेयर, डीबग व्यू, विनडबग) के साथ दूर हो सकते हैं। बाकी सब कुछ स्वाभाविक रूप से आता है।

लिनक्स पर, यह एक बहुत अलग कहानी है। अगर मैं फ़ायरफ़ॉक्स प्लगइन से इसे लिंक करता हूं तो मुझे कैसे पता चलेगा कि DLL (क्षमा करें, साझा वस्तु) लोड होगा? लिनक्स __asm ​​int 3 / DebugBreak () को स्रोत में डालने और प्रोग्राम को चलाने के बराबर है, और फिर OS को डीबगर कहने देता है? क्यों नर्क रिलीज़ कुछ का उपयोग करता है, जिसे ऐप्लाडर कहा जाता है, जबकि डिबग बिल्ड किसी तरह काम करता है? सबसे खराब: लिनक्स विकास पर्यावरण को कैसे व्यवस्थित करें?

इसलिए, इस बात को ध्यान में रखते हुए कि घृणा आमतौर पर पर्याप्त रूप से नहीं जानने के साथ जुड़ी हुई है, आप क्या सलाह देंगे? मैं एमएसीएस और जीसीसी के साथ ठीक हूं। मुझे अपने आप को लिनक्स व्यवस्थापक / उपयोगकर्ता के रूप में शिक्षित करने की आवश्यकता है, और मुझे उचित समस्या निवारण उपकरण (स्ट्रेस कूल, बीडब्ल्यूटी) सीखने की जरूरत है, जो मैंने ऊपर उल्लेख किया है।

क्या मुझे स्क्रैच से लिनक्स करने की आवश्यकता है? या क्या मुझे सिर्फ कुछ किताबें पढ़ने की ज़रूरत है (मैंने स्टीवर्न द्वारा कर्निघन और "एडवांस्ड प्रोग्रामिंग ..." द्वारा "UNIX प्रोग्रामिंग वातावरण" पढ़ा है, लेकिन मुझे कुछ और व्यावहारिक सीखने की ज़रूरत है)? या क्या मुझे अपने घर के कंप्यूटर पर कुछ लिनक्स डिस्ट्रो करने की आवश्यकता है?


73
मैं विंडोज के बारे में ऐसा ही महसूस करता हूं

15
माना जाता है कि एक और नौकरी पाने से आप अधिक सहज हैं?

3
यूनिटीज़ manपर आपका दोस्त है। मैं man nmऔर man ldएक प्रारंभिक बिंदु के रूप में होगा ।
आहारबोध

1
विंडोज़ का उपयोग करना शुरू करें;)
जिगर जोशी

1
"बाकी सब स्वाभाविक रूप से आता है"? बेशक यह स्वाभाविक रूप से आता है, आप इसे 10 साल से कर रहे हैं। लिनक्स बदतर नहीं है, यह अलग है । और अब जब आप 10 वर्ष के हो गए हैं, तो आपका मस्तिष्क नई चीजों को उतना आसान नहीं सीख पाता, जितना कि वह आसानी से सीख लेता है और वे सभी चीजें जो अलग-अलग हो जाती हैं, जिन्हें आपको अनलॉर्न करना पड़ता है। "लिनक्स बेकार" के साथ पूरी बात को स्वीकार करना आपके जीवन को दुखी करने वाला है।
जेसपर

जवाबों:


62

आपको लिनक्स और विंडोज में आर्टिकल डायनेमिक लिंकिंग दिलचस्प लग सकता है जो बताता है कि प्रत्येक ओएस डायनेमिक लिंकिंग कैसे करता है। साझा लाइब्रेरी खोज पथ लेख में बताया गया है कि पुस्तकालय कैसे पाए जाते हैं। साथ ही स्टैटिक, शेयर्ड डायनामिक और लोडेबल लिनक्स लाइब्रेरी बहुत अच्छी है। लिनक्स पुस्तकालयों के बारे में एक अच्छी बात यह है कि उन्हें विंडोज़ (AFAIK, I do do Windows) की तुलना में लाइब्रेरी के कई संस्करणों को संस्करण देने और रखने के लिए बेहतर समर्थन प्राप्त है। इसके लिए Solaris और Linux में लाइब्रेरी इंटरफ़ेस संस्करण देखें । ये लेख वास्तव में आपको पुस्तकालयों से ढंकना चाहिए।

GDB बहुत शक्तिशाली है, एक अच्छा परिचय शायद RMS का gdb ट्यूटोरियल है । आप सशर्त विराम बिंदुओं पर पढ़ना चाह सकते हैं। समकक्षों के लिए __asm(int 3)प्रश्न को देखने के लिए C या C ++ कोड में ब्रेकपॉइंट प्रोग्रामेटिक रूप से लिनक्स पर gdb के लिए सेट करें

मार्क रोचाइंड की पुस्तक एडवांस्ड यूनिक्स प्रोग्रामिंग एक मस्ट-रीड, आईएमएचओ है। बहुत सारे उदाहरण हैं और सभी POSIX / SUS विषयों को बहुत अच्छी तरह से समझाया गया है। यह इस विषय के बारे में सबसे अच्छी पुस्तक है जिसे मैंने अब तक पढ़ा है।

लेकिन आपके जीवन को आसान बनाने के लिए, मैं वास्तव में एक हाईलेवल एपीआई का उपयोग करने की सलाह देता हूं जो आपके लिए क्यूटी की तरह सामान का सार करता है। साथ ही क्रॉस-प्लेटफॉर्म को लिखना काफी आसान हो जाता है।

लिनक्स को स्क्रैच से करने से आपको यह समझने में मदद मिलती है कि लिनक्स सिस्टम कैसे बना है, लेकिन मुझे लगता है कि यह डेवलपर्स के दृष्टिकोण से इसके बारे में आपके ज्ञान में बहुत सुधार नहीं करता है। यह आपको लिनक्स के साथ अधिक आरामदायक बनाता है, हालांकि, जैसा कि आप सीखते हैं कि लिनक्स वातावरण में कौन से हिस्से हैं (और आंशिक रूप से भी क्यों )। लिनक्स स्क्रैच से लिनक्स के माध्यम से काम करने के बाद एक लिनक्स आपके लिए एक बड़ा ब्लैकबॉक्स नहीं होगा।


यकीन है, 32 बिट सिस्टम पर यह रुकावट डिबगर में टूट जाएगी, अगर प्रक्रिया पहले से ही डिबग हो रही है । अगर मैं इसके बारे में पूछ रहा हूँ। जाल के बाद विंडोज डिबगर संलग्न करने की अनुमति देता है । कुछ परिदृश्यों के तहत, यह बेहद सुविधाजनक है। और लिंक के लिए धन्यवाद!
rincewind

6
बहुत बढ़िया जवाब! ध्यान दें, जीडीबी ट्यूटोरियल के लिए, आरएमएस "रयान एम। श्मिट" नहीं "रिचर्ड एम। स्टालमैन" है। (
स्टालमैन के

विंडोज के पास साइड-बाय-साइड ( msdn.microsoft.com/en-us/library/ms229072(v=vs.80).aspx ) लाइब्रेरी लोडिंग लगभग 12 वर्षों से समर्थित है। इसलिए आप वर्जनिंग के संबंध में गलत हैं।
क्लॉस जोर्जेंसन

16

यदि आप चाहें strace, तो मत भूलो ltrace: लाइब्रेरी कॉल के लिए बराबर।
इसके अलावा, हाँ, मैं स्क्रैच से लिनक्स की सलाह देता हूं । यह ओएस के मुख्य तत्वों को काम करने में एक अच्छा व्यायाम है और वे एक साथ कैसे फिट होते हैं।
एक आधुनिक, संपूर्ण सिस्टम प्रोग्रामिंग संदर्भ उपचार के लिए, मैं लिनक्स प्रोग्रामिंग इंटरफ़ेस चुनने की सलाह दूंगा ।


12

मैक ओएस एक्स एक मर्सिडीज की तरह है; यह सबसे सुंदर और साफ है लेकिन इसमें बहुत खर्च होता है। विंडोज़ एक टोयोटा की तरह है; यह तुम्हें वहाँ और वापस मिल जाएगा।

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

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

लिनक्स को एक नए खिलौने के रूप में लेने की कोशिश करें, जिसे आप खेल सकते हैं और क्रॉल कर सकते हैं और देख सकते हैं कि क्या चल रहा है। विंडोज में आसान चीजें लिनक्स में कठिन हैं; विंडोज में असंभव चीजें लिनक्स में संभव हैं।

यदि आप कंप्यूटर से प्यार करते हैं तो आप लिनक्स से प्यार कर सकते हैं; अगर आपको कंप्यूटर पसंद नहीं है तो आप प्रोग्रामिंग क्यों कर रहे हैं?


13
+1, " विंडोज में आसान चीजें लिनक्स में कठिन हैं, विंडोज में असंभव चीजें लिनक्स में संभव हैं "। मैं जोड़ता हूँ " जबकि Windows आपके मुंह में पहले से पचने वाले भोजन को धकेलता है, लिनक्स के साथ आपको खाना बनाने की संभावना होती है और इसके लिए इनाम यह है कि आपको जो पसंद है वह खाने को मिलता है " ... बेशक, यह खाद्य है या नहीं आप कितने अच्छे शेफ हैं, इस पर बहुत कुछ निर्भर करता है ...
Alain Pannetier

14
@Andy: "विंडोज़ एक टोयोटा की तरह है" । टोयोटा में विंडोज की तुलना में बेहतर गुणवत्ता है।
मोनिका

4
@ एसके-तर्क, ठीक है। एक और धार्मिक युद्ध में शामिल हुए बिना, निम्नलिखित पर विचार करें। केवल सामरिक और वित्तीय कारणों से, एमएस संभव सबसे बड़े दर्शकों को लक्षित करता है। तकनीकी चीजें जिन्हें कंप्यूटर के बारे में पता है, वे उपयोगकर्ता को नियंत्रित करने में सक्षम होना चाहते हैं, उन्हें दृष्टि से दूर दफन किया जाता है ताकि जोन्स समस्याओं में न चलें। आप डीईपी, जीपीओ, "ट्रस्टेड इंस्टॉलर", निजी या छिपे हुए एपीआई, "सेल्फ रिपेयरिंग बूट" आदि हर जगह लाल टेप के साथ समाप्त होते हैं। गीक्स विंडोज को ठीक नहीं करते हैं, वे बस बाहर निकलते हैं। लिनक्स में समान हेग्मोनिक गोल नहीं है; यह उपयोगकर्ताओं द्वारा उपयोगकर्ताओं के लिए किया जाता है। यह पूरी बात है।
एलेन पैननेटियर

3
@ एसके-तर्क - "अगर आपको विंडोज स्रोत मिल गए हैं" ... :-)
रोरी अलसॉप

3
"कुछ चीजों को नाम देना जो कि" विंडोज में असंभव हैं "और" लिनक्स में संभव हैं "- मुझे लिनक्स सिस्टम स्क्रिप्ट में एक बग मिला और इसे ठीक किया। मैंने विंडोज में बग ढूंढे हैं लेकिन उन्हें ठीक करने में कभी सक्षम नहीं हुआ। मान लीजिए कि आप डिस्क फ़ाइल में एक आईएसओ (सीडी) छवि है; मैं इसे लिनक्स में एक ड्राइव के रूप में माउंट कर सकता हूं; क्या आप विंडोज में ऐसा कर सकते हैं? और याद रखें कि लिनक्स में लगभग सब कुछ मुफ्त है, और विंडोज में लगभग हर चीज के लिए एक महंगे मालिकाना आवेदन की आवश्यकता होती है।
एंडी कैनफील्ड

9

आपके बारे में मोनोडेवलप के साथ मोनो पर कैसे विकसित होते हैं? यह आपके द्वारा .NET में अपने अनुभव को फिर से उपयोग करके बहुत आसानी से शुरू हो जाएगा।


मैंने हाल ही में यह कोशिश की - विज़ुअल स्टूडियो के कुछ अंतर, निश्चित रूप से, लेकिन मैं एक शाम में ऊपर और चल रहा था। यह एक महान प्रवासन मार्ग है।
JBRWilkinson

8

यह कठिन है जब आप इसे शुरू से देखते हैं (जैसे कि यदि आप एक लिनक्स डेवलपर थे जो कुछ विंडोज विकास करने का काम सौंपा गया था)। मैं एक बार में इस एक समस्या से निपटूंगा।

  • पहले अपना पर्यावरण सेटअप प्राप्त करें (संकलक, आईडीई - हाँ वे मौजूद हैं, नेटबीन्स / ग्रहण आदि)
  • अगला उच्च स्तरीय एपिस स्थापित करें (बूस्ट / क्यूटी आदि)
  • धीरे-धीरे शुरू करें, अगर हल करने के लिए तत्काल समस्या है, तो कोड संकलन करें (या स्क्रैच आदि से लिखना शुरू करें) जैसे कि आप किसी भी विकास परियोजना से निपटेंगे, पहले से काम कर रहे सामान को प्राप्त करें (यानी ऐसी चीजें जिन्हें ओएस की आवश्यकता नहीं है बातचीत), और फिर जब आप एक रोड़ा मारा - खोज, मुझे यकीन है कि किसी को वहाँ पहले से ही एक समस्या है और इसे हल कर दिया है ..

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


1
+1 निम: StackExchange के पास पूर्व सूचना की भयानक मात्रा है। मैं यूनिक्स के स्वादों में सबसे अधिक आरामदायक हूं, लेकिन वर्तमान में विंडोज के विकास के माहौल में काम कर रहा हूं और एसई की खोज ने मेरे सभी प्रश्नों का उत्तर बहुत कम समय में दे दिया है।
रोरी अलसॉप

6

The success or failure of many thing in life comes down to our attitude, looking for positives and keeping your mind focused on the positives will do more to adide you as you start down this new interesting adventure.

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

अनुप्रयोग की सूची के साथ शुरू करें जिसे आप खिड़कियों में नहीं रह सकते हैं और * निक्स दुनिया में विकल्प तलाश सकते हैं। http://alternativeto.net/ और विकिपीडिया आगे पढ़ने वाले अनुभाग यहाँ सहायक हो सकते हैं।

यहां वैकल्पिक सॉफ्टवेयर की एक सूची दी गई है जो बहुत उपयोगी साबित हो सकती है। यहां आपके द्वारा बताई गई चीजों के कुछ विकल्प दिए गए हैं।

एक प्रणाली से दूसरे में जाने में अन्य उपयोगी संसाधन

बेहतर पावर उपयोगकर्ता या व्यवस्थापक उपयोगकर्ता बनने के बारे में इन संसाधनों पर एक नज़र है

यह भी लगता है जैसे आप * निक्स दुनिया को देखा है यह एक समय हो गया है। मैं फेडोरा , स्यूस , डेबियन या मेरे पसंदीदा काम स्टेशन उबंटू से कुछ नए डिस्ट्रोस रिलीज की सिफारिश करूंगा ।

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

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


1
डेबियन बिल्कुल नया डिस्ट्रो नहीं है। :-P यह अभी भी एक अच्छा विकल्प है।
स्टीव एस

न तो SuSE और Fedora हैं ... SuSE अभी 15 साल का है, Fedora वास्तव में 8 साल का होने वाला "युवा" डिस्ट्रोस में से एक है। फिर भी, +1।
डार्कडस्ट

1
@Darkdust @ स्टीव-एस नवीनतम रिलीज के रूप में,
9

6

मुझे लगता है कि आपने प्रश्न में अपने प्रश्न का उत्तर दिया:

"विंडोज पर, आप सिर्फ एक प्रोग्रामिंग भाषा, एक एपीआई जिसे आप के खिलाफ कोडिंग कर रहे हैं, अपने IDE (VisualStudio) और समस्या निवारण के लिए कुछ बहुत ही बुनियादी उपकरण (निर्भर करता है, प्रोसेस एक्सप्लेयर, डीबगव्यू, विनडबग) के साथ दूर हो सकते हैं। बाकी सब स्वाभाविक रूप से आता है। "

क्या लगता है, लिनक्स पर आप सिर्फ एक प्रोग्रामिंग भाषा, एक एपीआई (या एक जोड़ी), अपनी आईडीई (ग्रहण या नेटबाइन्स, यहां तक ​​कि गीन, एमैक या वीम, अगर आपको पसंद है) और समस्या निवारण के लिए कुछ बुनियादी उपकरण जानने के साथ दूर हो सकते हैं ( gdb, अनुरेखण उपकरण, लिंट, htop, ps)।

आपको विंडोज प्रोग्रामिंग इकोसिस्टम में बहुत सारा ज्ञान निवेशित है। इनमें से अधिकांश (उम्मीद है) अमूर्त ज्ञान (एक संकलक, एक डिबगर, एक साझा पुस्तकालय, एक प्रक्रिया, एक धागा? वे क्या करते हैं?) जो आसानी से अलग हो जाएगा, एक बार जब आप विभिन्न उपकरणों पर गति के लिए उठते हैं। कुछ डोमेन विशिष्ट है (जब मैं किसी प्रोजेक्ट में X जोड़ता हूं तो DLL क्या जुड़ा है?), लेकिन यहां तक ​​कि भाषा के एक वर्ग से दूसरे तक विंडोज के भीतर जाने पर कुछ नए सीखने की आवश्यकता होगी।

VM में Ubuntu या Fedora स्थापित करें, ग्रहण या NetBeans ट्यूटोरियल्स में कुछ C ++ हैलो वर्ल्ड पढ़ें, और ग्रहण / NetBeans ट्यूटोरियल्स में कुछ डीबगिंग करें, और अपने मस्तिष्क की प्राकृतिक क्षमता को अपने अनुकूल होने दें। यदि आप आराम करते हैं और इसे काम में लगाते हैं तो यह आपके लिए विचारों का अनुवाद करेगा।


3

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

मैं इसका उपयोग करता हूं:

for i in *; do f=`basename $i .gz`; man `basename $f .1` ; done

... .1 को उस अनुभाग की संख्या से बदल रहे हैं जिसे आप पढ़ रहे हैं, .2, .3, आदि। ctrl-Z ctrl-C को लूप से बाहर निकालने के लिए हिट करें। यदि आपके लिनक्स डिस्ट्रो चीजों को अलग तरीके से स्टोर करते हैं, तो आप भिन्न नहीं हो सकते हैं, जैसे कि cmdname.1.gz।

बस वर्णन के माध्यम से जाना, और अधिक अगर यह कुछ दिलचस्प है। एक प्रोग्रामर के लिए धारा 1, 2 और 3 सबसे महत्वपूर्ण हैं। 1 सामान्य उपयोगकर्ता आदेशों को शामिल करता है, जिसमें आपके संकलन उपकरण, और विभिन्न फोरेंसिक उपयोगिताओं शामिल हैं। 2 सिस्टम कॉल है, और 3 लाइब्रेरी कॉल है।


2
मैं xmanएक और अधिक "दोस्ताना" इंटरफ़ेस के रूप में आग लगाने का सुझाव दूंगा। एक अनुभाग चुनें, मैन पेज पर क्लिक करें, इसे पढ़ें। कुल्ला, दोहराना।

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

3

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


2

मुझे यकीन नहीं है कि यह प्लेटफार्मों के लिए काम करता है, लेकिन प्रोग्रामिंग भाषाओं के लिए, मुझे यह सोचने में मदद मिली है कि मैं उन लोगों के साथ परिचित और सहज कैसे हूं जिनके साथ मैं अच्छा हूं और उन अनुभवों और गतिविधियों को फिर से दोहराने की कोशिश करता हूं जो मैं ' मैं सीखने की कोशिश कर रहा हूँ।

शायद उन तर्ज पर कुछ?

आम तौर पर हालांकि, GNU / Linux के साथ मेरी रुचि और आत्मविश्वास से यह विंडोज की तुलना में बहुत अधिक थकाऊ (और शुरुआती दिनों में टिंकरिंग की आवश्यकता) द्वारा आया है। मुझे काम करने के लिए बहुत सारे सामानों के साथ गड़बड़ करने की जरूरत थी और इससे मुझे बहुत सारी चीजें सीखने में मदद मिली। चीजें अब बहुत बेहतर हैं लेकिन उन सभी घंटों ने मदद की।


2

मैं दो समान कार्यों में से एक था, लेकिन अलग था। मैं के -12 स्कूल जिले में काम करता हूं, और व्यापार प्रणाली (एचआर, वित्तीय, आदि ...) एक HP3000 / TurboImage db से एक लिनक्स / एमएस एसक्यूएल प्लेटफॉर्म पर पलायन कर रहा है। मैं एमएस एसक्यूएल पक्ष के साथ सहज हूं। लेकिन लिनक्स की तरफ नहीं। हममें से दो लोग एडमिन की तरफ हैं, प्रोग्रामिंग साइड की नहीं। प्रोग्रामिंग बाहर की जाती है - K-12 orgs के लिए 3rd पार्टी बिजनेस ऐप।

मैंने सप्ताहांत पर लिनक्स (रेडहैट) वर्ग में 5 सप्ताहांत का समय लिया - ज्यादातर कमांड लाइन मोड में किया गया था - और यह चीजें करने के लिनक्स तरीके में एक त्वरित जम्पस्टार्ट के रूप में मेरे लिए समय के लायक था। जाहिर है YMMV कक्षा / शिक्षक पर निर्भर करता है।

आपने 'सबसे खराब: लिनक्स विकास पर्यावरण को कैसे व्यवस्थित करें?' का उल्लेख किया। चूंकि आप पहले से ही विंडोज से परिचित हैं, इसलिए मैं दृढ़ता से आपको vmWare वर्कस्टेशन की एक प्रति प्राप्त करने का सुझाव दूंगा। इसके साथ आप विंडोज को अपने वर्कस्टेशन के रूप में रख सकते हैं, और लिनक्स को गेस्ट सिस्टम के रूप में स्थापित कर सकते हैं - हटाएं, कुल्ला और आवश्यकतानुसार दोहराएं। जब आपको एक अच्छा सेटअप मिलता है, मेरा मानना ​​है कि आप इसे स्नैपशॉट दे सकते हैं, लेकिन मैं यह सुनिश्चित करने के लिए नहीं कह सकता कि कौन से संस्करण स्नैपशॉट पहलू के लिए सक्षम हैं। और यदि आप vmWare वर्कस्टेशन रूट में कई डेवलपमेंट सेटअप सक्षम करने के लिए जाते हैं - मेमोरी को टक्कर दें, तो निश्चित रूप से।

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

ग्रेग


1

मुझे दोनों प्लेटफ़ॉर्म पसंद हैं और उपयोगकर्ता इंटरफ़ेस और देव इको-सिस्टम के सभी अंतरों के लिए, मैं उन्हें अलग-अलग अंडर कवर के समान पाता हूं। वास्तव में, अधिकांश विंडोज़ अवधारणाओं के लिए आप इंटरनेट पर खोज करके एक समान लिनक्स वाले पा सकते हैं।

यह कहने के बाद, मैं दृढ़ता से सीखने का सुझाव देता हूं कि चीजों को "यूनिक्स तरीके" से कैसे किया जाए। छोटी गाड़ी GUI के सिरों के बजाय कमांड लाइन का उपयोग करें (मैं ज्यादातर यहाँ gdb के बारे में बात कर रहा हूँ); एक आईडीई के लिए मत देखो, और इसके बजाय विशेष उपकरणों के एक सेट का उपयोग करना सीखें। एक अच्छा संपादक चुनें (विम की ओर इशारा करते हुए) और इसे अच्छी तरह से सीखें। पढ़िए कैसे makeकाम करता है भले ही आप एक विशेषज्ञ बनने की योजना न करें। हो सकता है कि आपको लिनक्स पसंद भी आए। इसके साथ खेलने के लिए यह geek-friendly और मजेदार है।


1

इस पर विचार करें: आप एक बार विंडोज के बारे में कुछ नहीं जानते थे, लेकिन आपने इसे सीखा और समय के साथ इसके साथ सहज हो गए।

तब एमएस ने बदल दिया। जो भी प्रोग्रामिंग सिस्टम आप .NET के साथ सहज थे और अब आपको DLLS, COM और जो कुछ भी पता नहीं था, आपको असेंबली, जीएसी, ऐप डोमेन जैसी चीजों को सीखना होगा। तुमने उन ठीक सीखा।

तो अब आप लिनक्स के साथ ऐसा करने के बारे में चिंतित क्यों हैं?

सभी प्रकार के प्रोग्रामिंग वातावरण के लिए वेब पर 'गेट यू स्टार्ट' ट्यूटोरियल हैं। अब आप कहते हैं कि जीसीसी इसलिए मैं सी ++ विकास मान रहा हूं। अपने आप को ग्रहण करें, अपने ग्रहण मंच के शीर्ष पर सीडीटी (सी देव उपकरण) स्थापित करें (ग्रहण एक बहुउद्देश्यीय आईडीई है, आप इसे C ++, PHP, Java के लिए उपयोग कर सकते हैं, जो भी - लेकिन आपको अपनी भाषा में टूलिंग स्थापित करने की आवश्यकता है जैसा कि आप वास्तव में यह वी.एस. की तरह सभी पूर्व-स्थापित नहीं करना चाहते हैं और स्थापित होने में 3 दिन लगते हैं :))

पूरे वेब पर उपयोग में आसान ट्यूटोरियल हैं। आईबीएम यहाँ एक है जो काफी व्यापक है।

डिबगिंग टूल ... ग्रहण में यह एम्बेडेड ( ट्यूटोरियल ) है, लेकिन आप अपने द्वारा बताए गए जैसे बहुत सारे टूल पा सकते हैं, बस वेब पर खोज करें और आपको बहुत सारे विकल्प मिलेंगे। यह जानने में आपको थोड़ी देर लगेगी कि कोर डंप को कैसे पढ़ा जाए (उदाहरण के लिए विंडोज़ यूज़रडंप के विपरीत) लेकिन आप वहां पहुंच जाएंगे।

यह आपके अनुभवों के साथ एक ब्लॉग शुरू करने के लिए भी सार्थक हो सकता है, न केवल यह आपको अपने आप को याद दिलाने की अनुमति देगा कि आपने क्या किया है (जैसे कि आप इसे कैसे पसंद करते हैं ग्रहण की स्थापना, आप इसे फिर से करने की आवश्यकता होने पर भूल जाएंगे वर्ष का समय) लेकिन यह आपकी स्थिति में दूसरों की मदद करेगा।


0

मुझे नहीं लगता कि आपको स्क्रैच से लिनक्स करने की आवश्यकता है। अगर मैं तुम होते तो मैं उबंटू जाता। यह अधिक आरामदायक है, और डेबियन पर आधारित होने के कारण बहुत सारी तकनीकी सामग्री उपलब्ध है।

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


0

Google "यूनिक्स प्रोग्रामिंग की कला" और इसे पढ़ें। IMO, आपकी मुख्य कठिनाई अलग दर्शन है, और यह पुस्तक इसके लिए उत्कृष्ट पठन है।

यह आपको कुछ गैर-स्पष्ट लेकिन तकनीकी रूप से बहुत महत्वपूर्ण अंतरों के साथ * n * x और विंडोज सिस्टम के बीच भी पेश करता है - ये समझने की कुंजी है कि चीजों को दूसरे तरीके से करने से लिनक्स पर समझ में आता है।


1
... और यह आपको लिनक्स पर उपयोग करने के लिए बहुत सारे टूल और तकनीकों के साथ प्रस्तुत करता है।

0

पहला सवाल मैं पूछूंगा कि यह क्या है जिसे आप विकसित करना चाहते हैं? यदि यह एक गुई-आधारित अनुप्रयोग है तो यह एक कर्नेल एक्सटेंशन की तरह कुछ लिखने से अलग हो सकता है।

एक gui ऐप के मामले में, मुझे लगता है कि Qt का उपयोग करना सबसे आसान तरीका है, जिसका अपना विकास वातावरण (Qt-Creator) है और क्रॉस-प्लेटफ़ॉर्म होने के नाते, आपको केवल एक API सीखने की अनुमति देता है जिसका उपयोग Windows / Linux के लिए किया जा सकता है / OSX और यहां तक ​​कि मोबाइल विकास। विंडोज़ में विज़ुअल स्टूडियो या OSX में XCode की तरह, आप एक ग्राफिकल एडिटर से विंडोज़ और आइटम बना सकते हैं और नमूना अनुप्रयोगों के भार के साथ एपीआई को चुनना बहुत आसान है।

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

वैकल्पिक रूप से, यदि यह थोड़ा कठिन लगता है, तो आप ग्रहण या किसी अन्य IDE को डाउनलोड कर सकते हैं, लेकिन आप संभवतः लंबी अवधि में लिनक्स के साथ अधिक सहज हो जाएंगे, यदि आप समय और प्रयास को कमांड लाइन में डालते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.