উত্তর:
লিনাক্স-ভিত্তিক অপারেটিং সিস্টেমগুলিতে, এটি নেটওয়ার্ক ব্লক ডিভাইস বা ডিভাইস ম্যাপার ডিভাইসগুলির সাহায্যে করা যায়। আপনার প্রাপ্ত ফাইলটি একটি ব্লক ডিভাইস।
সহ nbd
:
ln -s /path/to/first-file file.0
...
ln -s /path/to/last-file file.19
nbd-server -C /dev/null -m 127.0.0.1:12345 file
sudo nbd-client localhost 12345 /dev/nbd0
(সংক্ষিপ্তকরণ হয় /dev/nbd0
)।
ডিভাইস ম্যাপার সহ (ফাইলের আকারগুলি 512 এর একাধিক হতে হবে):
sudo losetup /dev/loop0 file1
sudo losetup /dev/loop1 file2
s0=$(sudo blockdev --getsize /dev/loop0)
s1=$(sudo blockdev --getsize /dev/loop1)
printf '%s\n' "0 $s0 linear /dev/loop0 0" "$s0 $s1 linear /dev/loop1 0" |
sudo dmsetup create mybundle
(সংক্ষিপ্তকরণ হয় /dev/mapper/mybundle
)।
আজ একটি ফিউজ ড্রাইভার লিখেছেন, যদি কেউ ফিউজ সমাধানটিতে আগ্রহী হন (ডিভাইস ম্যাপার পাশাপাশি উপরের এনবিডি-সলিউশনটি নিয়মিত ফাইল নয় ব্লক ডিভাইসগুলি তৈরি করবে - যা ভেঙে যাবে, যদি আপনি ভিডিও সম্পাদনার মাধ্যমে ফলাফলের আউটপুট সরাসরি ব্যবহার করতে চান) সফ্টওয়্যার বা অন্যান্য সরঞ্জাম যা কোনও ব্লক ডিভাইস থেকে সরাসরি পড়ার জন্য প্রস্তুত নয়)
আপনি প্রশ্নের প্রথম বাক্যে এটির উত্তর দিয়েছেন: হ্যাঁ, এটি করা যেতে পারে। তবে আপনাকে কাস্টম ফাইল সিস্টেম ড্রাইভার লিখতে হবে। যদি এটি কোনও ফাইল সিস্টেমের অবজেক্ট বলে মনে করা হয় তবে এটি কার্নেল দ্বারা কিছু স্তরের (যার মধ্যে FUSE অন্তর্ভুক্ত ) পরিচালনা করতে হবে । চালক মান ফাইল সিস্টেম syscalls API- এর জন্য ব্যাকএন্ড উপলব্ধ করার জন্য (হবে stat()
, open()
ইত্যাদি সচেষ্ট সহ)। আপনি এটি পুরোপুরি ব্যবহার করতে পারবেন না ইউজার স্পেসে (কমপক্ষে একঘেয়ে কার্নেলের সাহায্যে নয় - তবে একটি মাইক্রোকারেল দিয়ে আপনাকে এখনও একটি ফাইল সিস্টেম ড্রাইভার সরবরাহ করতে হবে, যদিও নিয়মিত ইউজারস্পেস প্রক্রিয়া হিসাবে চলমান)।