मैं एक कस्टम initramfs की स्थापना पर एक ट्यूटोरियल से गुजर रहा था जहाँ यह बताता है:
केवल एक चीज जो गायब है / init, रूट initramfs की निष्पादन योग्य है जिसे कर्नेल द्वारा लोड किए जाने के बाद निष्पादित किया जाता है। क्योंकि sys-apps / busybox में पूरी तरह कार्यात्मक शेल शामिल है, इसका मतलब है कि आप अपने / init बाइनरी को एक साधारण शेल स्क्रिप्ट के रूप में लिख सकते हैं (इसके बजाय यह असेंबलर या सी में लिखा गया एक जटिल एप्लिकेशन जिसे आप को संकलित करना है)।
और एक शेल स्क्रिप्ट के रूप में init का एक उदाहरण देता है जो इसके साथ शुरू होता है #!/bin/busybox sh
अब तक, मैं इस धारणा के तहत था कि यह मुख्य प्रक्रिया है जो लॉन्च की गई है और यह कि अन्य सभी उपयोगकर्ता अंतरिक्ष प्रक्रिया अंततः इनिट के बच्चे हैं। हालांकि, दिए गए उदाहरण में, पहली प्रक्रिया वास्तव में है bin/busybox/ sh
, जिसमें से बाद में इनवॉइस पैदा की जाती है।
क्या यह सही इंटरपर्टेशन है? यदि मैं, उदाहरण के लिए, उस बिंदु पर उपलब्ध दुभाषिया उपलब्ध है, तो मैं एक अजगर स्क्रिप्ट आदि के रूप में इनिट लिख सकता हूं?
/
पतली हवा में गायब नहीं होता है - यह ऊपर चढ़ाया जाता है (हालांकि आमतौर पर इसकी सामग्री सभी को नष्ट कर दी जाती है इससे पहले कि यह मेमोरी को बचाने के लिए है) । यह अब भी है ।switch_root
syscall करता हैswitchroot
- जो कर्नेल देवता प्रदान करता है जब उन्होंने बूट प्रक्रिया को कर्नेल 2.6 में बदल दिया था। यह कर्नेल है जो जादू करता है।