UNIX कहाँबाट आउँछ?

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

यी बर्षहरूमा, मैले पढेका पुस्तकहरूको सूची र म सिफारिश गर्न सक्ने पुस्तकहरूको सूची एकदम थोरै हटाईएको छ, तर हाम्रा मनपर्नेहरूमध्ये कुनैमा कुनै श doubt्का बिना (कुनै विशेष क्रममा):

  • म्याट वाकर द्वारा सीईएच प्रमाणित नैतिक ह्याकर।
  • शुरुआत पाइथन: नौसिसदेखि प्रोफेशनलसम्म म्याग्नस लाइ हेटलैंडले।
  • ह्याकिking: जोन इरिक्सन द्वारा शोषण गर्ने कला।
  • मासिमो बन्ज़ी द्वारा आरडिनोको साथ सुरूवात गर्दै।
  • क्यामरन न्यूब्याम र बिल रोजेनब्लाट द्वारा बाश शेल सीख्दै।
  • अर्नाल्ड रबिन्स, एल्बर्ट हन्ना र लिन्डा लेम्बद्वारा vi र vim सम्पादकहरू सिक्दै।
  • ग्रेग क्रोह-हार्टम्यान (जेन्टु विकासकर्ता पनि) द्वारा संक्षिप्तमा लिनक्स कर्नेल।
  • जेन्स Gustedt द्वारा आधुनिक सी
  • क्रिस एन्ली, जोन हेसमैन, फेलिक्स «एफएक्स» लिन्डर र जेरार्डो रिचार्ते द्वारा शेलकोडरको पुस्तिका।
  • ब्रायन डब्ल्यू। कर्निघन र डेनिस एम। रिची (सी का निर्माता) द्वारा सी प्रोग्रामिंग भाषा
  • रिचार्ड स्टालम्यान, रोलाण्ड पेश, स्ट्यान शेब, एट अल द्वारा GDB का साथ डिबग गर्दै।
  • ह्याकि Linux लिनक्स खुलासा गरियो: पीट हर्जोग, मार्गा बार्सिलो, रिक टकर, एन्ड्रिया बारिसानी (अर्को पूर्व जेन्टु विकासकर्ता), थोमस बडर, साइमन बिल्स, कोल्बी क्लार्क, राउल चिआसालगायत आइएसईसीएम अनुसन्धानकर्ताहरूको ठूलो समूहबाट लिनक्स सुरक्षा गोप्यता र समाधानहरू। , पाब्लो एन्ड्रेस, रिचर्ड फिस्ट, एन्ड्रिया घिरार्डिनी, जूलियन "हम्मरजेमर" हो, मार्को इवाल्डी, ड्रू लाभिग्ने, स्टीफन लो प्रेस्टी, क्रिस्टोफर लो, टाई मिलर, आर्मान्ड प्युसेट्टी र एट अल।
  • अपरेटिms प्रणाली: धनन्जय एम। धम्धारे द्वारा अवधारणा आधारित दृष्टिकोण
  • स्कट चाकन र बेन स्ट्रब द्वारा प्रो गिट
  • विशेषज्ञ सी प्रोग्रामिंग: पीटर भान डेर लिन्डेन द्वारा गहिरो रहस्य।

म यी पुस्तकहरू मध्ये प्रत्येकमा उच्च बोल्न सक्छु, तर आज हामी सूचीमा अन्तिम एकबाट केही अंशहरू लिनेछौं, किनकि यी धेरै जसो एन्टिओड्सले मलाई मोहित पारेका छन र मलाई सामान्यतया सी र प्रोग्रामि theको जटिल रहस्यहरू बुझ्न मद्दत गर्दछ। 🙂

युनिक्स र सी

जब हामी युनिक्सको बारेमा कुरा गर्छौं, इतिहास यस प्रणालीको उत्पत्ति र भाषाको विकाससँग गाँसिएको छ जुन अहिलेको भाषा र यसको व्युत्पन्न (लिनक्स सहित) को विकासमा सबैभन्दा बढी प्रयोग भएको छ। र चाखलाग्दो कुरा, यी दुई एक "गल्ति" को जन्म।

