Linux Kernel Explorer
(reverser.dev)- Linux kernel कोई एकल process नहीं है, बल्कि पूरे system को बनाने वाली core layer है, जो hardware और software को जोड़ने वाली हमेशा मौजूद रहने वाली संरचना है
- user processes के लिए system calls, interrupts, scheduling को समन्वित करते हुए execution को बनाए रखता है
- kernel virtualization, mapping, isolation, control वाली बहु-स्तरीय संरचना के रूप में काम करता है
- सीखने के लिए
init/main.c,kernel/fork.c,include/linux/sched.h,arch/x86/kernel/entry_64.Sजैसी मुख्य source files प्रस्तुत की गई हैं - kernel की संरचना और भूमिका को समझने के लिए यह बुनियादी learning material के रूप में महत्वपूर्ण है
kernel का मूल स्वभाव
- kernel process नहीं बल्कि स्वयं system है, जो hardware और software को जोड़ने वाली हमेशा मौजूद authoritative layer है
- यह user processes के execution को support करता है और system resources के प्रबंधन में केंद्रीय भूमिका निभाता है
- kernel processes को service देने वाली इकाई के रूप में system call (syscall), interrupt और scheduling का समन्वय करके user tasks को चलाए रखता है
system की layered structure
- kernel virtualized, mapped, isolated, controlled structure से बना होता है
- runtime में कई layers आपस में interact करते हुए system stability और control बनाए रखती हैं
learning files
- kernel की संरचना को समझने के लिए निम्न चार प्रमुख files प्रस्तुत की गई हैं
init/main.ckernel/fork.cinclude/linux/sched.harch/x86/kernel/entry_64.S
concept check questions
- kernel और process के बीच मूल अंतर: B. kernel process नहीं, बल्कि स्वयं system है
- kernel user processes को किस तरह support करता है: B. system calls, interrupts, scheduling का समन्वय करके
- kernel की hierarchical विशेषता: C. virtualized, mapped, isolated, controlled structure
1 टिप्पणियां
Hacker News राय
यह वाकई शानदार प्रोजेक्ट है। इससे Talmud page layout की याद आती है — एक ही पेज में सैकड़ों वर्षों की टीकाएँ परत-दर-परत जमा होती रहती हैं, वह संरचना मुझे हमेशा रोचक लगी है
कोड उस तरह पूरी तरह रैखिक नहीं होता, लेकिन इस Linux Kernel Explorer में भी वैसी ही ‘annotation की परतें’ महसूस होती हैं
बगल में लगे नोट्स का फ़ॉर्मैट खास तौर पर पसंद आया
संबंधित संदर्भ लिंक: Talmud page layout, Talmud layout notes
लगता है मैं कुछ मिस कर रहा हूँ। kernel source को वेब पर explore करना तो बहुत पहले से संभव था — जैसे Elixir Bootlin जैसी साइटें हैं
लेकिन यह कौन-सी अतिरिक्त सुविधाएँ देता है, यह साफ़ नहीं है। Bootlin में search भी है, यहाँ वह दिख नहीं रहा
आज के दौर में कम-से-कम LLM-आधारित code explanation या dependency graph जैसी चीज़ों की उम्मीद थी
GitHub API की rate limit लगने की वजह से file list नहीं खुल रही
जिन्हें यही दिक्कत हो रही है, वे VPN या Cloudflare Wrap से IP बदलकर इसे ठीक कर सकते हैं
डेवलपर अगर GitHub login विकल्प या caching layer जोड़ दे, तो नए users के लिए पहुँचना आसान होगा
मुझे ऐसे tools बहुत पसंद हैं। पहले Red Hat के बनाए एक मिलते-जुलते tool से ब्राज़ील की electronic voting machine के source code का विश्लेषण किया था
उस समय मेरा काम duplicate files और functionality को व्यवस्थित करना था, और वह Motif UI-आधारित desktop app था
यह आइडिया मुझे सच में बहुत पसंद आया। जटिल project code को explore करते समय कहाँ से शुरू करें, यह समझना मुश्किल होता है, और यह tool मुख्य संरचना को जल्दी समझने में मदद करता है
हालांकि एक bug मिला — Chapter 2 में
mm/जैसी directory खोलने पर “Invalid file response” error आता है। लगता है यह directory को file की तरह खोलने की कोशिश कर रहा हैFlorent Revest के काम की भी सराहना करता हूँ
यह Explorer बहुत से developers के लिए वही tool लगता है जिसकी ज़रूरत थी
kernel source इतना विशाल और जटिल है कि कहाँ से शुरू करें, यह समझ नहीं आता, लेकिन यह किसी नक्शे की तरह उसकी संरचना दिखाता है
VFS या modules के connect होने का तरीका भी एक नज़र में दिख जाता है, और API limit या directory error जैसी समस्याएँ होने के बावजूद यह शानदार पहली शुरुआत है
Linux पर काम शुरू करते समय उसने मेरी बहुत मदद की थी, और बाद में Python में दोबारा लिखा गया Elixir और उसका source code भी है
masterpull नहीं कर सकते,grepयाgmakeभी नहीं चला सकते, तो इसका उपयोग क्या है?”Elixir Bootlin पुराना ज़रूर है, लेकिन mobile पर बेहतर काम करता है
यह सच में शानदार दिखता है। इसे बनाने वाले fabiomaia.eu थे
मैं सोच रहा हूँ कि उनसे Python के लिए भी ऐसा tool बनाने को कहूँ
नए engineers को CPython repository की संरचना सिखाने में यह काफ़ी उपयोगी हो सकता है
अचानक जिज्ञासा हुई — kernel code का सबसे हैरान कर देने वाला हिस्सा कौन-सा है?
Chapter 1 की
arch/x86/kernel/entry_64.Sfile नहीं खुल रहीdirectory tree में भी दिखाई नहीं देती
(इस समस्या का ज़िक्र करने वाली एक और comment थी, लेकिन लगता है वह delete हो गई)
arch/x86/entry/entry_64.Sहोना चाहिए