• 리눅스 커널 소스 코드 4천만 줄 넘어… 10년간 규모 두 배 증가

    Linux 6.14 rc1 공개로 마일스톤을 달성하다.

    article image

    올해 초, 리눅스 커널 소스 코드가 4,000만 라인을 초과하는 것은 불가피해 보였습니다. 독일의 하이제 온라인(Heise Online)은 리눅스 6.13이 2025년 초에 39,819,522 라인으로 출시되었으며, 최근 공개된 리눅스 6.14 rc1 소스 코드로 인해 이 수치가 40,063,856 라인까지 급증했다고 보도했습니다. (원문: Heise Online, 기계 번역). 이 4,000만 라인이라는 기록은 2015년 리눅스 커널 소스 코드 라인 수의 두 배에 달하는 수치입니다.

    리눅스 커널 소스 코드는 두 달에 약 40만 라인 규모로 매우 빠르게 증가하고 있습니다. 이 라인 수에는 실제 코드 외에도 주석, 문서, 심지어 구조화 및 가독성을 위한 빈 줄까지 포함됩니다. 또한, 커널 소스 코드의 많은 부분이 특정 컴퓨터나 사용자에게는 실제로 불필요하거나 관련성이 낮을 수 있다는 점도 주목할 만합니다.

    소스 코드 내 '방대한 부피(bulk)'를 보여주는 대표적인 예가 다양한 프로세서 아키텍처에 대한 코드이며, 이는 약 450만 라인에 달합니다. 하지만 만약 시스템이 x86 프로세서 코드만 필요하다면(대부분의 PC와 같은 경우), 컴파일러는 이 중 상당 부분을 건너뜁니다. 예를 들어, x86 전용 소스 코드는 50만 라인 미만입니다. 게다가 컴파일러가 사용자가 선택한 x86 칩의 아키텍처를 목표로 삼기 때문에, 해당 서브세트 내부의 코드조차도 추가적으로 배제할 수 있습니다. 프로세서에 해당되는 원리는 리눅스 커널 소스 코드 내의 다른 주요 구성 요소 드라이버에도 동일하게 적용됩니다.

    article image

    그럼에도 불구하고, 상용(off-the-shelf) 배포판을 사용한다고 하더라도, 많은 드라이버들이 모듈로 컴파일되며, 해당 드라이버가 설계된 하드웨어가 시스템에 존재하지 않으면 로드되지 않습니다. 특히 AMD의 소스 파일이 그 큰 예시입니다. 하이제의 분석에 따르면, AMD의 Radeon 드라이버, 문서 등을 포함한 코드만 약 500만 라인에 달합니다.

    이러한 점들을 종합해 볼 때, 일부에서는 리눅스 커널 소스 코드의 라인 수가 본질적으로 무의미하다고 주장할 수 있습니다. 반면, 또 다른 일부는 코드를 가지치기하고 불필요하게 포함된 부분을 제거해야 한다는 주장을 할 것입니다. 그러나 이러한 두 주류 간의 논쟁은 시간이 지남에 따라 하드웨어와 소프트웨어의 영역이 폭, 범위, 깊이 면에서 끊임없이 확장되는 '팽창(bloat)' 쪽에 무게가 실리고 있습니다.

    리눅스 6.14 rc1에 대해 덧붙이자면, 최신 버전은 오랫동안 리눅스 발전에 관심을 가져온 독자들에게 흥미로울 만한 여러 최적화와 추가 기능을 제공합니다. 예를 들어, 리눅스 6.14 rc1은 데스크톱 벤더가 새로운 Copilot 키를 인식하여 동작을 설정할 수 있도록 지원하며, XPad 드라이버에 게임 컨트롤러 지원을 확대하고, 새로운 오디오 하드웨어에 대한 지원을 추가했으며, 일부 시스템에서 절전 모드(suspend) 진입 및 재개 시간을 대폭 개선했습니다. 또한, 인텔 하드웨어를 사용하는 더 많은 터치스크린을 지원합니다.

    [출처:] https://www.tomshardware.com/software/linux/linux-kernel-source-expands-beyond-40-million-lines-it-has-doubled-in-size-in-a-decade