অনেক ডিভাইসে, প্রধান অপারেশনগুলি হ'ল কম্পিউটার থেকে পেরিফেরিয়ালে বাইট প্রেরণ করা বা কম্পিউটারে পেরিফেরিয়াল থেকে বাইট গ্রহণ করা। এই জাতীয় ডিভাইসগুলি পাইপের সাথে সমান এবং অক্ষর ডিভাইসের পাশাপাশি কাজ করে । যে ক্রিয়াকলাপগুলি পড়ছে না এবং লিখন করছে না (যেমন সিরিয়াল লাইনে ফ্লো নিয়ন্ত্রণ), ডিভাইসটি আইওএসটিএল নামক অ্যাড-হক কমান্ড সরবরাহ করে ।
কিছু ডিভাইসগুলি নিয়মিত ফাইলগুলির মতো হয়: সেগুলি একটি সীমাবদ্ধ বাইট দ্বারা তৈরি হয় এবং আপনি একটি নির্দিষ্ট অবস্থানে যা লেখেন তা পরে একই অবস্থান থেকে পড়তে পারে। এই ডিভাইসগুলিকে ব্লক ডিভাইস বলা হয় ।
নেটওয়ার্ক ইন্টারফেস আরও জটিল: তারা যা পড়ে এবং লিখেন তা বাইট নয় প্যাকেট। যদিও এর সাথে সাধারণ ইন্টারফেসটি ব্যবহার করা সম্ভব হবে read
এবং write
এটি বিশ্রী হবে: সম্ভবত প্রতিটি কল write
একটি প্যাকেট প্রেরণ করবে এবং প্রতিটি কল read
একটি প্যাকেট গ্রহণ করবে (এবং যদি প্যাকেটের মানানসই বাফার খুব ছোট হয়, প্যাকেটটি নষ্ট হয়ে যাবে)।
নেটওয়ার্ক ইন্টারফেস কেবল সরবরাহকারী ডিভাইস হিসাবে থাকতে পারে ioctl
। আসলে, কিছু ইউনিক্স রূপগুলি এটি করে তবে লিনাক্স নয়। এই পদ্ধতির কিছু সুবিধা রয়েছে; উদাহরণস্বরূপ, লিনাক্সে, নেটওয়ার্ক ইন্টারফেসগুলি ইউদেবকে উপার্জন করতে পারে । তবে সুবিধাগুলি সীমিত, যার কারণে এটি করা হয়নি।
বেশিরভাগ নেটওয়ার্ক-সম্পর্কিত অ্যাপ্লিকেশন পৃথক নেটওয়ার্ক ইন্টারফেসের বিষয়ে চিন্তা করে না, তারা উচ্চ স্তরে কাজ করে। উদাহরণস্বরূপ, একটি ওয়েব ব্রাউজার টিসিপি সংযোগ তৈরি করতে চায় এবং একটি ওয়েব সার্ভার টিসিপি সংযোগগুলি শুনতে চায়। এই উদ্দেশ্যে, দরকারী কি হ'ল উচ্চ-স্তরের নেটওয়ার্ক প্রোটোকলের ডিভাইসগুলি, যেমন eg
{ echo $'GET http://www.google.com/ HTTP/1.0\r';
echo $'Host: www.google.com\r';
echo $'\r' >&0; cat; } <>/dev/tcp/www.google.com/80
আসলে ksh এবং bash টিসিপি এবং ইউডিপি ক্লায়েন্টদের জন্য এই জাতীয় ইন্টারফেস সরবরাহ করে। তবে সাধারণভাবে, ফাইল-অ্যাক্সেসিং অ্যাপ্লিকেশনগুলির চেয়ে নেটওয়ার্ক অ্যাপ্লিকেশনগুলি আরও জটিল। বেশিরভাগ ডেটা এক্সচেঞ্জগুলি একই সাথে কলগুলি সহ পরিচালিত হয় read
এবং write
সংযোগ স্থাপনের জন্য কেবল একটি ফাইলের নামের চেয়ে আরও বেশি তথ্য প্রয়োজন। উদাহরণস্বরূপ, টিসিপি সংযোগগুলির জন্য শোনার জন্য দুটি পদক্ষেপ নেওয়া হয়: একটি সার্ভার যখন শুনতে শুরু করে তখন সঞ্চালন করা হয় এবং প্রতিবার ক্লায়েন্ট সংযুক্ত হওয়ার পরে একটি সম্পাদনা করা হয়। এ জাতীয় অতিরিক্ত পদক্ষেপগুলি ফাইল এপিআই-তে ভাল মানায় না, এটিই মূল কারণ যা নেটওয়ার্কিংয়ের নিজস্ব এপিআই।
ডিভাইসের অন্য একটি ক্লাসের /dev
লিনাক্সে সাধারণত প্রবেশিকা থাকে না (তবে কিছু অন্যান্য ইউনিক্স ভেরিয়েন্টে থাকে) হ'ল ভিডিও অ্যাডাপ্টার। নীতিগতভাবে, সাধারণ ভিডিও অ্যাডাপ্টারগুলি ফ্রেমবফার ডিভাইস হিসাবে প্রকাশিত হতে পারে , যা প্রতিটি পিক্সেলের রঙকে উপস্থাপনকারী ব্লক দ্বারা নির্মিত ব্লক ডিভাইস হতে পারে। ত্বরণযুক্ত ভিডিও অ্যাডাপ্টারগুলিকে অক্ষর ডিভাইস হিসাবে উপস্থাপন করা যেতে পারে যেখানে অ্যাপ্লিকেশনগুলি আদেশ পাঠায়। এখানে, ডিভাইস ইন্টারফেসের অপূর্ণতা হ'ল এটি ধীর গতির: প্রদর্শনকারী অ্যাপ্লিকেশনটির (অনুশীলনে, একটি এক্স সার্ভার) যখনই কিছু প্রদর্শিত হবে তখন কার্নেল কল করা দরকার। এর পরিবর্তে যা ঘটে তা হ'ল এক্স সার্ভারটি বেশিরভাগই সরাসরি ভিডিও অ্যাডাপ্টারের স্মৃতিতে লিখে দেয় কারণ এটি দ্রুত।