Rust के साथ Operating System लिखना
(github.com/phil-opp)- इस repository में os.phil-opp.com पर उपलब्ध Writing an OS in Rust series का source code शामिल है
- अगर कोई सवाल हो, तो issue खोल सकते हैं या Gitter पर चैट कर सकते हैं
कोड का स्थान
- हर post का कोड अलग git branch में है
- आप हर post के बाद की intermediate state देख सकते हैं
- सबसे नए post का कोड यहाँ देखा जा सकता है
- post list में
(source code)लिंक फ़ॉलो करके हर post की branch मिल सकती है - branches का नाम
post-XXफ़ॉर्मेट में रखा गया है (XXpost number है) - उदाहरण: VGA Text Mode post
post-03है, और Hardware Interrupts postpost-07है - build निर्देशों के लिए उस branch का Readme देखें
git worktreeका उपयोग करके branches को subdirectory में checkout किया जा सकता हैgit worktree add code post-10- ऊपर दिया गया command
codeनाम की subdirectory बनाता है और 10वें post ("Heap Allocation") का कोड शामिल करता है
पोस्ट
- इस project का लक्ष्य अलग-अलग blog posts में step-by-step tutorial देना है
- अभी निम्नलिखित posts उपलब्ध हैं
Bare Bones:
- A Freestanding Rust Binary (source code)
- A Minimal Rust Kernel (source code)
- VGA Text Mode (source code)
- Testing (source code)
Interrupts:
- CPU Exceptions (source code)
- Double Faults (source code)
- Hardware Interrupts (source code)
Memory Management:
- Introduction to Paging (source code)
- Paging Implementation (source code)
- Heap Allocation (source code)
- Allocator Designs (source code)
Multitasking:
- Async/Await (source code)
पहले edition के पोस्ट
- मौजूदा blog version दूसरा edition है, और पहला edition अब maintain नहीं किया जाता
- पहले edition के posts अब भी उपयोगी हो सकते हैं
- post list इस प्रकार है
Bare Bones:
- A Minimal x86 Kernel (source code)
- Entering Long Mode (source code)
- Set Up Rust (source code)
- Printing to Screen (source code)
Memory Management:
- Allocating Frames (source code)
- Page Tables (source code)
- Remap the Kernel (source code)
- Kernel Heap (source code)
Exceptions:
- Handling Exceptions (source code)
- Double Faults (source code)
Additional Resources:
- Cross Compile Binutils
- Cross Compile libcore
- Set Up GDB
- Handling Exceptions using Naked Functions
- Catching Exceptions (source code)
- Better Exception Messages (source code)
- Returning from Exceptions (source code)
लाइसेंस
- यह project
blog/contentfolder को छोड़कर इनमें से किसी एक license के तहत उपलब्ध है- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
blog/contentfolder के license के लिएblog/content/README.mdदेखें
योगदान
- जब तक स्पष्ट रूप से कुछ और न कहा गया हो, Apache-2.0 license में परिभाषित अनुसार जानबूझकर submit किया गया हर contribution ऊपर बताए अनुसार dual license के तहत शामिल किया जाएगा
GN⁺ का सार
- यह project Rust के साथ operating system लिखने का तरीका step-by-step tutorial के रूप में समझाता है
- हर post एक स्वतंत्र विषय को code examples के साथ कवर करता है
- operating system development में रुचि रखने वालों के लिए यह बहुत उपयोगी resource है
- आप Rust की safety और performance का उपयोग करके operating system बनाना सीख सकते हैं
- समान तरह की functionality वाले दूसरे projects में
Redox OSशामिल है
1 टिप्पणियां
Hacker News टिप्पणियाँ
कुछ साल पहले दूसरा edition पूरा किया था और बहुत कुछ सीखा
5 साल पहले tutorial पूरा करने के बाद MOROS पर काम शुरू किया था
Rust में OS लिखने की बजाय ऐसा data platform बनाना चाहिए जो DML/DDL चला सके
Rust और OS development पर गहराई से जाने के बाद यह सामग्री मिली
इसी सामग्री की वजह से 2021 में Rust शुरू किया था
OS development पर Phil की लिखी बातें हमेशा पढ़ने लायक होती हैं
Harvey OS टीम अब R9OS project पर काम कर रही है
खास तौर पर original edition की पोस्ट की सिफारिश करता हूँ
अभी Rustconf से लौटा हूँ, और real-time operating systems पर केंद्रित करीब पाँच बड़े OS releases हैं
एक और अच्छा resource है Rust का उपयोग करके RISC-V OS बनाना