概要
- QIC-80テープ などの古いテープ媒体からデータ復旧を趣味とする体験談
- ftapeドライバ を最新Linuxカーネル向けに移植した過程の詳細
- Claude Code のAI支援によるカーネルモジュール移植の実例
- AIエージェント との効果的なコラボレーション方法の考察
- 現代的なツール活用 による学習・開発効率化の提案
QIC-80テープと復旧作業の魅力
- QIC-80テープ :1990年代に個人や小規模ビジネス、BBS運営者に広く使われたバックアップ媒体
- テープメディアの魅力 :物理的な手触りや扱う楽しさ、設計上の欠点も含めた愛着
- データ復旧 :慎重な検査と再調整で、長年経過したテープからもデータ復旧が可能
古い環境でのftapeドライバ利用
- ftapeドライバ :Linuxカーネルのレガシーテープドライブ用ドライバ
- CentOS 3.5 など、古いLinux環境でのみ利用可能
- テープドライブ接続 :マザーボードのフロッピーコントローラ(FDC)経由で接続
- SCSIアダプタ不要 :コスト削減のためFDCを活用、フロッピードライブと同一ケーブル利用可能
- 制約 :データレートはFDCの速度(約500kbps)に依存、通信プロトコルも非標準・サポート困難
ftapeドライバの現代化プロジェクト
- 課題 :ftapeはカーネル2.4までしかサポートされず、最新カーネルではビルド不可
- 目標 :最新カーネルでビルド・利用可能な スタンドアロン・カーネルモジュール 化
Claude Codeとのコラボレーション
- AIへの依頼 :古いドライバを最新カーネル向けにモダナイズ
- AIの役割 :非推奨APIの置換、構造体や関数の最新仕様対応
- 人間の役割 :ビルド結果やdmesgログの確認、ハードウェア実機テスト、最終的な微調整
- ビルド方法 :カーネルツリー外でのモジュール単体ビルド用システムをAIが自動生成
トラブルシュートと最終動作
- 初期問題 :モジュールはロードできるがテープドライブと通信不能
- 原因特定 :I/Oポートベースアドレス未設定により、デバイス検出失敗
- 修正後 :モジュールが正常にロード・デバイス検出・テープ内容のダンプが可能に
AIエージェント時代の開発スタイル
- AIとの協働 :AIは「熱心なジュニアエンジニア」のような存在
- 人間の責任 :ガードレールの設置、設計判断、アーキテクチャ監督、問題の早期発見
- 効果的なプロンプト :タスクの専門用語・詳細要件を明確に伝えることが重要
- タスク適性の見極め :AIが得意な領域を見極め、適切な依頼で最大限活用
- スキル増幅 :AIを「自分のスキルの力増幅装置」として活用
- 旧技術の学習コストを大幅削減
- 新しいフレームワークや開発環境への迅速なオンボーディング
現代Linuxでのftape復活と今後
- ftapeドライバ :25年ぶりに最新Linuxカーネルで動作可能に
- 新環境 :CentOS 3.5からXubuntu 24.04への移行
- 今後の展望 :機能追加や微調整を継続中
- AI活用の実感 :学習・開発ペースの劇的加速、新たな分野への挑戦意欲向上
AIエージェントとの開発で得た教訓
- AIは魔法ではない :人間の知識と判断力が不可欠
- 協働による学び :AIの説明で現代的なカーネル開発やx86アーキテクチャの新知識を獲得
- 実践的学習 :Flutterアプリ開発など、未経験分野への挑戦も加速
- 高次思考へのシフト :低レイヤの苦労をAIに任せ、よりアーキテクチャ的な思考に集中可能
ftapeは今も生きている!
- 25年ぶりに蘇った ftapeドライバ
- 物理的セットアップは昔のまま、OSは現代的に進化
- 今後もさらなる改良とテープメディアの保存・活用を目指す