দেবিয়ান লিনাক্স কেন প্রক্রিয়া অনুসারে 128TiB ভার্চুয়াল ঠিকানা স্থানের অনুমতি দেয় তবে মাত্র 64TiB শারীরিক স্মৃতি?


23

আমি কেবল এখানে পড়ি :

  • প্রক্রিয়া অনুসারে 128TiB ভার্চুয়াল ঠিকানার স্থান (2GiB এর পরিবর্তে)
  • 4GiB (বা PAE এক্সটেনশন সহ 64GiB) এর পরিবর্তে 64TiB শারীরিক মেমরি সমর্থন

তা কেন? মানে, শারীরিক স্মৃতি সমর্থন কার্নেল দ্বারা বা বর্তমান হার্ডওয়্যার দ্বারা সীমাবদ্ধ করা হচ্ছে?

আপনি যে শারীরিক মেমরিটি সম্বোধন করতে পারেন তার চেয়ে কেন আপনার দ্বিগুণ ভার্চুয়াল মেমরি স্পেসের প্রয়োজন হবে?


আপনি অদলবদল করতে পারেন।
থরবজর্ন রাভন অ্যান্ডারসন

2
এটি অনেকটা র‌্যাম ...

4
@dalearn - আপনি কি জানেন, যখন আমি প্রথম শিখেছিলাম আপনি 8-বিট মাইক্রো দিন যে তাদের 4096KB থাকতে জন্য ব্যাংক-সুইচড মেমরির সম্প্রসারণ পেতে পারে যে, আমি তাকে বললাম ঠিক একই জিনিস ...
জুলে

উত্তর:


35

এই সীমাগুলি দেবিয়ান বা লিনাক্স থেকে আসে না, তারা হার্ডওয়্যার থেকে আসে। বিভিন্ন আর্কিটেকচার (প্রসেসর এবং মেমরি বাস) এর বিভিন্ন সীমাবদ্ধতা রয়েছে।

বর্তমান x86-64 পিসি প্রসেসরগুলিতে, এমএমইউ 48 ভার্চুয়াল ঠিকানা স্থানের অনুমতি দেয় । এর অর্থ হল যে ঠিকানাটির স্থানটি 256TB এর মধ্যে সীমাবদ্ধ। ব্যবহারকারল্যান্ডের ঠিকানা থেকে কার্নেল ঠিকানাগুলি পৃথক করার জন্য একটি বিট দিয়ে, এটি একটি প্রক্রিয়াটির ঠিকানা স্থানের জন্য 128TB ছেড়ে যায়।

বর্তমান x86-64 প্রসেসরের উপর শারীরিক ঠিকানাগুলি 48 বিট পর্যন্ত ব্যবহার করতে পারে যার অর্থ আপনার 256TB অবধি থাকতে পারে। Amd64 আর্কিটেকচার চালু হওয়ার পর থেকে সীমাটি ক্রমশ বেড়েছে (40 টি বিট থেকে যদি আমি সঠিকভাবে স্মরণ করি)। প্রতিটি ঠিকানার জায়গার জন্য কিছু তারের এবং ডিকোডিং যুক্তি (যা প্রসেসরটিকে আরও ব্যয়বহুল, ধীর এবং গরমতর করে তোলে) ব্যয় করে, তাই হার্ডওয়্যার নির্মাতারা আকারটি কমিয়ে আনার জন্য একটি উত্সাহ রয়েছে।

