3 पॉइंट द्वारा GN⁺ 2024-06-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Xv6 एक सरल Unix-जैसा शैक्षणिक OS है, जिसे operating system की संरचना सीखने के लिए बनाया गया है, और MIT के undergraduate course 6.1810 में इस्तेमाल किया जाता है
  • 2006 की गर्मियों में विकसित होने के बाद, इसे 6.1810 class के लिए RISC-V पर port किया गया, ताकि यह आधुनिक शैक्षणिक माहौल के अनुरूप हो
  • source और documentation xv6-riscv, xv6-riscv-book Git repositories के रूप में उपलब्ध हैं, जिन्हें आप खुद build कर सकते हैं और पढ़ सकते हैं
  • इसका design और learning context Unix V6 और John Lions की Commentary on UNIX' 6th Edition में निहित है
  • अगर मूल Unix V6 code भी साथ में पढ़ना हो, तो Lions commentary, V6 source, और PDP11/40 Processor Handbook जैसे reference materials मददगार हैं

Xv6 और 6.1810

  • Xv6 एक सरल Unix-जैसा शैक्षणिक operating system है
  • इसे 2006 की गर्मियों में विकसित किया गया था, और MIT undergraduate course 6.1810 के लिए RISC-V पर port किया गया

Source और learning materials

मूल Unix V6 पढ़ने के लिए संदर्भ सामग्री

  • The PDP11/40 Processor Handbook मूल Unix V6 code को समझने के लिए उपयोगी material है
    • scan images पर आधारित PDF में text search संभव नहीं है
    • instruction names से indexed web version भी उपलब्ध है

Feedback का अनुरोध

  • Xv6 इस्तेमाल करने के अनुभव, class में अपनाने के अनुभव, adoption को आसान बनाने के लिए सुधारों, और क्या अच्छे से काम किया व क्या नहीं—इन सब पर feedback मांगा जा रहा है
    • contact 61810-staff@lists.csail.mit.edu है

