মেটা-উত্তর: লিনাক্স কার্নেলের সাথে ঘটে যাওয়া সমস্ত কাঁচামাল lkML (লিনাক্স কার্নেল মেলিং তালিকা) দিয়ে যায় । ব্যাখ্যামূলক সংক্ষিপ্তসারগুলির জন্য, পড়ুন বা অনুসন্ধান করুন lwn (লিনাক্স সাপ্তাহিক সংবাদ) ।
উত্তর: থেকে ioctl () এর নতুন উপায় দ্বারা জনাথন Corbet :
ioctl()
কার্নেলের অবশিষ্ট অংশগুলির মধ্যে একটি যা বিগ কার্নেল লক (বিকেএল) এর অধীনে চলে। অতীতে, ioctl()
বিকেএল এর ব্যবহার দীর্ঘসম্পর্কিত পদ্ধতিগুলির সাথে সম্পর্কযুক্ত প্রক্রিয়াগুলির জন্য দীর্ঘ বিলম্ব তৈরি করতে সক্ষম করেছে।
যে প্যাচটি প্রবর্তিত হয়েছিল unlocked_ioctl
এবং compat_ioctl
এটি 2.6.11 এ ব্যাখ্যা করেছে। অপসারণের ioctl
ক্ষেত্র 2.6.36 মধ্যে, অনেক পরে ঘটেছে।
ব্যাখ্যা: যখন ioctl
মৃত্যুদন্ড কার্যকর করা হয়েছিল, তখন এটি বিগ কার্নেল লক (বিকেএল) নিয়েছিল , সুতরাং অন্য কোনও কিছুই একই সময়ে কার্যকর করতে পারেনি। এটি একটি মাল্টিপ্রসেসর মেশিনে খুব খারাপ, তাই বিকেএল থেকে মুক্তি পাওয়ার জন্য একটি বড় চেষ্টা করা হয়েছিল। প্রথম, unlocked_ioctl
পরিচয় করিয়ে দেওয়া হয়েছিল। এটি প্রতিটি চালক লেখককে পরিবর্তে কোন লকটি ব্যবহার করতে হবে তা চয়ন করতে দেয়। এটি কঠিন হতে পারে, সুতরাং পরিবর্তনের একটি সময়কাল ছিল যার মধ্যে পুরানো ড্রাইভাররা এখনও কাজ করে (ব্যবহার করে ioctl
) তবে নতুন ড্রাইভারগুলি উন্নত ইন্টারফেস ( unlocked_ioctl
) ব্যবহার করতে পারে । শেষ পর্যন্ত সমস্ত ড্রাইভার রূপান্তরিত হয়েছিল এবং ioctl
সরানো যেতে পারে।
compat_ioctl
এটি একই সাথে যুক্ত হওয়া সত্ত্বেও প্রকৃতপক্ষে সম্পর্কিত নয়। এর উদ্দেশ্য হ'ল 32-বিট ব্যবহারকারীল্যান্ড প্রোগ্রামগুলিকে ioctl
64-বিট কার্নেলে কল করার অনুমতি দেওয়া । সর্বশেষ যুক্তিটির অর্থ ioctl
ড্রাইভারের উপর নির্ভর করে, তাই ড্রাইভার-স্বাধীন রূপান্তর করার কোনও উপায় নেই।
unlocked_ioctl
ঘটে? কোনও ফাংশন পয়েন্টার ফাইল প্রতি ব্যবহৃত হয় (এই ক্ষেত্রে কstruct file
) মনে হয় আমি সম্ভবত কাছাকাছি থাকতে পারি।unlocked_ioctl
ড্রাইভার আরম্ভের পরে অক্ষর ফাইলগুলির জন্য নিবন্ধিত কিmknod
?