मल्ट्रिक्स यो एक मेगा प्रोजेक्ट हो जसले बेल प्रयोगशालाहरू, जनरल इलेक्ट्रिक र एमआईटी आफैंलाई एक अपरेटि system प्रणाली सिर्जना गर्नका लागि ल्यायो। यस प्रणालीले धेरै त्रुटिहरू प्रस्तुत गर्‍यो, र ती मध्ये एक महत्त्वपूर्ण, प्रदर्शन विफलताले प्रणालीलाई व्यावहारिक उपयोगको नभएको बनायो। हामी सन् १ 1969 XNUMX। को कुरा गर्दैछौं, त्यसकारण त्यस समयको हार्डवेयरले सफ्टवेयरको मात्रा समर्थन गर्न सकेन जुन प्रणाली आफैंमा चलाउनको लागि आवश्यक थियो।

यो १ 1970 .० सम्म थिएन कि बेल ईन्जिनियरहरूको एक जोडीले PDP-7 को लागी सरल, द्रुत र हल्का वजन अपरेटिंग प्रणालीमा काम गर्न शुरू गर्यो। सम्पूर्ण प्रणाली मा लेखिएको थियो असेंबलर र बोलाइएको थियो युनिक्स को एक प्यारोडी को रूप मा मल्ट्रिक्स किनकि उहाँ केवल केहि चीजहरू गर्न चाहानुहुन्छ, तर ती राम्रो गर्नुको सट्टा दोस्रोले भन्न खोजेको व्यर्थ कामको सट्टा। अब तपाईं बुझ्न सक्नुहुनेछ एपोक जनवरी १, 1970। Me मेरो लागि बरु एउटा जिज्ञासु तथ्य। त्यतिखेर त्यहाँ अझै सीको बारेमा कुरा गरिएन, तर कको नयाँ बी किनकि रिचीका विचारहरू त्यसबेलाको पहिले नै प्रयोग गरिएको बी भाषाबाट आएको थियो।

प्रारम्भिक सी

धेरै वर्षहरूमा (१ 1972 3२--XNUMX) नयाँ शब्दले आकार लिन थालेदेखि सी शब्द प्रयोग हुन शुरू भयो, र यस समय वरिपरि अर्को उत्सुक तथ्यको जन्म भएको छ, धेरै प्रोग्रामरहरू र प्रोग्रामर चुटकुले भनेका छन्:

प्रोग्रामरहरू जान्दछन् कि तपाईं १ बाट सट्टा ० बाट गणना सुरु गर्नुहुन्छ।

ठिकै हो, यो पूर्ण रूपमा सत्य नै छैन - किन यस्तो आजसम्म यसरी मानिन्छ भन्ने वास्तविक कारण हो किनकि यसको सिर्जनामा ​​कम्पाइलर लेखकहरूको लागि एर्रे गणना गरेर सजिलो भयो। अफसेटहरू, यसले दूरीलाई देखाउँदछ जुन मूल बिन्दुबाट इच्छित उद्देश्यमा अवस्थित छ, त्यसैले:

array[8]=2;

यसले हामीलाई बताउँछ कि तत्व एर्रेलाई २ को रूपमा परिभाषित गरिएको छ किनकि units युनिटहरू एर्रेमा थपिएको छ स्मृतिको ठाउँमा पुग्न जहाँ एलिमेन्ट २ भण्डार गरिनेछ। सी भन्दा पहिले धेरै भाषाहरू १ बाट गणना गर्न थाल्यो, सीलाई धन्यवाद, अब प्राय सबै ० बाट शुरु हुन्छ। 🙂 त्यसैले यो प्रोग्रामरको गल्ती होइन, तर कम्पाइलर लेखकहरूको गल्ती हो कि यो यत्ति हो।

बोर्न शेल

यो एक विषय हो जुन सी सँग सीधा सम्बन्धित नभए पनि शेल प्रोग्रामि p यति विचित्र किन छ भनेर एक भन्दा बढी बुझ्न मद्दत पुर्‍याउँछ, र यो जान्न निश्चित नै उत्सुक छ। स्टीभ बोर्नले त्यो olतुमा एल्गोल-68iler को कम्पाइलर लेखेका थिए, यो यस्तो भाषा हो जहाँ कुञ्जीहरू ( {} ) शब्दहरू द्वारा प्रतिस्थापन गरिएको छ, त्यसैले हामी यसलाई C मा परिभाषित गर्न सक्दछौं:

