- 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 के लेखों की सूची
- लक्ष्य individual blog posts के माध्यम से step-by-step tutorial देना है
-
Bare Bones
-
Interrupts
-
Memory Management
-
Multitasking
पहला 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 टिप्पणियां
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
MOROS भी इन शर्तों को पूरा करता लगता है, इसलिए bookmark कर लिया
हालांकि किसी वजह से यह 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 नहीं हैं
इसके अलावा और भी niche या public न किए गए projects हैं
पारंपरिक operating systems, यानी non-real-time side में Redox प्रमुख है, और इस guide/post के Blog OS समेत research, experiment और education के लिए कई operating systems भी हैं
इन लेखों के पहले संस्करण की खास तौर पर सिफारिश करता हूं
current version dedicated crate से पूरी bootloading संभालता है, इसलिए लगा कि वह बहुत ज्यादा मदद कर देता है
यह 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 शानदार दिखते हैं