- Driver ftape là driver kernel Linux mã nguồn mở duy nhất có thể khôi phục dữ liệu từ các băng sao lưu (QIC-80) của thập niên 1990
- Tuy nhiên, driver này đã không còn được bảo trì từ sau năm 2000, nên chỉ có thể dùng trong các môi trường Linux cũ
- Tác giả đã dùng Claude Code để refactor mã nguồn cũ cho phù hợp với kernel Linux hiện đại, và chuyển đổi thành công nó thành một mô-đun kernel độc lập
- Trong quá trình đó, Claude tự động chuyển các hàm và cấu trúc lỗi thời sang API mới, còn người dùng phân tích thủ công kết quả đầu ra để sửa một số lỗi cấu hình
- Thông qua trải nghiệm sử dụng AI coding agent, tác giả rút ra được insight về việc khuếch đại năng lực của lập trình viên và cách onboarding nhanh vào công nghệ, framework mới
Bối cảnh: khôi phục băng sao lưu cũ và driver ftape
- Khôi phục dữ liệu từ các hộp băng từ như QIC-80 là một trong những sở thích của tác giả
- Các băng này phần lớn cần ổ băng chuyên dụng kết nối với bộ điều khiển floppy
- Những ổ này chủ yếu được doanh nghiệp nhỏ hoặc cá nhân trong thập niên 1990 dùng để sao lưu
- Cách dùng bộ điều khiển floppy giúp triển khai rẻ hơn mà không cần adapter SCSI riêng, nhưng tồn tại nhiều nhược điểm như giới hạn tốc độ (500Kbps) và giao thức phi tiêu chuẩn
- Để giao tiếp với thiết bị băng này, trên Linux bắt buộc phải có driver kernel ftape
- Vì chỉ có ftape mới đọc được dữ liệu nhị phân thô thuần túy, nên nó là thành phần bắt buộc cho việc khôi phục
- Nhưng driver ftape đã không được bảo trì kể từ khoảng năm 2000, nên không thể dùng trên kernel Linux hiện đại
- Vì vậy, mỗi lần cần khôi phục dữ liệu, tác giả đều phải tự khởi động một bản Linux cũ (như CentOS 3.5)
Bắt đầu hiện đại hóa driver kernel với Claude Code
- Tác giả yêu cầu Claude Code, kèm theo phần mô tả repository, "hiện đại hóa driver để có thể build trên kernel mới nhất"
- Claude tìm và thay thế các hàm và cấu trúc lỗi thời cho phù hợp với API và cấu trúc kernel hiện tại
- Sau nhiều vòng phản hồi và hiệu chỉnh thủ công, tác giả hoàn thiện được mã driver biên dịch không lỗi
- Ban đầu mã chỉ có thể build bên trong toàn bộ cây mã nguồn kernel, nhưng qua yêu cầu bổ sung, Claude đã tự động tạo hệ thống build mô-đun ngoài độc lập
- Nhờ đó có thể tạo riêng file mô-đun kernel
.ko và bắt đầu thử nghiệm kết nối với phần cứng thực tế
Quá trình xử lý sự cố
- Mô-đun kernel được nạp bình thường, nhưng phát sinh vấn đề nhận diện và giao tiếp với ổ đĩa
- Do đây là tác vụ cần quyền sudo nên Claude không thể tự lặp lại trực tiếp, tác giả phải gửi thủ công log
dmesg để lần theo vấn đề
- Thông qua việc so sánh log với các trường hợp thành công trước đó, Claude phát hiện lỗi liên quan đến địa chỉ cổng I/O mặc định chưa được thiết lập và khởi tạo tham số
- Giá trị mặc định bị chuyển từ -1 thành 0xffff làm việc dò tìm thất bại; sau khi đặt lại đúng địa chỉ thì vấn đề được giải quyết
- Cuối cùng, mô-đun hoạt động bình thường và dump dữ liệu từ băng thử nghiệm thành công
Hàm ý từ trải nghiệm cộng tác với AI coding agent
- Tương tác với Claude Code mang lại cảm giác như "cộng tác với một lập trình viên junior" hơn là làm việc với công cụ thuần túy
- Người dùng vẫn phải chủ động dẫn dắt các quyết định kiến trúc, phát hiện vấn đề và định hướng xử lý
- Càng đưa ra từ khóa chuyên biệt theo domain và yêu cầu cụ thể thì hiệu quả càng cao
- AI agent có thể làm năng suất tăng vọt khi được giao đúng loại công việc, vì vậy cần có cảm nhận tốt về giới hạn và điểm mạnh của nó
- AI giúp khuếch đại năng lực cá nhân lên nhiều lần. Nếu làm thủ công thì công việc này có thể mất vài tuần, nhưng chỉ với trao đổi thường ngày và phản hồi, tác giả đã hoàn thành trong vài ngày
- Trong quá trình đó, tác giả cũng học được nhiều kỹ năng hữu ích thực sự như thực hành phát triển kernel hiện đại, kiến trúc x86, các công cụ dòng lệnh mới
- Tác giả nhấn mạnh rằng AI đặc biệt giúp tăng tốc mạnh giai đoạn onboarding và thích nghi ban đầu với các framework mới như Rust, Flutter
Kết luận: ftape sống lại
- Sau 25 năm, ftape một lần nữa có thể build và sử dụng trên Linux hiện đại
- Tác giả đang tiếp tục cải tiến tính năng và thử nghiệm thêm, đồng thời đã xác nhận hỗ trợ thiết bị dùng cổng song song bên cạnh các ổ dùng floppy
- Thiết bị vật lý gần như không đổi so với trước đây, nhưng hệ điều hành đã chuyển từ CentOS 3.5 sang Xubuntu 24.04
Tham khảo
- Mã nguồn dự án ftape được công khai trên GitHub
- Danh sách thiết bị sưu tầm của tác giả cùng thông tin khác có thể xem trên blog cá nhân
Chưa có bình luận nào.