15 puan yazan GN⁺ 2025-09-08 | Henüz yorum yok. | WhatsApp'ta paylaş
  • 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.

Henüz yorum yok.