51 पॉइंट द्वारा GN⁺ 2025-03-22 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • x86 ऑपरेटिंग सिस्टम को सीधे विकसित करने के तरीके पर एक व्यावहारिक गाइड
  • तकनीकी विवरण देते हुए भी कोड उदाहरणों या सैंपल के जरिए बहुत अधिक जानकारी उजागर न करने के उद्देश्य से लिखी गई
  • ऑपरेटिंग सिस्टम के सिद्धांत या किसी विशेष ऑपरेटिंग सिस्टम के काम करने के तरीके की व्याख्या नहीं करती
  • शुरुआती चैप्टर विस्तृत और ठोस रूप से समझाते हैं ताकि कोड लिखने की आदत जल्दी बन सके
  • बाद के चैप्टर अवधारणाओं और आवश्यकताओं का खाका देते हैं, और implementation व design पाठक को स्वयं करने के लिए प्रेरित करते हैं
  • अगर ऑपरेटिंग सिस्टम थ्योरी सीखनी हो तो Andrew Tanenbaum की Modern Operating Systems की सिफारिश

मुख्य चैप्टर सामग्री

  • शुरुआती चैप्टर
    • 2~3 अध्याय: डेवलपमेंट environment सेट करना और virtual machine में OS kernel boot करना → C भाषा में कोड लिखना शुरू
    • 4 अध्याय: स्क्रीन आउटपुट और serial port आउटपुट
    • 5 अध्याय: segmentation
    • 6 अध्याय: interrupt और input handling
  • functional kernel डेवलपमेंट के बाद की प्रक्रिया
    • 7 अध्याय: user mode application support की तैयारी
    • 8~9 अध्याय: paging के जरिए virtual memory सेटअप
    • 10 अध्याय: memory allocation
    • 11 अध्याय: user application चलाना
  • उन्नत विषय
    • 12 अध्याय: file system
    • 13 अध्याय: system call
    • 14 अध्याय: multitasking

किताब की पृष्ठभूमि और डेवलपमेंट प्रक्रिया

  • यह किताब और OS kernel स्वीडन के Royal Institute of Technology के एक उन्नत individual course के माध्यम से विकसित किए गए
  • लेखकों ने पहले OS theory का कोर्स किया था, लेकिन वास्तविक kernel डेवलपमेंट का अनुभव कम था
  • theory को वास्तव में implement करके और उसे गहराई से समझने के लिए नया course शुरू किया गया और यह किताब लिखी गई
  • x86 architecture लंबे समय तक सबसे व्यापक रूप से इस्तेमाल होने वाला hardware architecture रहा है, और इसके लिए बहुत सारी reference material और emulator उपलब्ध हैं
  • hardware details का documentation अक्सर जटिल और समझने में कठिन था

डेवलपमेंट तरीका

  • लगभग 6 हफ्तों तक full-time काम
  • छोटे-छोटे चरणों में implementation और हर चरण पर manual testing → bug के कारणों की पहचान आसान
  • ज़्यादातर कोड pair programming के जरिए लिखा गया → bug कम होने की उम्मीद

लक्षित पाठक

  • जिन पाठकों के पास निम्नलिखित पृष्ठभूमि ज्ञान है, उनके लिए उपयुक्त:
    • UNIX/Linux और system programming से परिचित
    • C भाषा से परिचित
    • computer systems और hexadecimal notation आदि की समझ
  • शुरुआती लोग भी इसे learning tool की तरह इस्तेमाल कर सकते हैं, लेकिन कठिनाई स्तर ऊँचा है

