126 पॉइंट द्वारा GN⁺ 2025-01-09 | 14 टिप्पणियां | WhatsApp पर शेयर करें
  • यह किताब शुरू से चरण-दर-चरण एक छोटा 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 है
  • printf debugging को 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 की शुभकामनाएँ!

किताब की विषयसूची

  1. Intro
  2. Getting Started
  3. RISC-V 101
  4. Overview
  5. Boot
  6. Hello World!
  7. C Standard Library
  8. Kernel Panic
  9. Exception
  10. Memory Allocation
  11. Process
  12. Page Table
  13. Application
  14. User Mode
  15. System Call
  16. Disk I/O
  17. File System
  18. Outro

14 टिप्पणियां

 
princox 2025-01-15

हमेशा operating system जैसी चीज़ों के बारे में सिर्फ़ किताबों में ही पढ़ा था, इसलिए इसे असली code में देख पाना अच्छा लगा।

अच्छी सामग्री साझा करने के लिए धन्यवाद।

 
yuhyun 2025-01-13

बेहतरीन सामग्री के लिए धन्यवाद!!!!!!!!

 
reagea0 2025-01-10
  • यह किताब मूल रूप से जापानी में लिखी गई "Microkernel no sekkei oyobi jissou" किताब के परिशिष्ट के रूप में लिखी गई थी

यह बात सुनकर मुझे बहुत ईर्ष्या होती है। लगता है जापान में विशेषज्ञ किताबें वाकई बहुत अच्छी और बड़ी संख्या में प्रकाशित होती हैं। शायद यह जनसंख्या की वजह से होगा?

 
gurugio 2025-01-11

अनुवादित किताबों को देखें तो लगता है कि तकनीकी तौर पर बहुत गहराई तक जाने वाली किताबें ज़्यादा नहीं हैं, लेकिन सिर्फ़ इतना है कि अलग-अलग क्षेत्रों की किताबें आती हुई दिखती हैं। शायद इसलिए कि वहाँ बाज़ार बड़ा है।

 
romakus 2025-01-10

अच्छी सामग्री के लिए धन्यवाद।

 
skrevolve 2025-01-09

एक बार इसे खुद बनाकर देखें, या कम से कम इतना समझ लें कि
बाद में Linux system कैसे काम करता है यह समझ में आएगा, इसलिए Linux को इस्तेमाल करते समय यह उपयोगी होगा

 
gurugio 2025-01-09

2000 के दशक की शुरुआत तक ऐसे छोटे-छोटे kernel को खुद बनाकर देखने का भी काफ़ी चलन था, इसलिए मैंने भी यह करके देखा था, और उसी की बदौलत मैं कई साल तक Linux kernel development कर सका। हमारे यहाँ भी operating system बनाने पर बहुत-सी किताबें आई थीं, इसलिए अगर आप अच्छी तरह खोजें तो आपको ऐसी किताबें मिल सकती हैं जो इसे और विस्तार से समझाती हैं.
अगर आप इस related field में job switch करने के लिए नहीं, सिर्फ़ मज़े के लिए यह करना चाहते हैं, तो बुरा नहीं है, लेकिन मैं आजकल AI या k8s से जुड़ी study की सिफारिश करूँगा। अभी भी कभी-कभी KLDP जैसी जगहों पर kernel developer बनना चाहने वाली पोस्टें आती हैं, लेकिन comments देखें तो सब बस यही कहते हैं कि विदेश चले जाओ।

 
bbulbum 2025-01-10

शायद इसलिए, क्योंकि हमारे यहाँ kernel-level में निवेश करने वाली कंपनियाँ नहीं हैं..? haha

 
gurugio 2025-01-11

मुझे ठीक से नहीं पता कि यह ज़रूरत न होने की वजह से नहीं किया जाता, या किया नहीं जा सकता, लेकिन ऐसा कुछ है नहीं।

 
coma333 2025-01-09

अच्छे संसाधन के लिए धन्यवाद।

 
tsboard 2025-01-09

ऐसी किताबें ही शायद वैसी चीज़ें होंगी, जिन्हें wuxia novels में बताई जाने वाली martial arts secret manuals जैसा कहा जाता है? haha

 
bbulbum 2025-01-09

बहुत दिलचस्प है। मैं कभी न कभी system programming पढ़ना चाहता था, और लगता है कि शुरुआत के तौर पर OS के काम करने के तरीके को programming के नज़रिए से समझ पाना संभव होगा!

 
GN⁺ 2025-01-09
Hacker News राय
  • लेखक ने एक किताब लिखी है ताकि लोग वीकेंड पर खुद एक operating system बना सकें, और C की जगह Rust या Zig जैसी अपनी पसंदीदा programming language इस्तेमाल कर सकें

    • इसमें UNIX जैसी समानता रखने के बजाय सिर्फ ज़रूरी हिस्से छोड़े गए हैं, और Linux या Windows से इसके अंतर के बारे में सोचना भी दिलचस्प है
    • operating system डिज़ाइन करना अपनी खुद की दुनिया बनाने जैसा है
    • कुछ पैराग्राफ मशीन अनुवाद जैसे लग सकते हैं, और समय हो तो PR भेजने का अनुरोध किया गया है
    • सामग्री Markdown में लिखी गई है
  • "hobby" operating system programming के अनुभव के आधार पर, GDB debugging setup को जितना जल्दी हो सके जोड़ना अच्छा रहेगा

    • QEMU में built-in GDB server है, और target architecture (riscv) के GDB client को network के जरिए QEMU GDB server से जोड़ना चाहिए
  • RISC-V के लिए एक छोटा operating system बनाना शानदार लगता है

    • व्यक्तिगत रूप से, मैंने Nim में x86-64 के लिए kernel लिखा है, और JetBrains plugin विकसित कर रहा हूँ
  • Rust पसंद करने वालों के लिए phil-opp की guide एक मज़ेदार अभ्यास हो सकती है

    • पहली बार कोशिश करने पर मुझे लगभग 5% ही समझ आया था, लेकिन 2-3 साल बाद फिर से कोशिश की और विषय को एक-एक करके देखा
  • मैंने RISC-V के बारे में पढ़ाई शुरू की है, और जो किताब मैं पढ़ रहा हूँ उसमें दिया गया emulator QEMU से अधिक सरल है और उसका license थोड़ा अजीब है

    • यह किसी academic project जैसा लगता है, और जिज्ञासा है कि क्या इसका वास्तव में उपयोग होता है
  • xv6-riscv के साथ तुलना करना दिलचस्प हो सकता है

    • xv6 किताब का HTML संस्करण उपलब्ध कराया गया है
  • low-level चर्चा हमेशा दिलचस्प होती है

    • "RISC-V 101 page" पर एक छोटा typo मिला, जहाँ "ISA" की जगह गलती से "CPU" लिखा गया है
  • operating system बनाने में सबसे मुश्किल हिस्सा debugging है

    • उम्र बढ़ने के साथ मुझे लगता है कि जिन समस्याओं के लिए जटिल विशेषज्ञ ज्ञान की ज़रूरत नहीं होती, उन्हें बार-बार कोशिश करके हल किया जा सकता है
  • दो projects का उल्लेख किया गया है

    • nuta/microkernel-book
    • mit-pdos/xv6-riscv
  • यह अच्छा संसाधन है, वीकेंड पर पढ़ने के लिए सेव कर लिया है

 
mhcoma 2025-01-14

Nim में kernel को...
मज़ेदार होगा।