লিনাক্স কেবল দৈহিক ঠিকানাগুলিকে 2 ^ 46 পর্যন্ত যেতে দেয় (যাতে আপনার কেবলমাত্র 64TB পর্যন্ত থাকতে পারে) কারণ এটি শারীরিক মেমরির সম্পূর্ণরূপে কার্নেল স্পেসে ম্যাপ করতে দেয়। মনে রাখবেন যে ঠিকানার জায়গার 48 বিট রয়েছে; কার্নেল / ব্যবহারকারীর জন্য এক বিট কার্নেল ঠিকানা স্থানের জন্য 47 বিট ফেলে। এর বেশিরভাগ অংশই সরাসরি শারীরিক স্মৃতি সম্বোধন করে এবং অন্য অর্ধেক কার্নেলটিকে যা প্রয়োজন তা ম্যাপ করার অনুমতি দেয়। (লিনাক্স শারীরিক মেমরির সাথে লড়াই করতে পারে যা একই সাথে পুরোপুরি ম্যাপ করা যায় না, তবে এটি অতিরিক্ত জটিলতার পরিচয় দেয়, সুতরাং এটি কেবলমাত্র প্ল্যাটফর্মগুলিতে সম্পন্ন হয়েছে যেখানে পিএই সহ x86-32 এবং এলপিএই সহ আর্মভি 7 রয়েছে।)

এটি ভার্চুয়াল মেমরির জন্য বিভিন্ন কারণে শারীরিক স্মৃতি থেকে বড় হওয়া কার্যকর:

  • এটি কার্নেলটিকে পুরো শারীরিক মেমরির মানচিত্র দেয় এবং ভার্চুয়াল ম্যাপিনগুলির জন্য জায়গা রেখে দেয়।
  • শারীরিক মেমরির ম্যাপিংয়ের পাশাপাশি, অদলবদল, ফাইল এবং ডিভাইস ড্রাইভারের ম্যাপিং রয়েছে।
  • এটা তোলে স্থানে unmapped মেমরির আছে দরকারী: ধরা পাহারা পৃষ্ঠাগুলি উপচে বাফার , এর কারণে বৃহৎ unmapped অঞ্চল ASLR , ইত্যাদি

9
শারীরিক মেমরির 46-বিটের সীমাবদ্ধতা লিনাক্স মেমরি মানচিত্রের সাথে সম্পর্কিত : এটি কার্নেল স্পেসে শারীরিক মেমরির একটি সম্পূর্ণ ম্যাপিং অন্তর্ভুক্ত করে, যার অর্থ শারীরিক মেমরি কেবল উপলব্ধ ঠিকানা স্থানের এক চতুর্থাংশের সাথে সামঞ্জস্য করতে পারে।
স্টিফেন কিট

@ স্টেফেনকিট মন্তব্যটিতে কেউ কি বিস্তারিত বলতে পারবেন? আমি এটি বুঝতে খুব আগ্রহী কিন্তু তিনি উল্লেখ করেছেন যে রেফারেন্সটি পড়ার পরেও আমি তা পাই না;)
gsi-frank

@ gsi-frank সম্পূর্ণ শারীরিক স্মৃতি স্থায়ীভাবে ম্যাপ করা কার্নেলের পক্ষে সুবিধাজনক। সুতরাং একটি 2 ^ 48 ঠিকানার জায়গাতে, 2 user 47 ব্যবহারকারীর ঠিকানাগুলিতে যায়, 2 ^ 46 কার্নেল ঠিকানাগুলিতে যায় এবং 2 ^ 46 শারীরিক মেমরি ঠিকানার জন্য।
গিলস 'অশুভ হওয়া বন্ধ করুন'

@ gsi-frank আপনি যদি ক্লাসিক বই " আপনার নিজের 32-বিট অপারেটিং সিস্টেম বিকাশ " এর অনুলিপি পেতে পারেন তবে লেখক তার নিজের ওএসের জন্য একই রকম সিদ্ধান্ত গ্রহণের কারণ সম্পর্কে যথেষ্ট গভীরতায় চলেছেন (সেই ক্ষেত্রে, 80386 এর 4GiB ভার্চুয়াল অ্যাড্রেস স্পেসটি 2GiB কার্নেল বিভাগে বিভক্ত করা হচ্ছে যাতে 1GiB ফিজিকাল র‌্যাম ম্যাপিং এবং একটি 2GiB ব্যবহারকারী বিভাগ রয়েছে)। ওএস ইন্টার্নালগুলিতে আগ্রহী যে কোনও ব্যক্তির সম্ভবত এটি পড়তে হবে - এটি বোঝার জন্য যথেষ্ট সাধারণের একটি সম্পূর্ণ নকশা সরবরাহ করে তবে দরকারী ওএস কার্নেল হিসাবে যথেষ্ট উন্নত।
জুলে

