6

एंबेडेड डिवाइस पर लिनक्स कर्नेल चलाने के लिए आवश्यक RAM की न्यूनतम राशि क्या है? 80x86 के लिए लिनक्स-0.11 में, कर्नेल डेटा संरचनाओं को लोड करने और वैक्टरों को बाधित करने के लिए आवश्यक न्यूनतम RAM 2MB थी।एंबेडेड डिवाइस पर लिनक्स कर्नेल चलाने के लिए आवश्यक न्यूनतम रैम क्या है?

वर्तमान लिनक्स-3.18 कर्नेल के लिए न्यूनतम आवश्यक RAM कितनी है? x86 और ARM जैसे विभिन्न आर्किटेक्चर में बूटिंग के लिए आवश्यक न्यूनतम रैम के लिए अलग-अलग आवश्यकताएं हैं? कोई इसकी गणना कैसे करता है?

+0

आप क्या हासिल करने की कोशिश कर रहे हैं? जिस डिवाइस पर आप लिनक्स को निचोड़ने की कोशिश कर रहे हैं उसके आधार पर मुझे लगता है कि आप इसे अधिकतर (फ्लैश) रोम में बंद करने में सक्षम हो सकते हैं। – doynax

+0

@doynax: मैं सीमित रैम वाले एम्बेडेड डिवाइस पर लिनक्स पोर्ट करने की कोशिश कर रहा हूं। फ्लैश केवल पढ़ने के लिए है। –

+1

आपका प्रश्न बहुत अस्पष्ट है। यदि आवश्यक नहीं है तो कई लिनक्स कर्नेल सुविधाओं को छोड़ा जा सकता है, और इसके परिणामस्वरूप स्मृति पदचिह्न को कम किया जा सकता है। आवश्यक डिमन्स के प्रकार और अनुप्रयोग स्मृति आवश्यकताओं को भी निर्देशित करेंगे। प्रोसेसर आर्किटेक्चर और निर्देश सेट मेमोरी आवश्यकताएं सेट करते हैं (उदाहरण के लिए एआरएम के लिए कर्नेल को थंब मोड, 16-बिट, कर्नेल आकार को कम करने के निर्देशों में संकलित किया जा सकता है)। – sawdust

उत्तर

9

इसे ~ 600 कीबी तक कम करना संभव है। इंटेल से टॉम जैनुसी द्वारा किए गए काम की जांच करें। Presentation from Tom और Wiki page about the topic

अद्यतन। टॉम ने कर्नेल में विभिन्न उपप्रणालीओं द्वारा स्मृति उपयोग के बारे में दिलचस्प statistics प्रकाशित किया। उन्होंने उस समय शोध किया जब वह परियोजना पर काम कर रहे थे।

+0

मैं 600KiB का सुझाव देने के लिए उन लिंक में से किसी एक में नहीं देख सकता। क्या आप अधिक विशिष्ट हो सकते हैं? क्या रन-टाइम रैम पदचिह्न का कर्नेल छवि आकार है? [यह प्रस्तुति] (http://elinux.org/images/2/2b/Elce11_hart.pdf) प्रत्येक वितरण को 1.6 एमबी तक कम करने के लिए चरणों को कम करने के चरणों को दिखाती है, लेकिन उस बिंदु पर शायद यह इतनी अपंग हो जाती है कि यह शायद ही कभी हो इसके लायक - तो यह बूट करता है तो आप इसके साथ क्या कर सकते हैं !? – Clifford

+0

1.6M सिस्टम का रैम आकार है, कर्नेल के अलावा आपको अन्य चीजों के लिए रैम होना चाहिए, जैसे init और/या खोल। तो, 600KiB कर्नेल का रैम पदचिह्न है। लेकिन ध्यान रखें कि कुछ सामान जो आपको टीसीपी/आईपी, आईआईआरसी जैसे उपयोगकर्ता अंतरिक्ष कार्यक्रमों में संकलित करना है। – 0andriy

+0

[8-बिट यूसी पर लिनक्स] (http://dmitry.gr/index.php?r=05.Projects&proj=07।% 20Linux% 20on% 208bit) –

3

This site पता चलता है:

एक न्यूनतम uClinux विन्यास 4MB रैम से चलाया जा सकता है, हालांकि सिफारिश हम अपने ग्राहकों को दे रहे हैं यह है कि वे राम के कम से कम 16 एमबी की कीमत में डिजाइन चाहिए।

यदि आप एसडीआरएएम का उपयोग कर रहे हैं, तो समस्या उचित मात्रा लागत और उपलब्धता पर 16 एमबी से कम कोई हिस्सा प्राप्त करेगी, तो शायद यह एक गैर-समस्या है? एसआरएएम के लिए हालांकि, यह एक बड़ा और अपेक्षाकृत महंगा हिस्सा है।

eLinux.org में lot of information एम्बेडेड कर्नेल आकार, इसे कैसे निर्धारित किया जाए, और इसे कम करने के तरीके पर lot of information है।

+0

उपरोक्त प्रदान किए गए लिंक से: एक बूट करने योग्य uClinux छवि का आकार एकीकृत के साथ 16 एमबी रैम से चलाने में सक्षम कार्यक्षमता के योग्य initramfs 2-3 एमबी ballpark में होगा। जब यह असम्पीडित होता है तो uClinux कर्नेल का आकार क्या होता है? –

संबंधित मुद्दे