1,000 लाइनों में Operating System बनाना
(operating-system-in-1000-lines.vercel.app)- यह किताब शुरू से चरण-दर-चरण एक छोटा operating system बनाने का तरीका समझाती है
- operating system (OS) या kernel development सुनकर डर लग सकता है, लेकिन OS की बुनियादी सुविधाएँ (खासकर kernel) हैरान करने वाली हद तक सरल होती हैं
- Linux भी शुरुआत में सिर्फ 8,413 लाइनों के कोड से शुरू हुआ था, और आज का Linux kernel भले बहुत बड़ा हो, इसकी शुरुआत भी एक hobby project जैसी छोटी codebase से हुई थी
शुरुआत करना
- इसमें basic context switching, paging, user mode, command-line shell, disk device driver, और file read/write operations को C भाषा में implement किया जाएगा
- यह सब 1,000 लाइनों के कोड में संभव है
- अपना OS खुद बनाने में सबसे कठिन हिस्सा debugging है
printfdebugging को implement करने से पहले उसका इस्तेमाल भी नहीं किया जा सकता, और आपको कई ऐसी debugging techniques और skills सीखनी होंगी जिनकी application development में जरूरत नहीं पड़ी होगी- खासकर जब आप "शुरुआत से" शुरू करते हैं, तब boot process और paging जैसे कठिन हिस्सों का सामना करना पड़ता है
- लेकिन चिंता मत कीजिए! OS debugging के तरीके भी सीखेंगे
- debugging जितनी कठिन होती है, सफलता मिलने पर संतोष भी उतना ही बड़ा होता है
- आइए, OS development की इस रोमांचक दुनिया में कदम रखें!
अन्य जानकारी
- implementation examples GitHub से डाउनलोड किए जा सकते हैं।
- यह किताब CC BY 4.0 लाइसेंस के तहत उपलब्ध है, और implementation examples तथा source code MIT लाइसेंस के तहत हैं
- आपको C भाषा और UNIX-जैसे environment की जानकारी होनी चाहिए; अगर आप
gcc hello.c && ./a.outचला सकते हैं, तो आप तैयार हैं - यह किताब मूल रूप से जापानी में लिखी गई "माइक्रोकर्नेल का डिज़ाइन और इम्प्लीमेंटेशन" किताब के appendix के रूप में लिखी गई थी
- आनंददायक OS hacking की शुभकामनाएँ!
किताब की विषयसूची
- Intro
- Getting Started
- RISC-V 101
- Overview
- Boot
- Hello World!
- C Standard Library
- Kernel Panic
- Exception
- Memory Allocation
- Process
- Page Table
- Application
- User Mode
- System Call
- Disk I/O
- File System
- Outro
14 टिप्पणियां
हमेशा operating system जैसी चीज़ों के बारे में सिर्फ़ किताबों में ही पढ़ा था, इसलिए इसे असली code में देख पाना अच्छा लगा।
अच्छी सामग्री साझा करने के लिए धन्यवाद।
बेहतरीन सामग्री के लिए धन्यवाद!!!!!!!!
यह बात सुनकर मुझे बहुत ईर्ष्या होती है। लगता है जापान में विशेषज्ञ किताबें वाकई बहुत अच्छी और बड़ी संख्या में प्रकाशित होती हैं। शायद यह जनसंख्या की वजह से होगा?
अनुवादित किताबों को देखें तो लगता है कि तकनीकी तौर पर बहुत गहराई तक जाने वाली किताबें ज़्यादा नहीं हैं, लेकिन सिर्फ़ इतना है कि अलग-अलग क्षेत्रों की किताबें आती हुई दिखती हैं। शायद इसलिए कि वहाँ बाज़ार बड़ा है।
अच्छी सामग्री के लिए धन्यवाद।
एक बार इसे खुद बनाकर देखें, या कम से कम इतना समझ लें कि
बाद में Linux system कैसे काम करता है यह समझ में आएगा, इसलिए Linux को इस्तेमाल करते समय यह उपयोगी होगा
2000 के दशक की शुरुआत तक ऐसे छोटे-छोटे kernel को खुद बनाकर देखने का भी काफ़ी चलन था, इसलिए मैंने भी यह करके देखा था, और उसी की बदौलत मैं कई साल तक Linux kernel development कर सका। हमारे यहाँ भी operating system बनाने पर बहुत-सी किताबें आई थीं, इसलिए अगर आप अच्छी तरह खोजें तो आपको ऐसी किताबें मिल सकती हैं जो इसे और विस्तार से समझाती हैं.
अगर आप इस related field में job switch करने के लिए नहीं, सिर्फ़ मज़े के लिए यह करना चाहते हैं, तो बुरा नहीं है, लेकिन मैं आजकल AI या k8s से जुड़ी study की सिफारिश करूँगा। अभी भी कभी-कभी KLDP जैसी जगहों पर kernel developer बनना चाहने वाली पोस्टें आती हैं, लेकिन comments देखें तो सब बस यही कहते हैं कि विदेश चले जाओ।
शायद इसलिए, क्योंकि हमारे यहाँ kernel-level में निवेश करने वाली कंपनियाँ नहीं हैं..? haha
मुझे ठीक से नहीं पता कि यह ज़रूरत न होने की वजह से नहीं किया जाता, या किया नहीं जा सकता, लेकिन ऐसा कुछ है नहीं।
अच्छे संसाधन के लिए धन्यवाद।
ऐसी किताबें ही शायद वैसी चीज़ें होंगी, जिन्हें wuxia novels में बताई जाने वाली martial arts secret manuals जैसा कहा जाता है? haha
बहुत दिलचस्प है। मैं कभी न कभी system programming पढ़ना चाहता था, और लगता है कि शुरुआत के तौर पर OS के काम करने के तरीके को programming के नज़रिए से समझ पाना संभव होगा!
Hacker News राय
लेखक ने एक किताब लिखी है ताकि लोग वीकेंड पर खुद एक operating system बना सकें, और C की जगह Rust या Zig जैसी अपनी पसंदीदा programming language इस्तेमाल कर सकें
"hobby" operating system programming के अनुभव के आधार पर, GDB debugging setup को जितना जल्दी हो सके जोड़ना अच्छा रहेगा
RISC-V के लिए एक छोटा operating system बनाना शानदार लगता है
Rust पसंद करने वालों के लिए phil-opp की guide एक मज़ेदार अभ्यास हो सकती है
मैंने RISC-V के बारे में पढ़ाई शुरू की है, और जो किताब मैं पढ़ रहा हूँ उसमें दिया गया emulator QEMU से अधिक सरल है और उसका license थोड़ा अजीब है
xv6-riscv के साथ तुलना करना दिलचस्प हो सकता है
low-level चर्चा हमेशा दिलचस्प होती है
operating system बनाने में सबसे मुश्किल हिस्सा debugging है
दो projects का उल्लेख किया गया है
यह अच्छा संसाधन है, वीकेंड पर पढ़ने के लिए सेव कर लिया है
Nim में kernel को...
मज़ेदार होगा।