এক বছর আগে রেড হ্যাট ঘোষণা করেছিললিনাক্স সিস্টেমে NVIDIA GPU পরিচালনার জন্য একটি নতুন ওপেন সোর্স ড্রাইভারের উপর তাদের কাজের জন্য,নতুন». তার পূর্বসূরী, নুভোর বিপরীতে, নোভা গ্রাফিক্স কার্ডের মধ্যেই ইন্টিগ্রেটেড একটি GSP (GPU সিস্টেম প্রসেসর) মাইক্রোকন্ট্রোলারের কাছে ইনিশিয়ালাইজেশন এবং কন্ট্রোল অপারেশন অর্পণের উপর নির্ভর করে।
আর এখন, কয়েক মাসের মধ্যেই (অন্যান্য নতুন প্রকল্পের বিপরীতে), মনে হচ্ছে ড্রাইভারটি যথেষ্ট পরিপক্কতা অর্জন করেছে যা লিনাক্স 6.15 কার্নেলে একীভূত করার জন্য প্যাচের একটি সেট হিসাবে প্রস্তাব করা যেতে পারে, এটি লিনাক্সে ড্রাইভারের প্রাথমিক সংস্করণ।
নোভা, এটা লিনাক্স কার্নেল মডিউল হিসেবে ডিজাইন করা হয়েছে, যা DRM সাবসিস্টেমের উপর নির্ভর করে ব্যবহারকারীর স্থান থেকে GPU এর সাথে মিথস্ক্রিয়া পরিচালনা করতে. এর বিকাশকে Nouveau-এর একটি বিবর্তন হিসেবে দেখা হয়, যার মূল পার্থক্য হল এটি একচেটিয়াভাবে GSP ফার্মওয়্যার সহ GPU-গুলিকে লক্ষ্য করে তৈরি, যা Turing মাইক্রোআর্কিটেকচারের উপর ভিত্তি করে NVIDIA GeForce RTX 2000 সিরিজের মডেলগুলিকে কভার করে।
নুভোর সাথে পার্থক্য এবং নোভার সুবিধা
নোভা নুভোর কাঠামোগত সমস্যা সমাধানের চেষ্টা করে, যার জন্য মেমরি ম্যানেজমেন্ট (VMM/MMU) এবং কোড লক করার মতো ক্ষেত্রগুলিতে একটি বড় ধরনের সংস্কার প্রয়োজন। Nouveau-এর বিপরীতে, Nova NVIDIA-এর GSP ফার্মওয়্যার ব্যবহার করে GPU প্রারম্ভিককরণ এবং নিয়ন্ত্রণ সহজ করে, কোড জটিলতা হ্রাস করে এবং পুরানো কার্ডগুলি পরিচালনা করার প্রয়োজনীয়তা দূর করে।
নোভা কোড এটি মরচে লেখা আছে, এমন একটি ভাষা যা মেমরি ব্যবস্থাপনায় ত্রুটি কমিয়ে কেবল নিরাপত্তা উন্নত করে না, বরং অন্যান্য ড্রাইভারের বিকাশের জন্য পুনঃব্যবহারযোগ্য স্তর এবং বিমূর্ততা তৈরির অনুমতি দেয়।
প্রকল্পটি এটি বিভিন্ন সমান্তরাল উদ্যোগ দ্বারা সমর্থিত, যেমন মরিচা-ডিভাইস ড্রাইভার তৈরির জন্য, PCI বাস এবং rust-drm এর সাথে মিথস্ক্রিয়ার জন্য rust-pci DRM এবং GEM সাবসিস্টেমের সাথে একীকরণের জন্য। এই সরঞ্জামগুলি অ্যাপল এম১ এবং এম২ জিপিইউ-এর জন্য রাস্ট ড্রাইভার, drm-asahi-এর উন্নয়নেও ব্যবহার করা হচ্ছে, যা রাস্টে লেখা গ্রাফিক্স ড্রাইভারের অবকাঠামোতে একত্রীকরণের ইঙ্গিত দেয়।
ভাষার ব্যবহার এই উন্নয়নে মরিচা পড়া কোনও কাকতালীয় ঘটনা নয়।, যেহেতু রাস্ট এমন প্রক্রিয়া প্রদান করে যা পর্যালোচনা এবং পুনর্নির্মাণকে সহজতর করে, যা প্রকল্পের স্থায়িত্ব বৃদ্ধিতে অবদান রাখে। লিনাক্স কার্নেলে এই ভাষা গ্রহণ একটি বৃহত্তর কৌশলের প্রতি সাড়া দেয় যা মডিউল লেখার আধুনিকীকরণ এবং নতুন অবদানকারীদের জন্য উন্নয়নকে আরও সহজলভ্য করে তোলার চেষ্টা করে।
কার্নেলের সাথে রাস্টকে একীভূত করার জন্য এটিই একমাত্র চলমান প্রচেষ্টা নয়। বর্তমানে এই ভাষায় অন্যান্য ড্রাইভার এবং সিস্টেম তৈরি করা হচ্ছে, যেমন Apple AGX GPU ড্রাইভার, NVMe স্টোরেজ সাপোর্ট, PuzzleFS ফাইল সিস্টেম এবং বিভিন্ন নিরাপত্তা এবং ডিভাইস ব্যবস্থাপনা বাস্তবায়ন। লিনাক্স ইকোসিস্টেমে রাস্টের প্রবণতা ক্রমাগত গতি পাচ্ছে, যা অপারেটিং সিস্টেম কার্নেল ডেভেলপমেন্টে নিরাপত্তা এবং স্থিতিশীলতার ক্ষেত্রে একটি উল্লেখযোগ্য পরিবর্তনের ইঙ্গিত দেয়।
বাস্তবায়ন পর্যায়গুলি
বর্তমানে, নোভা বাস্তবায়নের প্রথম পর্যায়ে রয়েছে, অন্তর্ভুক্ত নোভা-কোর, প্রায় 400 লাইন কোড সহ একটি মডিউল যা GSP ফার্মওয়্যারের সাথে যোগাযোগের জন্য প্রয়োজনীয় বিমূর্ততা স্থাপন করে। নোভা-কোরের পাশাপাশি, NVIDIA ফার্মওয়্যারের সাথে ইন্টিগ্রেশনের জন্য প্রয়োজনীয় লিঙ্কগুলিও যুক্ত করা হয়েছে।
উল্লেখ্য যে, নোভা প্রাথমিকভাবে লিনাক্স 6.14-তে আসার পরিকল্পনা করা হয়েছিল একটি নোভা-কোর মডিউল সহ যার মধ্যে ২৩২টি লাইন কোড রয়েছে, কিন্তু শেষ পর্যন্ত এটি অন্তর্ভুক্ত করা হয়নি কারণ গ্রেগ ক্রোহ-হার্টম্যান কিছু বিবরণ উল্লেখ করেছেন যেটা পালিশ করার দরকার ছিল.
নতুন নিশ্চিতকরণের সাথে যে এটি এখন অন্তর্ভুক্ত করা হবে, এখন কন্ট্রোলার পরবর্তী ধাপে যাবে। যেখানে এটি যোগ করার পরিকল্পনা করা হয়েছে:
- নোভা-ড্রাম: ব্যবহারকারীর স্থান থেকে GPU এর সাথে মিথস্ক্রিয়া পরিচালনা করার জন্য একটি DRM (ডাইরেক্ট রেন্ডারিং ম্যানেজার) ড্রাইভার।
- vGPU ম্যানেজার সহ VFIO: ভার্চুয়ালাইজেশন পরিবেশে NVIDIA ভার্চুয়াল GPU ব্যবহারের অনুমতি দেবে।
পরিশেষে, এটা স্পষ্ট করে বলা গুরুত্বপূর্ণ যে নোভা ইবর্তমান অবস্থায়, এটি একটি কার্যকরী নিয়ামক নয় এবং যে প্যাচ পাঠানো হয়েছে এগুলি কেবল নিয়ামকের বিকাশ শুরু করার ভিত্তি, অর্থাৎ, এটিই কোড যা ভবিষ্যতের উন্নয়নের ভিত্তি স্থাপন করবে।