একটি ব্লক ডিভাইস হিসাবে নির্দিষ্ট র‌্যাম মেমরি অঞ্চল সংরক্ষণ করুন (প্রদত্ত সূচনা শারীরিক ঠিকানা সহ)


11

র‌্যাম ডিস্কগুলি সম্পর্কে প্রচুর প্রশ্ন রয়েছে এবং আমি র‌্যামফ এবং টিএমপিএফ সম্পর্কে অবগত রয়েছি যা র‌্যামকে একটি ব্লক ডিভাইস হিসাবে ব্যবহার করতে দেয়। তবে আমার আগ্রহটি একটি ব্লক ডিভাইস হিসাবে একটি স্থির মেমরি অ্যাড্রেস রেঞ্জ ব্যবহারে।

এটি আমার সিস্টেমে উপলব্ধ নন-ভোল্টাইল র‌্যাম ব্যবহারের প্রয়োজনীয়তা থেকে উদ্ভূত হয়। আমার কাছে 6 জিবি র‌্যাম পাওয়া যায় এবং 8 জিবি নন-ভোল্টাইল র‌্যাম উপস্থিত থাকে। / Proc / iomem এর আউটপুট আমাকে নিম্নলিখিত দেয়

100000000-17fffffff: সিস্টেম র‌্যাম

180000000-37fffffff: সংরক্ষিত

এখানে 6 জিবি থেকে 14 জিবি পর্যন্ত অঞ্চলটি অ-উদ্বায়ী র‌্যাম অঞ্চলের সাথে সম্পর্কিত যা E820 BIOS মেমরি মানচিত্রে সংরক্ষিত হিসাবে চিহ্নিত হয়েছে। আমার মূল উদ্দেশ্য হল এই এনভিআরএএমটিকে লিনাক্সের একটি ব্লক ডিভাইস হিসাবে ব্যবহার করা। এটি এনভিআরএএম সিস্টেমগুলি পরীক্ষার জন্য দরকারী। ইতিমধ্যে উপস্থিত এমন কোনও লিনাক্স কমান্ড রয়েছে যা আমাকে এই অঞ্চলটিকে একটি ব্লক ডিভাইস হিসাবে ব্যবহার করার অনুমতি দেবে, বা এর সুবিধার্থে আমার নিজের কার্নেল ডিভাইস ড্রাইভারটি লিখতে হবে?


2
শুধু কৌতূহলী, আপনি কেন এটি করতে চান?
এমটাক

এটি লিনাক্সে নন-ভোল্টাইল র‌্যামের জন্য ডিজাইন করা ফাইল সিস্টেমগুলি পরীক্ষা করার একটি সহজ উপায় সরবরাহ করে।
qstack

উত্তর:


2

আমি ডিভাইস ড্রাইভারগুলিতে বিশেষজ্ঞ নই, তবে আপনার গবেষণা ও উন্নয়নের জন্য এখানে কিছু পয়েন্টার রয়েছে:

  1. যদি মেমরিটিকে "সংরক্ষিত" হিসাবে চিহ্নিত করা হয় তবে ওএস এটি স্পর্শ করতে পারে না; আপনাকে বিআইওএস এটি ওএস-তে উপলব্ধ হিসাবে চিহ্নিত করার একটি উপায় খুঁজে বের করতে হবে, বা এটি নিয়ন্ত্রণ করতে সরাসরি নিম্ন-স্তরের আইওএসটিএল ব্যবহার করতে হবে
  2. যদি লিনাক্স মেমরিটি দেখতে পেত , তবে লিনাক্সকে এটি অন্য কোনও র‌্যামের ব্লক হিসাবে ব্যবহার করতে বাধা দেওয়ার সহজ উপায় আপনার কাছে নেই; একটি প্রচেষ্টা হিসেবে "খারাপ" এই ধরনের র্যাম উপলক্ষে এবং তারপর কার্নেল পরিবর্তন এখনো (এটি একটি বিশেষ ব্যবহার করতে এই সংক্রান্ত কার্নেল ডকুমেন্টেশন চেক করুন দ্বারা চেষ্টা করা যেতে পারে, এটি পরিবর্তিত হয়েছে অনেক শেষবার আমি যখন তা গভীর ক্ষত থেকে এবং এটি নব্য এর একটি দুর্দান্ত গতিতে)
  3. উপরেরটিকে প্রাথমিক (এবং অ-সংজ্ঞাবহ বা পরিপূর্ণ নয়) সম্ভাব্যতা অধ্যয়ন হিসাবে বিবেচনা করে আমি বলব যে আপনার র‌্যামডিস্ক ব্লকডভাইস ড্রাইভারটি লেখার ক্ষেত্রে আপনার ক্ষেত্রে সবচেয়ে বুদ্ধিমান বিকল্প, এবং সম্ভবত আপনাকে এটি লিনাক্স কার্নেল এবং / অথবা দলের সাথে যোগ দিতে হবে perhaps লোকেরা ইতিমধ্যে এটি চেষ্টা করছে ( আপনি যদি এখনও সেখানে পোস্ট না করেন তবে লিনাক্স কার্নেল মেইলিং তালিকাটি এই প্রশ্নের জন্য সম্ভবত আরও ভাল জায়গা )

কিছু অন্যান্য সম্পর্কিত উত্স:


1

প্রবর্তনের আগে tmpfs/ initramfsসেখানে ছিল ramdiskলোড করতে ব্যবহৃত initrdচিত্র, একটি প্রাক সংজ্ঞায়িত সংশোধন আকার ব্লক ডিভাইস, আমি সংলগ্ন মনে করি, অন্তত আগের বাস্তবায়নের উপর।

স্বয়ংক্রিয়ভাবে ব্লক ড্রাইভারের কাছে মেমরি ঠিকানার প্যারামিটার থাকে না, কেবল আকার থাকে, তবে কার্নেলটি একটি পূর্বনির্ধারিত ঠিকানায় (কনফিগারেশন দ্বারা) আরআরডি চিত্রগুলি লোড করতে ব্যবহৃত হত তাই মূল / আরএন কার্নেল কোডে উঁকি দেওয়া সাহায্য করতে পারে (আমি চাই অবাক হোন যদি রামডিস্ক আর ইআরআরডির জন্য সমর্থিত না হয় তবে যেহেতু থ্রিমফস প্রায়, এখন অনেক অনেক বছর, আর কখনও রামডিস্ক ব্যবহার করা হয়নি)।

ড্রাইভার উত্স ড্রাইভার / ব্লক / rd.c ছিল , আমি যদি এখন সঠিকভাবে দেখি তবে ড্রাইভার / ব্লক / বিআরডি

অন্যথায়, রামডিস্কের সন্ধানে আমি এমন একটি বাস্তবায়ন পেয়েছি যা আকর্ষণীয় দেখায়:

র‌্যামে ডিস্ক - ব্লক ড্রাইভারদের সাথে বাজানো

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