7 पॉइंट द्वारा GN⁺ 2024-09-15 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Blog OS रिपॉज़िटरी में os.phil-opp.com की Writing an OS in Rust सीरीज़ में इस्तेमाल होने वाला source code मौजूद है
  • हर लेख का code अलग git branch में है, इसलिए लेख को follow करने के बाद की intermediate state देखी जा सकती है
  • अभी second edition के लेख Bare Bones, Interrupts, Memory Management, और Multitasking श्रेणियों में हैं, और नवीनतम लेख का code post-12 branch में है
  • branch नाम post-XX फ़ॉर्मैट का पालन करते हैं; उदाहरण के लिए post-03 में VGA Text Mode और post-07 में Hardware Interrupts लेख का code है
  • first edition अब maintain नहीं की जाती, लेकिन अब भी reference के लिए उपयोगी है; blog/content फ़ोल्डर को छोड़कर project code Apache-2.0 या MIT में से किसी एक license के तहत उपलब्ध है

Blog OS रिपॉज़िटरी का उद्देश्य

  • यह रिपॉज़िटरी Writing an OS in Rust सीरीज़ का source code उपलब्ध कराती है
  • सवाल GitHub issue खोलकर या Gitter chat के ज़रिए पूछे जा सकते हैं

लेख-वार code संरचना

  • हर लेख का code अलग git branch में है
    • इससे लेख को follow करने के बाद की intermediate state देखी जा सकती है
    • नवीनतम लेख का code post-12 में है
  • हर लेख की branch नीचे दी गई लेख सूची के (source code) लिंक से मिल सकती है
  • branch नाम post-XX फ़ॉर्मैट का उपयोग करते हैं
    • post-03: VGA Text Mode
    • post-07: Hardware Interrupts
  • build करने का तरीका हर branch के README में देखना चाहिए
  • git worktree का उपयोग करके किसी specific branch को subdirectory में checkout किया जा सकता है
git worktree add code post-10
  • ऊपर दिया गया command 10वें लेख Heap Allocation का code रखने वाली code subdirectory बनाता है

वर्तमान edition के लेखों की सूची

पहला edition

  • मौजूदा blog second edition है
  • पहला edition पुराना है और अब maintain नहीं किया जाता, लेकिन यह अब भी उपयोगी हो सकता है
  • पहले edition में Bare Bones, Memory Management, Exceptions, और Additional Resources श्रेणियों के लेख शामिल हैं

लाइसेंस और योगदान

  • blog/content फ़ोल्डर को छोड़कर project को उपयोगकर्ता की पसंद के अनुसार Apache License 2.0 या MIT license में से किसी एक के तहत इस्तेमाल किया जा सकता है
  • blog/content फ़ोल्डर के license के लिए blog/content/README.md देखना चाहिए
  • जब तक अलग से कुछ और न बताया गया हो, inclusion के लिए जानबूझकर भेजे गए contributions पर Apache-2.0 की परिभाषा के अनुसार बिना अतिरिक्त शर्तों के ऊपर दिया गया dual license लागू होगा