কার্নেলের 4.13 সংস্করণ, x86-64 (এবং কিছু অন্যান্য আর্কিটেকচার) পাঁচ স্তরের পৃষ্ঠাগুলি দিয়ে তৈরি করা যেতে পারে যা x86-64 এ ঠিকানার স্থানটি শারীরিক র‌্যামের জন্য 52 বিট এবং ভার্চুয়াল (4 পিবি / 128 পাইবি)। নোট করুন যে কার্নেল স্পেসে থাকা মেমরি মানচিত্রটি সুরক্ষা সম্পর্কিত সমস্যাগুলি প্রবর্তন করে যাতে এটি নিকট-ইশ ভবিষ্যতে পরিবর্তনযোগ্য।
স্টিফেন কিট

9

কেন জানি না, তবে আমি সাতটি কারণ নিয়ে ভাবতে পারি কেন শারীরিক স্মৃতির চেয়ে দ্বিগুণ ঠিকানা জায়গাকে সমর্থন করা কার্যকর হবে।

  1. প্রথমটি হ'ল আপনি এমন অ্যাপ্লিকেশনগুলি চালাতে পারেন যা অতিরিক্ত মেমরির প্রয়োজন - এমনকি এটি ডিস্কে অদলবদল হওয়া মানে।
  2. পার্টিশন মেমরি ব্যবহারের জন্য ক্লিনার মেমরি লেআউট। উদাহরণস্বরূপ, কোনও ওএস উচ্চতর সংখ্যাযুক্ত ঠিকানাগুলি গ্রহণ করতে পারে এবং বিচ্ছেদ ক্লিনার করার জন্য অ্যাপ্লিকেশনগুলির জন্য নিম্ন-সংখ্যাযুক্ত ঠিকানাগুলি ছেড়ে যায়।
  3. ঠিকানা স্থান বিন্যাস র্যান্ডমাইজেশন কিছুটা কার্যকর।
  4. সম্পাদনযোগ্য হিসাবে পৃষ্ঠাগুলি চিহ্নিত করার অর্থ বাম স্মৃতি হতে পারে।
  5. মেমরি-ম্যাপযুক্ত I / O
  6. মেমরির বরাদ্দ সহজ: একসাথে একসাথে আরও বড় অংশ বরাদ্দ করতে পারে।
  7. হ্রাস মেমরি খণ্ডিত

1
ধন্যবাদ! 1) এত স্পষ্ট এবং মৌলিক যে প্রশ্নের জন্য আমি বিব্রত বোধ করি;)
gsi-frank

2
(3) সত্যই গুরুত্বপূর্ণ। আপনি প্রকৃতপক্ষে একটি ভার্চুয়াল ঠিকানার স্থান চান যা আপনার যে পরিমাণ মেমরি বরাদ্দ করবে তার চেয়ে বড় মাত্রার অর্ডার দেয় যাতে এলোমেলো অনুমানগুলি প্রায় নিশ্চিতভাবে ফাঁদ পেতে পারে।
আর ..

6

সেগুলি হার্ডওয়্যার সীমাবদ্ধতা। বর্তমান x86_64 / amd64 হার্ডওয়্যার 48-বিট ভার্চুয়াল ঠিকানা এবং বিভিন্ন আকারের (প্রয়োগের উপর নির্ভর করে — যেমন, আমার ওয়ার্কস্টেশন এখানে কেবল 36 বিট সমর্থন করে) শারীরিক ঠিকানা দেয়। লিনাক্স কার্নেলটি ভার্চুয়াল অ্যাড্রেস স্পেসকে অর্ধেক অংশে বিভক্ত করে দেয় (কার্নেলের জন্য অর্ধেক, ব্যবহারকারীক্ষেত্রের জন্য অর্ধেক ব্যবহার করে - যেমন এটি x86 এর মতো)।

