25년 된 커널 드라이버를 Claude Code로 현대화하기

1 day ago 5

  • ftape 드라이버는 1990년대 백업테이프(QIC-80)에서 데이터를 복구할 수 있는 유일한 리눅스 오픈소스 커널 드라이버임
  • 하지만 해당 드라이버는 2000년 이후 더 이상 유지보수되지 않아, 구형 리눅스 환경에서만 사용할 수 있었음
  • Claude Code를 활용해 오래된 소스코드를 최신 리눅스 커널에 맞도록 리팩토링하고, 독립형 커널 모듈로 성공적으로 변환
  • 과정에서 Claude는 자동으로 구식 함수와 구조체를 최신 API로 전환하며, 사용자가 수동으로 출력 결과를 분석해 일부 설정 오류를 교정함
  • AI 코딩 에이전트 활용 경험을 통해 프로그래머의 역량 증폭, 신기술·프레임워크에 빠르게 온보딩하는 방법에 대해 인사이트를 얻음

배경: 오래된 백업 테이프의 복구와 ftape 드라이버

  • QIC-80 등 테이프 카트리지에서 데이터를 복구하는 것이 저자의 취미 중 하나임
  • 이러한 테이프는 대부분 플로피 컨트롤러에 연결된 특수 테이프 드라이브가 필요함
    • 해당 드라이브는 주로 1990년대 소규모 사업장이나 개인이 백업용으로 사용함
    • 플로피 컨트롤러를 사용하는 방식은 별도의 SCSI 어댑터 없이 저렴하게 구현할 수 있었으나, 속도 제한(500Kbps) 과 비표준 프로토콜 등 여러 단점이 존재함
  • 이 테이프 장치와 통신하기 위해서는 리눅스에서는 ftape 커널 드라이버가 필수임
    • ftape로만 순수 원시 바이너리 데이터를 읽을 수 있기 때문에, 복구에 반드시 필요함
  • 그러나 ftape 드라이버는 2000년 무렵 이후로 유지보수되지 않아, 최신 리눅스 커널에서 사용할 수 없었음
    • 따라서 데이터를 복구할 때마다 구식 리눅스(CentOS 3.5 등)를 직접 부팅해야만 했음

Claude Code로 커널 드라이버 현대화 시작

  • Claude Code에게 리포지토리 설명과 함께 "최신 커널에서 빌드 가능하도록 드라이버를 현대화"해달라고 요청함
  • Claude는 현재의 커널 API 및 구조에 맞게 구식 함수와 구조체를 찾아내 교체
    • 여러 번의 피드백 및 수동 보정 과정을 거쳐, 오류 없이 컴파일 되는 드라이버 코드 완성
  • 초기 코드는 전체 커널 소스 트리 내에서만 빌드가 가능했으나, 추가 요청을 통해 독립형 외부 모듈 빌드 시스템을 자동으로 생성함
    • 이를 통해 .ko 파일로 커널 모듈을 따로 만들 수 있게 되어 실제 하드웨어 연결 테스트 돌입

문제 해결 과정

  • 커널 모듈이 정상적으로 로드됐으나, 드라이브 인식·통신 문제가 발생함
    • sudo 권한이 필요한 작업이라 Claude가 직접 반복 실행은 불가, dmesg 로그를 수동으로 전달하며 문제점 추적
  • Claude가 로그와 기존 성공 사례 비교를 통해, 기본 I/O 포트 주소 미설정 및 파라미터 초기화 관련 버그를 발견
    • 기본값이 -1에서 0xffff로 변환되어 탐지 실패, 올바른 주소로 재설정해 해결
  • 최종적으로 모듈이 정상적으로 로드되고, 테스트 테이프의 데이터 덤프에 성공

AI 코딩 에이전트와 협업 경험의 시사점

  • Claude Code와의 상호작용은 "주니어 개발자와의 협업" 처럼 실제 엔지니어와 일하는 느낌임
    • 사용자가 아키텍처 결정, 문제 발견 및 방향성을 주도적으로 가져가야만 함
  • 도메인에 특화된 키워드와 구체적 요청을 할수록 효과적임
  • AI 에이전트는 알맞은 유형의 작업이 주어질 때 생산성이 급격히 높아지므로, 한계와 강점을 이해하는 감각 필요
  • 본인의 역량을 AI가 배로 증가시켜줌. 수작업으로 했다면 몇 주 걸릴 작업을, 일상적인 대화와 피드백만으로 며칠 만에 완료 경험
    • 이 과정에서 현대 커널 개발 관행, x86 아키텍처, 새 명령어 라인 툴 등 실제 유용한 스킬도 학습
  • 새로운 프레임워크(Rust, Flutter 등)에 대한 초기 온보딩·적응 과정을 대폭 빠르게 해준다는 점 강조

결론: ftape, 다시 살아나다

  • 25년 만에 ftape가 다시 최신 리눅스에서 빌드 및 사용 가능해짐
  • 저자는 추가적인 기능 개선과 테스트를 진행 중이며, 플로피 기반 드라이브에 더해 병렬 포트 기반 장치도 지원 확인
  • 물리적 장치는 예전과 거의 같지만, 운영체제는 CentOS 3.5 대신 Xubuntu 24.04로 변화

참고

  • ftape 프로젝트 소스코드는 GitHub에서 공개되어 있음
  • 저자의 수집 장비 목록 등은 개인 블로그에서 확인 가능

Read Entire Article