- ftape sürücüsü, 1990'lardan kalma yedekleme teyplerinden (QIC-80) veri kurtarabilen tek Linux açık kaynak kernel sürücüsüydü
- Ancak bu sürücü 2000'den sonra artık bakım görmediği için yalnızca eski Linux ortamlarında kullanılabiliyordu
- Claude Code kullanılarak eski kaynak kod, modern Linux kernel sürümlerine uygun olacak şekilde yeniden düzenlendi ve bağımsız bir kernel modülüne başarıyla dönüştürüldü
- Bu süreçte Claude, eski işlevleri ve yapı türlerini otomatik olarak modern API'lere dönüştürdü; kullanıcı da çıktı sonuçlarını elle analiz ederek bazı yapılandırma hatalarını düzeltti
- AI kodlama ajanı kullanım deneyimi, programcı yeteneklerinin artırılması ve yeni teknoloji ya da framework'lere hızlı onboarding konusunda içgörüler sundu
Arka plan: eski yedekleme teyplerini kurtarma ve ftape sürücüsü
- QIC-80 gibi teyp kartuşlarından veri kurtarmak, yazarın hobilerinden biri
- Bu teyplerin çoğu, floppy denetleyicisine bağlı özel bir teyp sürücüsü gerektiriyor
- Bu sürücüler çoğunlukla 1990'larda küçük işletmeler veya bireyler tarafından yedekleme amacıyla kullanıldı
- Floppy denetleyicisi kullanımı, ayrı bir SCSI adaptörü gerektirmeden düşük maliyetli bir çözüm sunuyordu; ancak hız sınırı (500Kbps) ve standart dışı protokol gibi çeşitli dezavantajları vardı
- Bu teyp aygıtlarıyla iletişim kurmak için Linux tarafında ftape kernel sürücüsü zorunlu
- Saf ham ikili veriyi yalnızca ftape okuyabildiği için kurtarma sürecinde buna mutlaka ihtiyaç var
- Ancak ftape sürücüsü 2000'ler civarından beri bakım almadığı için modern Linux kernel sürümlerinde kullanılamıyordu
- Bu nedenle veri kurtarmak gerektiğinde her seferinde eski bir Linux'u (ör. CentOS 3.5) doğrudan açmak gerekiyordu
Claude Code ile kernel sürücüsünü modernize etmeye başlamak
- Yazarı, Claude Code'dan depo açıklamasıyla birlikte "sürücüyü modern kernel üzerinde derlenebilir hale getirmesini" istedi
- Claude, güncel kernel API'lerine ve yapılara uygun biçimde eski işlevleri ve yapı türlerini bulup değiştirdi
- Birkaç tur geri bildirim ve manuel düzeltmenin ardından, hatasız derlenen bir sürücü kodu ortaya çıktı
- İlk kod yalnızca tüm kernel kaynak ağacı içinde derlenebiliyordu; ancak ek istekle bağımsız harici modül derleme sistemi de otomatik olarak üretildi
- Böylece
.ko dosyası olarak ayrı bir kernel modülü oluşturmak mümkün oldu ve gerçek donanım bağlantı testlerine geçildi
Sorun çözme süreci
- Kernel modülü sorunsuz yüklendi, ancak sürücüyü tanıma ve iletişim kurma sorunları ortaya çıktı
- İşlemler
sudo yetkisi gerektirdiği için Claude bunları doğrudan tekrar tekrar çalıştıramadı; bu yüzden dmesg logları elle iletilerek sorunların izini sürüldü
- Claude, logları ve önceki başarılı örnekleri karşılaştırarak varsayılan I/O port adresinin ayarlanmamış olması ve parametre başlatmayla ilgili bir hatayı buldu
- Varsayılan değer
-1'den 0xffff'e dönüşmüş ve bu da algılamanın başarısız olmasına yol açmıştı; doğru adres yeniden ayarlanarak sorun çözüldü
- Sonunda modül düzgün şekilde yüklendi ve test teybinden veri dökümü alma işlemi başarıyla tamamlandı
AI kodlama ajanlarıyla iş birliği deneyiminin düşündürdükleri
- Claude Code ile etkileşim, gerçekten bir mühendisle çalışıyormuş gibi, "junior bir geliştiriciyle iş birliği" hissi veriyor
- Kullanıcının mimari kararları, sorun tespiti ve yön belirleme konularında inisiyatifi elinde tutması gerekiyor
- Alan odaklı anahtar kelimeler ve somut istekler verildikçe daha etkili çalışıyor
- AI ajanları, uygun türde işler verildiğinde üretkenliği keskin biçimde artırıyor; bu yüzden sınırlarını ve güçlü yanlarını anlamak önemli
- AI, yazarın kapasitesini adeta ikiye katladı. Elle yapılsa haftalar sürebilecek iş, günlük konuşmalar ve geri bildirimlerle birkaç günde tamamlandı
- Bu süreçte modern kernel geliştirme pratikleri, x86 mimarisi, yeni komut satırı araçları gibi gerçekten faydalı beceriler de öğrenildi
- Rust, Flutter gibi yeni framework'lerde ilk onboarding ve uyum sürecini büyük ölçüde hızlandırdığı özellikle vurgulanıyor
Sonuç: ftape yeniden hayata dönüyor
- 25 yıl sonra ftape yeniden modern Linux'ta derlenebilir ve kullanılabilir hale geldi
- Yazar ek özellik geliştirmeleri ve testler yapmayı sürdürüyor; floppy tabanlı sürücülerin yanında paralel port tabanlı aygıtlar için de desteği doğruladı
- Fiziksel aygıt neredeyse eskisiyle aynı kalsa da işletim sistemi CentOS 3.5'ten Xubuntu 24.04'e geçmiş durumda
Referans
- ftape proje kaynak kodu GitHub'da açık
- Yazarın toplama ekipman listesi gibi ayrıntılar kişisel blogunda görülebilir
Henüz yorum yok.