কিভাবে / dev / zero তৈরি হয় এবং কিভাবে আমি / dev / একের মত রূপান্তর করতে পারি?


5

আমি পড়া mknod ম্যান পেইজ, যা (যতদূর আমি বলতে পারি) আপনি কীভাবে একটি অক্ষর ডিভাইস তৈরি করতে ব্যবহার করবেন /dev/zero, কিন্তু আমি দেখি না কিভাবে আপনি শূন্য বিটগুলির (অথবা অন্য প্যাটার্ন) অসীম প্রবাহ জোগানোর জন্য এটি পাবেন। যেমন অক্ষর ডিভাইস তৈরি করার পদ্ধতি কি?


তারা কার্নেল প্রয়োগ করা হয়। তাকানো zero_lseek, read_zero, write_zero, mmap_zero মধ্যে drivers/char/mem.c
David Schwartz

ওহ ... তাই আমি কার্নেল পরিবর্তন করতে হবে?
Blacklight Shining

3
অপরিহার্য নয়, এটি আপনি যা করতে চান তা নির্ভর করে। সম্ভবত, আপনি অন্তত একটি মডিউল বাস্তবায়ন করতে হবে।
David Schwartz

কি সম্পর্কে /dev/one?
Blacklight Shining

উত্তর:


3

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


3

mknod ডিভাইস নোড তৈরি করে, কিন্তু VFS ডিভাইস নোডের অ্যাক্সেস সনাক্ত করে এবং পরিচালনা করার জন্য কার্নেলের মধ্যে যথাযথ ড্রাইভারের সাথে সেগুলি পুনরাবৃত্তি করে। সব ডিভাইস নোড, থেকে /dev/null থেকে /dev/sdX থেকে /dev/ttyXX থেকে /dev/videoX এই ভাবে পরিচালনা করা হয়।


0

আপনি শুধু পুনরায় তৈরি করতে চান /dev/zero ক্ষমতা কিন্তু শূন্য / নল ছাড়া অন্য একটি চরিত্র সঙ্গে, আপনি ব্যবহার করতে পারেন tr অন্য কোন শূন্যের সব শূন্য ("o 000") পরিবর্তন করতে।

উদাহরণস্বরূপ, উদাহরণস্বরূপ "এ" এর একটি অবিরাম স্ট্রিম বের করতে, আপনি করতে পারেন:

cat /dev/zero | tr "\000" "\141" | head -c 20
aaaaaaaaaaaaaaaaaaaa

অথবা বিড়ালটিকে ছাড়ুন এবং একটি এম এর মূল্য (1024 * 1024) দিয়ে আউটপুট করুন

head -c 1M /dev/zero |tr "\000" "\141"

"\ 141" হচ্ছে "একটি" চরিত্র।

এই সাইটটি দেখুন http://www.asciitable.com/ ASCII এর একটি দ্রুত সংক্ষিপ্ত পৃষ্ঠার জন্য - অকটাল কোড। এটা আসলে এই ছবিটি এখানে:
enter image description here

(আমি জানি, পুরাতন "সমাধান" প্রশ্ন, কিন্তু আমি এটি বিভিন্ন অক্ষরগুলির একটি অবিরাম প্রবাহ অনুসন্ধান করার সময় খুঁজে পেয়েছি, তাই এটি "কীভাবে / dev / one বা / dev / [different character]" সমস্যাটি তৈরি করতে "সমাধান করে"।)


আমি ডুবো ... অস্তিত্তিক উপর ভিত্তি করে আমি শুধু-চেষ্টা-এটা অধিকার এখন, head | tr >file ওভারহেড বিভিন্ন ডিগ্রী আছে। সিস্টেমের উপর নির্ভর করে, এটি মাত্র এক, দেড়, বা দুই বার পর্যন্ত লাগে head >file
Blacklight Shining

তাই এটা, ট্র, আমি অনুমান একটি workhorse। চেষ্টা head -c 3G ... > /dev/null একটি দ্বিতীয় অধীন গ্রহণ, কিন্তু পাইপ যোগ tr 21 সেকেন্ড সময় নেন। এখনও প্রায় 150 এমবি / সেকেন্ড তাই সম্ভবত হার্ড ড্রাইভ চেয়ে দ্রুত হতে পারে। কিন্তু এটি কাজ করে, এবং কোন অন্তর্নির্মিত / dev / one বা / dev / a ইত্যাদি নেই
Xen2050

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