সুতরাং আপনি পাবেন:

2⁴⁸ বাইট ÷ 2 = 2⁴⁷ বাইট = 128 টিআইবি

শারীরিক ঠিকানার আকার প্রায়শই ছোট হয় কারণ এটি প্রকৃত শারীরিক। এটি সিপিইউতে / বোর্ডে পিন / প্যাড, ট্রানজিস্টর, সংযোগ ইত্যাদি গ্রহণ করে এবং বোর্ডে ট্রেস লাইন। চিপসেটে সম্ভবত একই। প্রসেসরের কোর বা সকেটের ডিজাইনের জীবনকাল over এই সমস্ত জিনিসের জন্য অর্থ ব্যয় করে এমন এক পরিমাণ র্যামকে সমর্থন করা কোনও অর্থবোধ করে না। (এমনকি প্রত্যেকটিতে 32 টি ডিআইএমএম স্লট এবং 64৪ জিআইবি ডিআইএমএম থাকা সত্ত্বেও, আপনি এখনও কেবল ২ টিআইবিতে রয়েছেন D ডিআইএমএম ক্ষমতা বছরে দ্বিগুণ হলেও আমরা T৪ টিআইবি থেকে ৫ বছর দূরে রয়েছি।

পিটার কর্ডস হিসাবে উল্লেখ করা হয়েছে, লোকেরা এখন মেমরি বাসে 3 ডি এক্সপয়েন্টের মতো অ-উদ্বায়ী স্টোরেজ সংযুক্ত করছে , যা ঠিকানার জায়গার বাইরে চলে যেতে পারে। নতুন প্রসেসরগুলি দৈহিক ঠিকানার স্থানটি 48 বিটে প্রসারিত করেছে; এটি সম্ভব ডেবিয়ান উইকি সবেমাত্র আপডেট করা হয়নি।


মেমোরি বাসের সাথে সরাসরি সংযুক্ত অ-উদ্বায়ী স্টোরেজ (উদাঃ 3 ডি এক্সপয়েন্ট) একটি জিনিস হয়ে উঠছে এবং এটি আগামী কয়েক বছরে শারীরিক ঠিকানার জায়গার চাহিদা বাড়িয়ে তুলতে পারে (যেহেতু এটি ডিআরএএমের চেয়ে কম) এবং এর নৌকা বোঝাই রাখার জন্য এটি দরকারী র্যামের নৌকা বোঝা ব্যবহারের চেয়ে বেশি ক্ষেত্রে)। খুব অ-প্রযুক্তিগত নিবন্ধের জন্য zdnet.com/article/the-non-volatile-memory-revolution দেখুন (বা আরও ভাল স্টাফের জন্য গুগল)। ইন্টেল স্কাইলেক এটির clflushএবং clflushoptনির্দেশাবলীতে এটি সমর্থন করে ।
পিটার কর্ডস

1
আপনি ইতিমধ্যে 96 টি স্লটে 12 টিআইবি অবধি র‌্যাম সহ সিস্টেমগুলি কিনতে পারবেন ( উদাহরণস্বরূপ টায়ানের চার-সকেট এইচপিসি সিস্টেম ), যাতে 64৪ টিআইবি পাঁচ বছরেরও কম দূরে থাকতে পারে। এবং কিছু লোক সেগুলি কিনে তাদের এত বেশি র্যাম দিয়ে ফিট করে ...
স্টিফেন কিট

@ স্টেফেনকিট হুম, এটি ঠিক আছে কারণ DIMM ক্ষমতা দ্বিগুণ হতে 3 বছরের কাছাকাছি সময় নেয়
ডার্বার্ট

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.