- ftape driver 1990 के दशक के backup tape (QIC-80) से डेटा रिकवर करने के लिए Linux का एकमात्र open source kernel driver है
- लेकिन इस driver का maintenance 2000 के बाद बंद हो गया, इसलिए इसे केवल पुराने Linux environments में ही इस्तेमाल किया जा सकता था
- Claude Code का उपयोग करके पुराने source code को आधुनिक Linux kernel के अनुसार refactor किया गया और इसे एक standalone kernel module में सफलतापूर्वक बदला गया
- इस प्रक्रिया में Claude ने अपने आप पुराने functions और structs को modern API में बदला, जबकि user ने output results को manually analyze करके कुछ configuration errors ठीक किए
- AI coding agent के उपयोग के अनुभव से programmer की क्षमता बढ़ाने और नई technologies व frameworks में तेज़ी से onboarding करने के बारे में insight मिली
पृष्ठभूमि: पुराने backup tapes की recovery और ftape driver
- QIC-80 जैसे tape cartridges से डेटा रिकवर करना लेखक के शौकों में से एक है
- इन tapes के लिए आमतौर पर floppy controller से जुड़े special tape drives की ज़रूरत होती है
- इन drives का उपयोग मुख्यतः 1990 के दशक में छोटे व्यवसायों या व्यक्तिगत users ने backup के लिए किया था
- floppy controller का उपयोग करने वाला यह तरीका अलग SCSI adapter के बिना सस्ते में लागू किया जा सकता था, लेकिन इसमें speed limit (500Kbps) और non-standard protocol जैसी कई कमियां थीं
- इन tape devices से communicate करने के लिए Linux में ftape kernel driver अनिवार्य है
- क्योंकि केवल ftape के जरिए ही शुद्ध raw binary data पढ़ा जा सकता है, इसलिए recovery के लिए यह ज़रूरी है
- लेकिन ftape driver का लगभग 2000 के बाद maintenance नहीं हुआ, इसलिए यह आधुनिक Linux kernel पर इस्तेमाल नहीं किया जा सकता था
- इस वजह से हर बार डेटा रिकवर करते समय पुराने Linux (जैसे CentOS 3.5) को सीधे boot करना पड़ता था
Claude Code के साथ kernel driver का modernization शुरू करना
- Claude Code से repository का विवरण देकर कहा गया: "driver को modernize करो ताकि यह latest kernel पर build हो सके"
- Claude ने मौजूदा kernel API और structure के अनुसार पुराने functions और structs को ढूंढकर बदला
- कई बार feedback और manual correction के बाद, error के बिना compile होने वाला driver code तैयार हो गया
- शुरुआती code केवल पूरे kernel source tree के भीतर ही build हो सकता था, लेकिन अतिरिक्त request पर Claude ने standalone external module build system भी अपने आप बना दिया
- इससे kernel module को अलग .ko file के रूप में बनाया जा सका और असली hardware connection के साथ testing शुरू हुई
समस्या समाधान की प्रक्रिया
- kernel module सही तरह load हो गया, लेकिन drive detection और communication में समस्या आई
- क्योंकि कुछ कामों के लिए sudo permission चाहिए थी, Claude इन्हें खुद बार-बार चला नहीं सकता था; इसलिए dmesg logs manually देकर समस्या को trace किया गया
- Claude ने logs और पहले के सफल मामलों की तुलना करके default I/O port address के unset होने और parameter initialization से जुड़ा bug ढूंढ निकाला
- default value -1 से 0xffff में बदल जाने के कारण detection fail हो रही थी; सही address फिर से सेट करके समस्या हल हुई
- अंततः module सही तरह load हुआ और test tape का data dump सफलतापूर्वक किया गया
AI coding agent के साथ collaboration से मिले संकेत
- Claude Code के साथ interaction "junior developer के साथ collaboration" जैसा लगा, मानो किसी असली engineer के साथ काम हो रहा हो
- user को architecture decisions, problem discovery और direction को सक्रिय रूप से lead करना पड़ता है
- domain-specific keywords और ठोस requests देने पर यह और प्रभावी होता है
- AI agent की productivity सही प्रकार के काम मिलने पर बहुत तेजी से बढ़ती है, इसलिए इसकी सीमाओं और strengths को समझना ज़रूरी है
- AI ने लेखक की क्षमता को कई गुना बढ़ा दिया। जो काम हाथ से करने पर कई हफ्ते लेता, वह सामान्य बातचीत और feedback के जरिए कुछ ही दिनों में पूरा हो गया
- इस प्रक्रिया में modern kernel development practices, x86 architecture, नए command-line tools जैसी वास्तव में उपयोगी skills भी सीखने को मिलीं
- यह भी ज़ोर देकर कहा गया कि नए frameworks (Rust, Flutter आदि) के लिए initial onboarding और adaptation की प्रक्रिया को यह काफी तेज़ कर देता है
निष्कर्ष: ftape फिर से जीवित
- 25 साल बाद ftape अब फिर से modern Linux पर build और उपयोग किया जा सकता है
- लेखक अतिरिक्त feature improvements और testing जारी रखे हुए हैं, और floppy-based drives के अलावा parallel port आधारित devices का support भी confirm किया गया है
- physical devices लगभग पहले जैसे ही हैं, लेकिन operating system अब CentOS 3.5 की जगह Xubuntu 24.04 हो गया है
संदर्भ
अभी कोई टिप्पणी नहीं है.