1 टिप्पणियां

 
GN⁺ 2024-06-09
Hacker News की राय
  • मैंने MIT में यह क्लास ली थी और 20/10 recommend करूंगा, खासकर उन लोगों के लिए जिनका systems background नहीं है
    textbook समझने में काफ़ी आसान है, और labs समझ की जांच करने के लिए बहुत अच्छे हैं। हालांकि पहली कोशिश में network driver को छोड़ देना बेहतर हो सकता है

    • मैं सोच रहा हूं कि क्या यह course online उपलब्ध है। OpenCourseWare पर lecture recordings नहीं मिलीं, और MIT की नहीं है, लेकिन xv6 से जुड़ी एक YouTube playlist मिली जो काफ़ी अच्छी लगती है: https://www.youtube.com/playlist?list=PLbtzT1TYeoMhTPzyTZboW...
    • मैंने UCI में एक course लिया था जिसमें MIT class का बड़ा हिस्सा लिया गया था और उसे काफ़ी आसान बनाया गया था, फिर भी recommend करने लायक है
  • मैंने MIT में इस OS का इस्तेमाल करने वाली class ली थी और वह सचमुच शानदार थी
    आज भी मैंने class website देखी, और असल में इसे खुद से भी लिया जा सकता है। lecture notes, labs, हर lab के लिए branches वाला xv6 repository, और इसे खुद run करने का तरीका—सब कुछ upload है, इसलिए इसका openness हैरान करने वाला है
    पहला lab: https://pdos.csail.mit.edu/6.1810/2023/labs/util.html
    जल्द ही पूरा course फिर से खुद अंत तक पूरा करने का सोच रहा हूं

  • University के operating systems course में कई projects xv6 operating system के ऊपर कुछ बनाने वाले थे
    उनमें से एक xv के लिए scheduler बनाने का project था, और operating system के कई components सीखने का यह निश्चित रूप से अच्छा तरीका था

  • Spain की एक university में Plan 9 को teaching के लिए इस्तेमाल किया गया था या किया जा रहा है

  • title पहली बार देखकर लगा कि यह पुराने xv image viewer का नया release है: http://www.trilon.com/xv/

  • मैं काफ़ी पहले से Windows NT kernel को समझना चाहता था। शायद शुरुआती version ज़्यादा simple होंगे, इसलिए वही बेहतर लगते हैं
    मैंने सुना है कि पहला version VMS के करीब था, पता नहीं यह सच है या नहीं। यह भी जानना चाहता हूं कि VMS material उपलब्ध है या नहीं, और सुना है कि OpenVMS open source है, लेकिन version बहुत high लगता है

    • NT kernel development process को अच्छी तरह समझने के लिए 1996 की किताब Show Stopper पढ़ना अच्छा रहेगा
      Dave Cutler ने DEC के अंदर VMS से जुड़े projects समेत कई projects lead किए थे, यह सही है, लेकिन Microsoft New Technology kernel को VMS से जो विरासत मिली, वह design और architecture के स्तर की वैचारिक विरासत भर थी
      Dave, DEC में उनकी team को किनारे किए जाने से पहले ही VMS का बड़ा rework या successor बना रहे थे, और उस vision का बड़ा हिस्सा Windows में आया, लेकिन minicomputer side के मजबूत design patterns की कुछ कुर्बानी भी हुई
      Cutler MSDOS team को गलत समस्या पर spaghetti-style solutions चढ़ाने वाले नौसिखिया programmers मानते थे, लेकिन Bill Gates ने OEM contracts से market पर मजबूत पकड़ बना रखी थी, इसलिए Bill ने उन्हें practically blank cheque दे दिया ताकि वे NeXT में Steve जो बना रहे थे उससे compete करने वाला असली kernel ला सकें
      इसलिए features या form के लिहाज से NT बिल्कुल VMS जैसा नहीं है, और implementation के लिहाज से भी पूरी तरह अलग है। VMS में साफ़-सुथरी C standard library और compiler suite था। लेकिन इसे ऐसे देखा जा सकता है कि minicomputer world के लोग microcomputer world में compete करने के लिए नीचे आए थे
      माहौल को और detail में समझने के लिए YouTube पर Dave Plummer और Cutler interviews देखना अच्छा रहेगा
    • Windows Internals book series, पुराने MSTech Journal और DDJ issues, और Digital archives के VMS manuals देखिए
    • Windows 2000 source code internet पर leak हो चुका है, और newer versions भी leak हुए होने की संभावना बहुत है। वास्तव में इसे educational tool के रूप में भी इस्तेमाल किया गया है
    • यह सही नहीं है कि पहला NT version VMS के करीब था
      VMS material बहुत अधिक है, और मूल रूप से उसके साथ कई मीटर documentation आती थी। यह आज भी बेचा जाता है और free hobbyist VM images भी मिल सकती हैं
      OpenVMS open source नहीं है, और version बहुत high है वाली बात भी सच नहीं है
      सवाल पूछने से पहले assumptions हमेशा check करनी चाहिए। अगर आप पूछना चाहते हैं “A के कारण क्या B संभव है?”, तो पहले यह verify करना चाहिए कि A सच है या नहीं
    • क्या OpenVMS open source था?
  • समझ नहीं आता Unix v6 ही क्यों। पता नहीं 50 साल पुराने design से क्यों पढ़ाया जाता है
    operating systems की basics—scheduling, inter-process communication, address space management—सिखाने के लिए microkernel design बेहतर लगता है

    • आज व्यापक रूप से इस्तेमाल होने वाली technology की precursor technology पढ़ना यह सीखने का अच्छा तरीका है कि हम यहां तक कैसे पहुंचे, कौन-से trade-offs क्यों किए गए, और हमने क्या खोया भी हो सकता है
      बाद में नई technology देखने पर उसे गहराई से समझ सकते हैं, और आगे career में भी नजरिया broad करता है
      इतिहास का वह हिस्सा miss करने वाले के रूप में, university में यह सीखा होता तो वाकई अच्छा लगता
    • दौड़ने से पहले चलना सीखना पड़ता है। Xv6 basic है, लेकिन ऐसे concepts पहली बार देखने वाले students के लिए एक semester में operating systems basics सीखने का बहुत अच्छा intro है
    • मुझे नहीं लगता कि बहुत से professors Xv6 को operating systems class के लिए सिर्फ इसलिए चुनते हैं कि इसका design शानदार है
      अक्सर शायद इसलिए चुनते हैं कि यह enough अच्छा, simple, और students के अन्य courses के साथ एक semester में पढ़ाने में आसान है। मैं जानना चाहता हूं कि क्या आपका मतलब है कि microkernel design न सिर्फ बेहतर है बल्कि पढ़ाने में भी आसान है
    • von Neumann architecture 80 साल पुराना है। design कितना पुराना है, यह क्यों मायने रखता है, समझ नहीं आता—अगर वह अब भी सबसे relevant और widely used architecture है
      Unix v6 की basic abstractions आज भी valid हैं
      microkernel और monolithic kernel के बीच core difference यह है कि user space और kernel के बीच address space कैसे share किया जाता है, लेकिन microkernel design क्यों बेहतर है, यह मुझे साफ़ नहीं है। जो design widely used नहीं है उसे क्यों पढ़ाना चाहिए, यह भी सवाल है
    • microkernel software ecosystem में महत्वपूर्ण role निभाते हैं, लेकिन हम जो अधिकांश software देखते हैं उसे microkernel coordinate नहीं करता
      internet पर चलने वाला अधिकांश software भी microkernel के ऊपर नहीं चलता, और internet पर उपलब्ध अधिकांश software भी ऐसा ही है। ऐसी class kernels को handle करने या profession में मिलने वाले kernels को समझने के लिए पर्याप्त तैयारी नहीं कर पाएगी, ऐसा लगता है
  • जो लोग self-study कर रहे हैं, उनके लिए इसे खुद hands-on करके देखने का अच्छा तरीका क्या होगा, यह जानना चाहता हूं

  • Plan 9 भी समझने के लिहाज से काफ़ी simple codebase है

    • Plan 9 के कुछ design decisions सम्मान के लायक हैं
      per-process namespaces, binds, और everything-as-a-file approach इसे ऐसी elegance देते हैं जो दूसरे Unix-like OS में मुश्किल से दिखती है
  • पिछले semester operating systems class में हमने PintOS इस्तेमाल किया था, काश इसका कोई ज़्यादा deep 2nd-part course भी होता