https://dvdhrm.wordpress.com/2014/06/10/memfd_create2/
তাত্ত্বিকভাবে, আপনি
memfd_create()
নতুন সাইস্কেলগুলি প্রবর্তন না করে [[ ] আচরণ অর্জন করতে পারেন , এর মতো:
int fd = open("/tmp", O_RDWR | O_TMPFILE | O_EXCL, S_IRWXU);
(দ্রষ্টব্য, এখানে আরও একটি tmpfs বহনযোগ্য গ্যারান্টি, আমরা " /dev/shm
" এর পরিবর্তে " " ব্যবহার করতে পারি /tmp
)।
অতএব, সবচেয়ে গুরুত্বপূর্ণ প্রশ্ন হ'ল কেন আমাদের তৃতীয় পথের দরকার?
[...]
- ব্যাকিং-মেমোরিটি সেই প্রক্রিয়া হিসাবে গণ্য হয় যা ফাইলটির মালিক এবং মাউন্ট-কোটার সাপেক্ষে নয়।
Sentence আমি কি এই বাক্যটির প্রথম অংশটির উপর নির্ভর করতে পারি না ভেবে ঠিকই আছি?
Memfd_create () কোড আক্ষরিক একটি "হিসাবে প্রয়োগ করা হয় [এক] tmpfs মধ্যে লিঙ্কমুক্ত ফাইল জীবন যাপন যেটি কার্ণেল অভ্যন্তরীণ হওয়া আবশ্যক "। কোডটি সনাক্ত করে, আমি বুঝতে পেরেছি এটি এলএসএম চেকগুলি প্রয়োগ না করার ক্ষেত্রে পৃথক, ব্লগ পোস্টটি ব্যাখ্যা করার সাথে সাথে "সিলগুলি" সমর্থন করার জন্য মেমফিডগুলিও তৈরি করা হয়েছে। যাইহোক, আমি অত্যন্ত সন্দেহপ্রবণ যে memfds হয় আছি হিসাব নীতিগতভাবে একটি tmpfile ভিন্নভাবে।
বিশেষত, যখন ওওএম-হত্যাকারী নক করে আসে, তখন আমি মনে করি না যে এটি স্মৃতিচারণকারীদের দ্বারা স্মৃত মেমরির জন্য দায়বদ্ধ হবে। এটি মোট র্যামের 50% পর্যন্ত হতে পারে - tmpfs এর জন্য আকার = বিকল্পের মান । কার্নেল অভ্যন্তরীণ tmpfs এর জন্য আলাদা মান নির্ধারণ করে না, সুতরাং এটি 50% এর ডিফল্ট আকার ব্যবহার করবে।
সুতরাং আমি মনে করি আমরা সাধারণত এমন প্রক্রিয়াগুলি আশা করতে পারি যা একটি বৃহত মেমফিড ধারণ করে তবে অন্য কোনও উল্লেখযোগ্য মেমরি বরাদ্দ, ওওএম-নিহত হবে না। এটা কি ঠিক?