1 टिप्पणियां

 
GN⁺ 2025-03-22
Hacker News राय
  • मुझे osdev बहुत पसंद है। अंतिम लक्ष्य क्या है, यह नहीं पता, लेकिन यह बात बहुत शानदार है कि आप जो चाहें बना सकते हैं

    • जब मैंने बुनियादी x86 interrupts और system calls को काम करते हुए देखा, तब सब कुछ समझ में आने लगा
    • system calls शुरू करते ही लगता है जैसे दुनिया मेरी हो
    • शौक के तौर पर OS के साथ छेड़छाड़ करना मैं ज़ोरदार तरीके से recommend करता हूँ
    • मैंने इसे Rust सीखने के मौके के रूप में इस्तेमाल किया, और उम्मीद से कहीं ज़्यादा हासिल किया
    • अब मैं Rust में काफ़ी सहज हूँ, और ज़्यादातर लोगों से ज़्यादा double और triple faults फेंक सकता हूँ
  • बहुत से लोग अपनी पसंद के alternatives सुझाते हैं, लेकिन मैं अब भी Project Oberon का बड़ा प्रशंसक हूँ

    • हो सकता है यह 2025 की computing के लिए उपयुक्त न हो, लेकिन यह memory-safe system language में लिखा गया एक छोटा graphical OS है
    • इसमें OS development के बारे में सीखने के लिए काफ़ी सामग्री है
    • Project Oberon वेबसाइट
  • इस किताब में osdev tutorials की वही पारंपरिक कमी है

    • x86 details की बहुत व्याख्या है, लेकिन osdev के बारे में लगभग कुछ नहीं
    • x86 details, osdev नहीं हैं
    • यह उन चीज़ों का बेहद छोटा हिस्सा है जिन्हें एक बुनियादी OS को संभालना पड़ता है
  • मेरी पसंदीदा OS किताब अब भी Operating Systems: Three Easy Pieces है

    • यह development से ज़्यादा इस बात पर है कि चीज़ें काम कैसे करती हैं
    • यह HTML और PDF formats में मुफ़्त उपलब्ध है, और इसका printed book भी बिकता है
    • OSTEP वेबसाइट
  • धन्यवाद! यह इस विषय पर एक शानदार resource लग रही है

    • काश मेरे पास उस "OS" का source code अब भी होता जो मैंने किशोरावस्था में बनाया था
    • मैंने MBR boot loader लिखना, protected mode में switch करना, स्क्रीन पर text दिखाना, और keyboard input तक लिख लिया था
    • अगर आप किसी मज़ेदार challenge की तलाश में हैं, तो मैं इसे ज़ोरदार तरीके से recommend करता हूँ
  • यह टिप्पणी 2000s की nostalgia जगा देती है

    • planet-source-code.com नाम की एक वेबसाइट developer community में काफ़ी लोकप्रिय थी
    • वहाँ सदस्यों द्वारा लिखे गए सैकड़ों mini operating systems थे
    • ज़्यादातर में bootloaders C/C++ और assembly में लिखे गए थे, Mingw32 से compile किए जाते थे, और सामान्य floppy disks से boot होते थे
  • किताब अच्छी है। GitHub पर issues देखना अच्छा रहेगा

    • कुछ हिस्सों को ठीक करने की ज़रूरत है
    • आख़िरी commit 10 साल पहले हुआ था
  • काश जापान की operating system development पर लिखी गई दो किताबों का अंग्रेज़ी अनुवाद हो जाता

    • वे graphical environment में windows को चलाने तक मार्गदर्शन करती हैं
    • उनमें से एक 30-day challenge है
    • MikanOS GitHub
    • 30-days Homemade OS GitHub
    • "30-days Homemade OS" को अंग्रेज़ी में translate करने की एक कोशिश हुई थी, लेकिन वह ज़्यादा आगे नहीं बढ़ी
    • os-in-30-days GitHub
    • मुझे नहीं पता कोई ऐसी किताब या article जो अंग्रेज़ी में यहाँ तक पहुँचता हो
    • Fusion का graphical environment chapter अभी पूरा नहीं हुआ है
    • Fusion OS वेबसाइट
  • मैं सोच रहा हूँ कि छोटे लाल OS किताब का manual कहाँ है

  • OS development की बात करें तो games सीखने को मज़ेदार बना देते हैं

    • मैं एक ऐसा game बनाना चाहता था जो computer history की यात्रा के दौरान operating systems सिखाए
    • खिलाड़ी process scheduler और interrupt handler की भूमिका निभाएगा
    • यह बहुत सीमित RAM वाले single-CPU system से शुरू होकर SMP systems तक बढ़ सकता है, और आज के multi-system distributed computing platforms तक पहुँच सकता है