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