- Xv6 एक सरल Unix-जैसा शैक्षणिक OS है, जिसे operating system की संरचना सीखने के लिए बनाया गया है, और MIT के undergraduate course 6.1810 में इस्तेमाल किया जाता है
- 2006 की गर्मियों में विकसित होने के बाद, इसे 6.1810 class के लिए RISC-V पर port किया गया, ताकि यह आधुनिक शैक्षणिक माहौल के अनुरूप हो
- source और documentation
xv6-riscv,xv6-riscv-bookGit 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
- नवीनतम Xv6 source निम्न command से लिया जा सकता है
- नवीनतम Xv6 documentation अलग repository के रूप में उपलब्ध है
- Xv6 को Unix V6 और John Lions की Commentary on UNIX' 6th Edition से प्रेरणा मिली है
- Lions commentary online version
- Unix V6 source code
- The Unix Heritage Society के जरिए V6 source code
मूल 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है
- contact
1 टिप्पणियां
Hacker News की राय
मैंने MIT में यह क्लास ली थी और 20/10 recommend करूंगा, खासकर उन लोगों के लिए जिनका systems background नहीं है
textbook समझने में काफ़ी आसान है, और labs समझ की जांच करने के लिए बहुत अच्छे हैं। हालांकि पहली कोशिश में network driver को छोड़ देना बेहतर हो सकता है
मैंने 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 लगता है
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 देखना अच्छा रहेगा
VMS material बहुत अधिक है, और मूल रूप से उसके साथ कई मीटर documentation आती थी। यह आज भी बेचा जाता है और free hobbyist VM images भी मिल सकती हैं
OpenVMS open source नहीं है, और version बहुत high है वाली बात भी सच नहीं है
सवाल पूछने से पहले assumptions हमेशा check करनी चाहिए। अगर आप पूछना चाहते हैं “A के कारण क्या B संभव है?”, तो पहले यह verify करना चाहिए कि A सच है या नहीं
समझ नहीं आता Unix v6 ही क्यों। पता नहीं 50 साल पुराने design से क्यों पढ़ाया जाता है
operating systems की basics—scheduling, inter-process communication, address space management—सिखाने के लिए microkernel design बेहतर लगता है
बाद में नई technology देखने पर उसे गहराई से समझ सकते हैं, और आगे career में भी नजरिया broad करता है
इतिहास का वह हिस्सा miss करने वाले के रूप में, university में यह सीखा होता तो वाकई अच्छा लगता
अक्सर शायद इसलिए चुनते हैं कि यह enough अच्छा, simple, और students के अन्य courses के साथ एक semester में पढ़ाने में आसान है। मैं जानना चाहता हूं कि क्या आपका मतलब है कि microkernel design न सिर्फ बेहतर है बल्कि पढ़ाने में भी आसान है
Unix v6 की basic abstractions आज भी valid हैं
microkernel और monolithic kernel के बीच core difference यह है कि user space और kernel के बीच address space कैसे share किया जाता है, लेकिन microkernel design क्यों बेहतर है, यह मुझे साफ़ नहीं है। जो design widely used नहीं है उसे क्यों पढ़ाना चाहिए, यह भी सवाल है
internet पर चलने वाला अधिकांश software भी microkernel के ऊपर नहीं चलता, और internet पर उपलब्ध अधिकांश software भी ऐसा ही है। ऐसी class kernels को handle करने या profession में मिलने वाले kernels को समझने के लिए पर्याप्त तैयारी नहीं कर पाएगी, ऐसा लगता है
जो लोग self-study कर रहे हैं, उनके लिए इसे खुद hands-on करके देखने का अच्छा तरीका क्या होगा, यह जानना चाहता हूं
Plan 9 भी समझने के लिहाज से काफ़ी simple codebase है
per-process namespaces, binds, और everything-as-a-file approach इसे ऐसी elegance देते हैं जो दूसरे Unix-like OS में मुश्किल से दिखती है
पिछले semester operating systems class में हमने PintOS इस्तेमाल किया था, काश इसका कोई ज़्यादा deep 2nd-part course भी होता