#define IF if(

#define THEN ){

#define ELSE }else{

#define FI };

यी केवल केही उदाहरणहरू हुन् जुन एल्गोलले बुझ्दछ, तर यदि हामी आज यसलाई शेल प्रोग्रामिंगमा लागू गर्दछौं भने तपाईले बुझ्नुहुनेछ किन सेलमा तपाईको प्रोग्रामहरू चाहिन्छ। fi प्रत्येक को लागी if 🙂 निश्चित रूपमा रोचक।

पढ्न सुरु गर्नुहोस्

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


लेखको सामग्री हाम्रो सिद्धान्तहरूको पालना गर्दछ सम्पादकीय नैतिकता। त्रुटि क्लिक गर्न रिपोर्ट गर्नुहोस् यहाँ.

२ टिप्पणीहरू, तपाइँको छोड्नुहोस्

तपाइँको टिप्पणी छोड्नुहोस्

तपाईंको ईमेल ठेगाना प्रकाशित हुनेछैन। आवश्यक फिल्डहरू चिन्ह लगाइएको छ *

*

*

  1. डाटाका लागि उत्तरदायी: मिगुएल gelन्गल ग्याटन
  2. डाटाको उद्देश्य: नियन्त्रण स्पाम, टिप्पणी प्रबन्धन।
  3. वैधानिकता: तपाईंको सहमति
  4. डाटाको सञ्चार: डाटा कानुनी बाध्यता बाहेक तेस्रो पक्षलाई सूचित गरिने छैन।
  5. डाटा भण्डारण: डाटाबेस ओसीन्टस नेटवर्क (EU) द्वारा होस्ट गरिएको
  6. अधिकार: कुनै पनि समयमा तपाईं सीमित गर्न सक्नुहुनेछ, पुन: प्राप्ति र तपाईंको जानकारी मेटाउन।

  1.   जुआन भन्यो

    तपाईंको लेख मेरो लागि धेरै रोचक भएको छ। धेरै धेरै धन्यवाद।

  2.   HO2Gi भन्यो

    सधैं जस्तो धेरै रोचक।

  3.   जोस राफेल भन्यो

    धेरै रोचक स्पष्टीकरणहरू राम्रो छन्।

  4.   एलेक्स भन्यो

    excelente

  5.   डानियलगा भन्यो

    चाखलाग्दो !!! धेरै धेरै धन्यवाद।

  6.   दोस्रो भन्यो

    मल्ट्रिक्स? यो मल्टिक हुनेछैन (https://en.wikipedia.org/wiki/Multics)

    १ बाट अनुक्रमणिकाको साथ भाषाहरू शैतानको आविष्कार हुन् ...

    1.    क्रिसएडीआर भन्यो

      चाखलाग्दो नोट - मलाई लाग्छ कि इतिहासको कुनै समय दुबै सर्तहरू प्रयोग भएको छ।

      https://www.landley.net/history/mirror/collate/unix.htm

      र स्पष्टतः उही किताब जुन मध्य s ० को दशकमा लेखिएको थियो।

      स्पष्टीकरण को लागी धन्यवाद - बधाई छ

      1.    दोस्रो भन्यो

        वाह, कस्तो अनौठो कुरा हो, तपाईंले मलाई श doubt्का गर्नुभयो, मैले विज्ञ सी प्रोग्रामिंगको "खरीदिएको" प्रतिलिपिमा हेरेँ: डिप सीक्रेट्स र त्यहाँ मल्टिकहरू आउँदैछन्, यो मैले पहिलो पटक सुनेको छु कि मल्ट्रिक्स। कति उत्सुक, यसले ट्रिक्स खरायोको सानो सम्झना गराउँछ

        1.    क्रिसएडीआर भन्यो

          हाहाहा पक्कै पनि जिज्ञासु, मैले मेरो अ copy्ग्रेजी प्रतिलिपिलाई गहिरो रहस्यहरूको जाँच गरे, त्यहाँ यसले मल्ट्रिक्स पनि भन्छ (किनकि तपाईंले पनि मलाई श doubt्का गरेको थियो) ... हुनसक्छ यो समयको अभिव्यक्ति हो 😛

          Saludos

  7.   ED774 भन्यो

    ठूलो योगदान

  8.   अज्ञात भन्यो

    चाखलाग्दो कुरा, यद्यपि पक्कै पनि, मल्ट्रिक्स गलत प्रिन्टको कारणले हो, किनकि त्यस अपरेटि system प्रणालीको मूल नाम मल्टिक्स थियो र युनिक्सलाई मूल रूपमा युनिक्स भनिन्थ्यो, ठीक त्यहि ठूलो अपरेटिंग सिस्टमलाई जनाउँदै अन्तमा र फोनेटिक्स द्वारा युनिक्स से युनिक्समा रूपान्तरण भयो, अब तपाईले व्यक्तिको नाम उल्लेख गर्नुपर्नेछ जसले आफूलाई यूनिक्सको लेखक मान्दछ; केन थॉम्पसन, दन्त्यकथामा यो छ कि थम्पसन र रिची दुबै बेल प्रयोगशालामा क्याफेटरियामा थिए आफ्ना प्रोजेक्टहरूमा टिप्पणी गर्दै र रिचीले थोम्पसनलाई सुझाव दिए कि उनले आफ्नो युनिक्स सी प्रोग्राम मार्फत लेख्नु पर्छ जुन भाषा उसले लेखेको थियो ... र बाँकी , इतिहास हो। 😉

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

    1.    क्रिसएडीआर भन्यो

      किंवदन्तीको बारेमा खराब कुरा यो हो कि उनीहरूले इतिहासलाई विकृत बनाउँदछन्, एक भन्दा बढी तरिकाहरूमा ... र तिनीहरूले तपाईंलाई यो सोच्न लगाउँदछन् कि जब यो हुँदैन तब हुन्छ केहि हुन्छ ... थम्प्सन र रिची (जुन मैले इच्छामै छोडिदियो) बीचको अवस्थित कुराकानीको तथ्य जस्तै यसले नेतृत्व गर्दछ ऐतिहासिक र प्राविधिक त्रुटिहरुमा (C UNIX भन्दा पहिले थिएन)।

      र दोस्रोको रूपमा ... अर्को किंवदन्ती जसले वास्तविकतालाई विकृत बनाउँछ, किनकि सी भन्दा पहिले बी, ए, पास्कल, अडा, एल्गोल-60०, पीएल / १ र अरू धेरै जो ठीकसँग प्रोग्रामिंग भाषाहरू थिए (असेंब्लीबाट धेरै फरक) र आर्किटेक्चरद्वारा उनीहरूको बोलचालहरू जुन प्रोसेसरको हार्डवेयरमा निर्भर छन्) त्यसैले सीले यस अर्थमा "नवीन" गर्नुभएन, उसले केवल समाधानहरू अपनायो जुन अन्य भाषाहरूमा पहिले नै अवस्थित थियो र अन्तमा यो यी भन्दा लोकप्रिय छिटो र उत्तम भयो ... केवल अंश सत्य यो हो कि जाभा पोर्टेबिलिटीको अवधारणामा आधारित थियो जुन पछि यसको भर्चुअल मेसिन सिर्जना गर्ने थियो, तर यसले यसका लागि C मा मात्र निर्भर गरेन, तर यसले अरू मोडेलहरू पनि पछ्याउँदछ, अन्यथा हामी जाभामा वस्तु-उन्मुख प्रोग्रामिंग प्रतिमान हुनेछैन ...

      मलाई लाग्यो कि मैले स्थिति स्पष्ट गर्नु पर्दछ किनकि कोही कम ज्ञान भएकाले यसलाई सत्य होईन र विश्वास गर्दछ कि यो यस्तो भयो ... अभिवादन 🙂

  9.   Ignacio Esquivel भन्यो

    सधै जस्तो, लेख धेरै रोचक छ, योगदानका लागि धन्यवाद।