আপনার dmesg
"স্মৃতি আকবি / বিকেবি উপলব্ধ" মানগুলি পড়তে হবে :
এখনই ব্যবহারের জন্য একটি উপলভ্য আছে এবং সিস্টেমের সর্বোচ্চ পৃষ্ঠার ফ্রেম সংখ্যাটি পৃষ্ঠার আকার দ্বারা গুণিত হয় বি is
এটি থেকে arch/x86/mm/init_64.c
:
printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, "
"%ldk absent, %ldk reserved, %ldk data, %ldk init)\n",
nr_free_pages() << (PAGE_SHIFT-10),
max_pfn << (PAGE_SHIFT-10),
codesize >> 10,
absent_pages << (PAGE_SHIFT-10),
reservedpages << (PAGE_SHIFT-10),
datasize >> 10,
initsize >> 10);
nr_free_pages()
কার্নেল দ্বারা পরিচালিত শারীরিক মেমরির পরিমাণ প্রদান করে, বর্তমানে এটি ব্যবহৃত হচ্ছে না। max_pfn
সর্বোচ্চ পৃষ্ঠার ফ্রেম নম্বর ( PAGE_SHIFT
শিফটটি কেবিতে রূপান্তর করে)। সর্বাধিক পৃষ্ঠার ফ্রেম সংখ্যাটি আপনার প্রত্যাশার চেয়ে বেশি (অনেক বেশি) হতে পারে - বিআইওএস দ্বারা করা মেমরি ম্যাপিংয়ে গর্ত থাকতে পারে।
এই গর্তগুলি কতটা নেয় তা absent_pages
ভেরিয়েবল দ্বারা ট্র্যাক করা হয় , হিসাবে প্রদর্শিত হয় kB absent
। এটি "উপলভ্য" আউটপুট এবং আপনার প্রকৃত, ইনস্টল হওয়া র্যামের মধ্যে দ্বিতীয় সংখ্যাটির মধ্যে বেশিরভাগ পার্থক্য ব্যাখ্যা করবে।
আপনার জন্য grep করতে BIOS-e820
মধ্যে dmesg
থেকে "দেখুন" এই ছিদ্র। মেমরি মানচিত্র সেখানে প্রদর্শিত হবে ( dmesg
বুটের পরে আউটপুট শীর্ষে )। আপনার আসল, ব্যবহারযোগ্য র্যাম কী শারীরিক ঠিকানা রয়েছে তা আপনার দেখতে সক্ষম হওয়া উচিত।
(অন্যান্য এক্স 86 কিরক এবং সংরক্ষিত মেমরি অঞ্চলগুলি সম্ভবত বাকীগুলির জন্য অ্যাকাউন্ট করে - আমি সেখানে বিশদটি জানি না))
MemTotal
মধ্যে /proc/meminfo
র্যাম ব্যবহারের জন্য উপলব্ধ নির্দেশ করে। বুট অনুক্রমের শেষে, কার্নেল init
তথ্য আর মুক্ত করে না, তাই /proc/meminfo
বুট অনুক্রমের প্রাথমিক অংশগুলির সময় কার্নেল প্রিন্ট করে তার চেয়ে কিছুটা বেশি হতে পারে reported
( এই প্রদর্শনটির জন্য meminfo
অপ্রত্যক্ষভাবে totalram_pages
ব্যবহার করে x x86_64 এর জন্য, এটি arch/x86/mm/init_64.c
খুব সহজেই গণনা করা হয় free_all_bootmem()
যার মাধ্যমে নিজেই mm/bootmem.c
নন-NUMA কার্নেলের মধ্যে রয়েছে))