• 리눅스 최신 파일 시스템 마운트 API가 6년간 문서화가 안 돼 왔는데 — 최신 매뉴얼 페이지 패키지가 마침내 2019년 코드에 대한 내용을 추가하다

    스스로 설명이 되는 좋은 코드.

    article image

    핵심 시스템 코드는 최신 트렌드에 민감한 개발자들만큼 빠르게 움직이지 않습니다. 그리고 다행히도, 그렇게 할 필요가 없는데, 시스템은 안정적이어야 하고, 효율적이어야 하며, 충분히 검증되어야 하기 때문입니다. 하지만 때로는 이러한 지연이 지나치게 길어지기도 하는데, 리눅스의 최신 파일 시스템 API 문서가 대표적인 사례였습니다. Phoronix가 지적했듯이, 이 정보가 표준 man-page(매뉴얼 페이지) 문서에 반영되기까지 6년 이상의 시간이 걸렸습니다.

    사건의 전말은 이렇습니다. 2019년, 리눅스는 새로운 파일 시스템 마운트 API를 도입했습니다. 기존의 거대하고 통합된 "mount" 호출을 대체하여 주요 "fsconfig," "fsmount," 및 "fsopen" 호출이 사용되게 된 것입니다. 이는 개발자들이 새로운 기능을 훨씬 쉽게 활용할 수 있게 해주었으며, 개발자들은 모호한 "mount failed"라는 오류 메시지 대신, 더 깔끔한 코드, 향상된 오류 처리 기능, 그리고 정확한 오류 메시지 출력을 경험할 수 있었습니다.

    개발자인 데이비드 하웰스(David Howells)는 2020년에 man-page 초안을 작성했지만, 관리자들(maintainers) 측에서 잠재적으로 불완전하거나 부정확한 초안을 포함하는 것을 꺼렸기 때문에 이 초안들은 man-pages 패키지에 통합되지 못했습니다. 하웰스는 이 작업을 완성하지 못했고, 그 후로 아무도 이 역할을 맡지 않았습니다.


    [기술 업데이트 사항]

    • 리눅스 7.1 업데이트에 새로운 인-커널 NTFS 드라이버가 포함됨
    • 리눅스 커널 7.0에서 28년 된 인텔 440BX 칩셋을 마침내 폐기함

    article image

    이후 몇 년 동안, 이 새로운 시스템을 이용하려는 개발자들은 커널 소스 코드 내의 복잡한 파일을 뒤지거나, 리눅스 커널 메일링 리스트에서 논의를 찾아야 했으며, 수많은 패치 노트를 읽어야 했습니다. 가장 좋았던 시기에도, 외부 웹사이트에 간신히 사용 설명서 같은 자료가 존재할 뿐이었습니다.

    새로운 man-pages를 작성할 사람이 없었던 또 다른 이유 중 하나는 표준화된 형식이 Groff였기 때문입니다. Groff는 이미 35년이나 된 기술이라 그 형태가 인간이 읽기 매우 어렵고, 마치 크툴루(Cthulhu)가 작성한 것처럼 느껴질 정도였습니다.

    문서화 전문가 크리스티안 브라우너(Christian Brauner)는 2024년, "Groff 작업으로 몇 년을 보내느라 지쳤다"고 언급하며, 직접 Markdown 형식의 페이지가 포함된 저장소를 만들었습니다. 마침내 개발자들이 필요한 정보를 찾을 수 있는 단일 장소가 생긴 것입니다. 그리고 마침내, 2025년 10월 기준으로 공식 man-pages 패키지에 해당 페이지들이 포함되었습니다.

    이처럼 거의 사라질 뻔했던 문서화 부족이 여러 파일 시스템 핸들러가 새로운 API를 도입하는 데 오랜 지연을 가져온 원인 중 하나였을 가능성은 충분히 설득력이 있습니다. 오래된 Ext4가 2022년에야 API를 채택했고, CIFS(SMB)는 2023년에 했으며, Btrfs는 2024년에 늦게 합류했습니다. F2FS(플래시 파일 시스템)의 구현은 현재도 진행 중입니다. 새로 정비된 man-pages는 아직 일반적인 배포판에 도입되지 않아, 현재는 롤링 릴리스(rolling-release) 유형의 배포판에서만 이용할 수 있습니다.


    최신 뉴스, 분석 및 리뷰를 피드에서 받아보려면 Tom's Hardware를 구글 뉴스(Google News)에서 팔로우하거나, 우리를 즐겨찾는 출처로 추가해 주세요.

    [출처:] https://www.tomshardware.com/software/linux/linuxs-contemporary-filesystem-mount-api-went-without-documentation-for-six-years-latest-man-page-package-finally-adds-content-for-2019-code