1 टिप्पणियां

 
GN⁺ 2024-09-15
Hacker News टिप्पणियाँ
  • कुछ साल पहले मैंने दूसरा संस्करण पूरा पढ़ा था, और वह सचमुच आंखें खोल देने वाला था
    ऑपरेटिंग सिस्टम डेवलपमेंट की व्याख्या भी अच्छी है, लेकिन Rust book पढ़ने के बाद Rust और सीखने के लिए भी यह उपयोगी संसाधन था
    लेखक Rust के idioms को अच्छी तरह समझते हैं, इसलिए मेरे लिखने के तरीके की तुलना में code में चीजें कैसे व्यक्त की जाती हैं, यह देखना भी बहुत कुछ सिखाता था। खासकर Rust में future कैसे implement होता है, इसे समझाने वाला async-await in Rust इस विषय पर मैंने जो देखा है उनमें सबसे अच्छा था
    अच्छा होगा अगर Phil फिर से उत्साह पाकर EFI-आधारित तीसरे संस्करण पर काम आगे बढ़ाएं। Git branch commits देखकर लगता है जैसे काम रुक गया है, और मैंने GitHub sponsor भी लगभग 1 साल तक किया, लेकिन “This Month In Rust OSDev” लेखों में उनका नाम न दिखता था तो अफसोस होता था
    फिर भी दूसरा संस्करण weekend development time बिताने के लिए शानदार सामग्री है, और इसमें लगी मेहनत साफ महसूस होती है

  • 5 साल पहले इस tutorial को पूरा करने के बाद मैंने MOROS पर काम शुरू किया था, और Rust व operating system development में रुचि रखने वालों को मैं इसकी जोरदार सिफारिश करता हूं
    Phil ने सचमुच बहुत मेहनत की है और वह दिखती है। Project बहुत सारी चीजें कवर करता है, और उसके बाद osdev wiki से आगे जारी रखा जा सकता है
    MOROS: http://moros.cc, https://github.com/vinc/moros

    • काफी शानदार दिखता है। अब तक xv6 मेरा सबसे पसंदीदा project था, क्योंकि codebase इतना छोटा है कि कुछ हफ्तों में समझा जा सकता है, package manager द्वारा दिए गए standard GCC से build हो जाता है इसलिए source से custom GCC build करने की जरूरत नहीं पड़ती, और इसमें user space भी है
      MOROS भी इन शर्तों को पूरा करता लगता है, इसलिए bookmark कर लिया
    • क्या http://moros.cc पर TLS नहीं है? :(
    • मैं पहले से इसका RSS feed subscribe किए हुए हूं, और MOROS सचमुच बहुत शानदार project लगता है
      हालांकि किसी वजह से यह QEMU में start नहीं हुआ, इसलिए अभी आजमा नहीं पाया; मुझे लगता है यह operating system की बजाय मेरी तरफ की समस्या होने की संभावना ज्यादा है
  • Rust और operating system development में गहराई से जाने के बाद आज यह resource मिला, और content quality देखकर प्रभावित हुआ
    operating system का history और design बहुत कुछ सीखते हुए Rust के elements भी सहज रूप से सीख जाते हैं। Phil ने सचमुच बेहतरीन बनाया है

  • अभी Rustconf से लौटा हूं, और Rust side में करीब पांच major operating system releases दिखे, खासकर कई ऐसे जो real-time पर focus करते हैं
    हालांकि वे सभी open source नहीं हैं

    • प्रमुख real-time operating systems (RTOS) में Tock-OS, Oxid-OS (Tock-OS का safety-focused version, freertos/safertos जैसी position में), और Oxide Computers का Hubris हैं। Embassy और RTIC bare-metal systems में scheduling और resource management के लिए आम तौर पर इस्तेमाल होने वाले frameworks हैं, लेकिन पारंपरिक RTOS नहीं हैं
      इसके अलावा और भी niche या public न किए गए projects हैं
      पारंपरिक operating systems, यानी non-real-time side में Redox प्रमुख है, और इस guide/post के Blog OS समेत research, experiment और education के लिए कई operating systems भी हैं
  • इन लेखों के पहले संस्करण की खास तौर पर सिफारिश करता हूं
    current version dedicated crate से पूरी bootloading संभालता है, इसलिए लगा कि वह बहुत ज्यादा मदद कर देता है

    • मुझे यह अच्छा लगता है कि bootloading वाला हिस्सा skip करने का तरीका मौजूद है
      यह comment देखकर सच में एक बार try करने का मन हुआ। मजे के लिए छोटा operating system बनाना चाहता हूं, लेकिन किसी काम की ठीक-ठाक machine state तक पहुंचने के लिए magic spell जैसी procedures से गुजरना पसंद नहीं
      जाहिर है, यह बुरा नहीं है; बस अलग-अलग लोगों को अलग-अलग parts पसंद होते हैं
  • इसी resource की वजह से मैंने 2021 में Rust शुरू किया, और ऐसे resources के लिए मैं सचमुच आभारी हूं

  • Phil के operating system development लेख हमेशा पढ़ने में अच्छे लगते हैं

  • कहा जा रहा है कि वे अगले महीने GOSIM conference में talk देंगे
    https://china2024.gosim.org/speakers#philipp-oppermann
    उम्मीद है उनसे मिलकर बात कर सकूंगा

  • https://harvey-os.org/ retire हो चुका है, और team अब इस project पर काम कर रही है: https://github.com/r9os/r9

  • मैं professional developer नहीं हूं, लेकिन “Y के ऊपर X लिखना” जैसा expression देखता हूं तो Ryan Reynolds का “But why?” meme याद आता है: https://screenrant.com/ryan-reynolds-but-why-gif-harold-kuma...
    सीखने के मकसद से हो तो मेरे हिसाब से बिल्कुल करना चाहिए। Coding जितनी ज्यादा करेंगे, उतने बेहतर होते जाएंगे
    साथ ही MOROS का project और page शानदार दिखते हैं