17 पॉइंट द्वारा GN⁺ 2024-06-08 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • वेब पर PID 0 के बारे में खोजने पर ज़्यादातर गलत जानकारी मिलती है।
  • Google, Bing, DuckDuckGo और Kagi पर PID 0 खोजने पर सटीक उत्तर ढूंढना मुश्किल था।
  • Wikipedia की गलत जानकारी 16 साल तक फैलती रही, और कई साइटों ने उसे उद्धृत किया।

PID 0 का इतिहास

  • PID 0 scheduling और power management में शामिल है, paging से इसका कोई संबंध नहीं है।
  • PID 0 उस scheduler की भूमिका निभाता है जो CPU core के पास कोई काम न होने पर चलता है।
  • शुरुआती Unix में PID 0 memory management से जुड़े काम करता था, लेकिन आधुनिक Unix में ऐसा नहीं है।

PID 0 की वास्तविक भूमिका

  • PID 0 kernel को शुरू करता है, और उसके बाद CPU core को मैनेज करने की भूमिका निभाता है।
  • Linux kernel में PID 0 को do_idle फ़ंक्शन के रूप में इम्प्लीमेंट किया गया है।
  • FreeBSD जैसे दूसरे kernel में भी यह समान भूमिका निभाता है।

PID 0 को लेकर भ्रम

  • Linux kernel और user space में PID का अर्थ अलग होता है।
  • kernel में task_struct एक thread को दर्शाता है, और PID का मतलब thread ID होता है।
  • user space में PID process को दर्शाता है, और यह thread group ID के समान होता है।

multi-core सिस्टम में PID 0

  • multi-core सिस्टम में हर CPU core के लिए एक idle thread होता है।
  • ये idle thread सभी thread group 0 में शामिल होते हैं।
  • user space में इन्हें PID 0 के रूप में पहचाना जाता है।

निष्कर्ष

  • PID 0 मौजूद है, और यह kernel को शुरू करने वाला thread है।
  • PID 0 शुरुआती kernel initialization का काम करता है और बाद में idle thread में बदल जाता है।
  • PID 0 का memory management से कोई संबंध नहीं है।
  • multi-core सिस्टम में हर core के लिए idle thread होता है, और वे सभी thread group 0 में शामिल होते हैं।

GN⁺ की राय

  • सटीक जानकारी का महत्व: गलत जानकारी लंबे समय तक फैलती रही, जिससे बहुत से लोगों ने उसे सच मान लिया। यह सटीक जानकारी देने के महत्व की फिर याद दिलाता है।
  • kernel की जटिलता: kernel initialization process और scheduling mechanism बेहद जटिल हैं, और इन्हें समझना software engineer के लिए बहुत उपयोगी हो सकता है।
  • PID को लेकर भ्रम: kernel और user space में PID का अर्थ अलग होने के कारण, इसे स्पष्ट रूप से समझना महत्वपूर्ण है।
  • multi-core सिस्टम: आधुनिक multi-core सिस्टम में PID 0 की भूमिका को समझना system performance optimization में मदद कर सकता है।
  • Wikipedia का प्रभाव: यह दिखाता है कि Wikipedia की जानकारी कितनी बड़ी संख्या में वेबसाइटों को प्रभावित करती है। यह सटीक जानकारी को अपडेट करने के महत्व पर ज़ोर देता है।

3 टिप्पणियां

 
thinkpad 2024-07-17

उस पुराने हादसे की याद आ रही है जब उस agent ने kill -9 0 कर दिया था...

 
whizkyu 2024-06-09

दिलचस्प है।

 
GN⁺ 2024-06-08
Hacker News की राय
  • पुरातात्विक नज़रिए से दिलचस्प: "pid 0 [Linux] kernel का हिस्सा है" यह बात kernel debugging के समय उपयोगी है। user space process के नज़रिए से "pid 0 स्वयं को दर्शाता है"।
  • ऑनलाइन अति-आत्मविश्वास: ऑनलाइन बहुत से लोग अपनी जानकारी को लेकर ज़रूरत से ज़्यादा आत्मविश्वास दिखाते हैं। पूरी निश्चितता वाला लहजा सिर्फ विशेषज्ञों को इस्तेमाल करना चाहिए।
  • Windows में PID 0: NT-आधारित Windows में PID 0 "System Idle Process" होता है, जो Linux के समान है। DOS-आधारित Windows में PID 0 नहीं होता, और idle loop VMM32 के अंदर होता है।
  • शैक्षणिक Unix में PID 0: अधिकतर शैक्षणिक Unix में PID 0 memory subsystem (paging) से संबंधित होता है। PID 0 की अवधारणा पर सिर्फ Linux का अधिकार नहीं है।
  • सामान्य ज्ञान की गलतियाँ: "सामान्य ज्ञान" अक्सर गलत होता है। सही तरीका kernel source code को देखना है।
  • PID 0 का तीसरा उपयोग: Linux में getppid के 0 लौटाने का मामला तब होता है जब parent किसी दूसरे PID namespace में हो।
  • अतिरिक्त सामग्री की सिफारिश: अगर आपको शुरुआती kernel boot में रुचि है, तो यह बेहतरीन सामग्री पढ़ने की सिफारिश है। Linux Insides
  • ps -aux कमांड पर सवाल: "ps -aux" कमांड चलाने पर दूसरे users की जानकारी भी दिखाई देती है। क्या यह डिफ़ॉल्ट रूप से private जानकारी नहीं होनी चाहिए?
  • kill 0 का दिलचस्प उपयोग: kill 0 का उपयोग करके time limit के भीतर कमांड चलाकर समाप्त करने वाली script साझा की गई।
  • v4 code में PID 0 का पुन: उपयोग: यह दिलचस्प है कि v4 code pid 0 का फिर से उपयोग करता है। याद है कि 80 के दशक के मध्य में kernel में इस समस्या को हल करना पड़ा था।