Linux 커널은 전 세계 수백만 대의 컴퓨터와 서버, 그리고 모바일 기기에서 심장과 같은 역할을 합니다. 이는 오픈 소스 운영 체제의 핵심 구성 요소로, 높은 성능과 안정성, 그리고 유연성을 제공합니다. 그러나 이처럼 중요한 시스템의 일부분이 어떻게 지속적으로 개선되고 관리되는지에 대해 궁금해하는 이들이 많습니다. 바로 이곳에서 Linux 커널 릴리즈 모델의 역할이 중요해집니다.

이 블로그 포스트에서는 Linux 커널 릴리즈 모델이 무엇인지, 그리고 이 모델이 어떻게 커널의 지속적인 개선과 안정성을 보장하는지에 대해 살펴보겠습니다. Linux 커널의 개발 과정과 릴리즈 사이클을 이해함으로써, 리눅스 시스템을 사용하거나 개발하는 데 있어 중요한 인사이트를 얻을 수 있을 것입니다.

Linux 커널 릴리즈 모델 이해

Linux 커널의 릴리즈 모델은 크게 메인라인 커널과 안정 버전으로 구분될 수 있습니다. 메인라인 커널은 최신 기능과 개선사항이 지속적으로 추가되는 곳이며, 여기서 충분히 테스트되고 검증된 변경사항은 안정 버전으로 이전됩니다. 이 과정을 통해 Linux 커널은 최신 기술을 빠르게 통합하면서도, 높은 수준의 안정성을 유지할 수 있습니다.

릴리즈 사이클은 일반적으로 2~3개월마다 한 번씩 새로운 메인라인 커널 버전이 출시되는 것을 의미합니다. 각 릴리즈는 릴리즈 후보(RC) 단계를 거치며, 이 시간 동안 개발자와 사용자는 새로운 기능과 변경사항을 테스트하고 버그를 보고합니다.

롱텀 서포트(LTS) 버전은 특별히 선택된 안정 버전으로, 보통 2년 이상의 기간 동안 지속적인 보안 업데이트와 버그 수정을 받습니다. 이는 기업 환경이나 임베디드 시스템과 같이 장기적인 안정성이 요구되는 환경에서 특히 중요합니다.

릴리즈 프로세스

Linux 커널의 릴리즈 프로세스는 투명하고 커뮤니티 주도적인 접근 방식으로 진행됩니다. 이 프로세스의 핵심 단계는 릴리즈 후보(RC)입니다. 릴리즈 사이클의 초기에, 주요 개발자들은 새로운 기능과 수정 사항을 메인라인 커널에 통합합니다. 이후, 첫 번째 릴리즈 후보가 발표되며, 이는 커널이 안정화 단계에 접어들었음을 의미합니다.

RC 단계 동안, 커뮤니티는 새로운 커널을 광범위하게 테스트하며 발견된 모든 버그를 보고합니다. 이러한 피드백을 바탕으로, 수정이 이루어지고 필요한 경우 추가 RC 버전이 출시됩니다. 이 과정은 메인라인 커널이 충분히 안정되었다고 판단될 때까지 계속됩니다. 그 후, 최종 버전이 안정 버전으로 릴리즈되며, 이는 이제 생산 환경에서 사용될 준비가 되었음을 의미합니다.

릴리즈 프로세스의 이러한 철저함은 Linux 커널이 세계에서 가장 신뢰할 수 있고 안정적인 소프트웨어 중 하나로 자리 잡을 수 있게 합니다.

커널 릴리스 모델(Kernel Release Model)

2003년 12월 2.6 커널의 출시와 함께 커널 개발자 커뮤니티는 별도의 개발과 안정적인 커널 분기를 갖는 “일반적인 전용” 모델에서 “안정적인 전용” 분기 모델로 전환되었습니다. 이 모델에서는 매 2~3개월마다 새로운 릴리스가 발표되었고, 해당 릴리스는 “안정적”으로 선언되어 모든 사용자가 실행할 것을 권장했습니다.

커널 릴리스의 번호 지정은 2.6.x부터 시작되었습니다. 여기서 x는 모든 릴리스에서 변경되는 증분 번호이고, 번호 값은 이전 커널 릴리스보다 최신이라는 점 외에는 의미가 없습니다.

*일반적인 전용 모델 : 개발과 안정화가 동시에 이루어졌고, 안정화 단계에서도 개발이 이루어졌습니다. 개발과 안정화가 동시에 이루어져 버그나 문제가 많이 발생할 가능성이 높았습니다. 따라서 커널 개발자 커뮤니티는 안정 버전과 개발 버전을 분리하여 각각 별도의 트리에서 개발하는 “안정적인 전용”과 “개발 전용” 분기 모델로 전환하게 되었습니다
 

안정적인 커널 릴리스(Stable kernel releases)

리눅스 안정적인 커널 릴리스 모델은 2005년에 시작되었습니다. 그때 기존의 커널 개발 모델(2-3개월마다 새로운 릴리스)이 대부분의 사용자 요구를 충족시키지 못한다는 판단이 있었기 때문입니다.

안정적인 커널 릴리스는 Linus의 릴리스를 기반으로 직접 만들어지며, 다양한 외부 요인(연도별, 사용 가능한 패치, 유지 관리자의 작업 부담 등)에 따라 매주 또는 그 전후로 릴리스됩니다.

그리고 안정적인 릴리스의 번호는 커널 릴리스의 번호로 시작하고, 그 끝에 추가 번호가 추가됩니다.

예를 들어, 4.9 커널이 Linus에 의해 릴리스되면, 이 커널을 기반으로 하는 안정적인 커널 릴리스는 4.9.1, 4.9.2, 4.9.3 등으로 번호가 매겨집니다. 이 시퀀스는 일반적으로 안정적인 커널 릴리스 트리를 참조할 때 “4.9.y”로 줄여서 사용됩니다.

안정적인 커널은 현재 개발 주기가 진행되는 한 계속 유지보수됩니다. Linus가 새로운 커널을 릴리스한 후, 이전 안정적인 커널 릴리스 트리는 중지되며 사용자는 더 최신 버전의 커널로 이동해야 합니다.

장기적으로 안정적인 커널(Long-Term Stable kernels)

새로운 stable release 모델을 한 해간 사용하고 나니, 많은 다양한 리눅스 사용자들이 커널을 몇 개월 이상 지원받을 수 있는 데에 대한 요구가 있음을 알게 되었습니다. 그 결과, 장기지원(LTS) 커널 릴리스가 등장하게 되었습니다. 첫 번째 LTS 커널은 2006년에 출시된 2.6.16이며, 그 이후로 매년 새로운 LTS 커널이 선정됩니다. 해당 커널은 커널 커뮤니티에서 적어도 2년간 유지됩니다. (2년~6년)

현재 평균적으로 일주일에 한 번 새로운 커널이 릴리스됩니다. 이 세 가지 커널 릴리스와 함께, 몇몇 오래된 커널들은 여전히 일부 사용자와 배포판의 요구로 인해 더 느린 릴리스 주기로 일부 커널 개발자들에 의해 유지되고 있습니다.

장기적으로 안정적인 커널에 대한 모든 정보, 누가 커널을 담당하는지, 그리고 커널이 유지되는 기간은 kernel.org release page에서 확인할 수 있습니다.

** 글은 작성하는 시점에서 LTS 커널을 확인해보면

현재 LTS커널은 4.14, 4.19, 5.4, 5.10, 5.15, 6.1 입니다.

마지막 버전인 6.1의 가장 주목을 받은 변경 사항은 Rust를 두 번째 언어로 도입한 것입니다.

Rust를 지원하는 주된 이유는 메모리 오류 가능성을 줄여 고품질의 안전한 장치 드라이버를 더 쉽게 작성할 수 있도록 하기 위함입니다.

장기적으로 안정적인 커널(Long-Term Stable kernels)

LTS 커널 릴리스는 하루에 평균 9-10개의 패치가 허용되는 반면 일반적인 안정적인 커널 릴리스에는 하루에 10-15개의 패치가 포함됩니다. 오래된 LTS 커널일수록 많은 최신 버그 수정이 이전 커널과 관련이 없기 때문에 적용 가능한 패치가 적습니다. 하지만 코드베이스의 변경 사항으로 인해 적용해야 하는 변경 사항을 백포트하기가 더 어렵기 때문에 전반적으로 적용되는 패치 수가 적을 수 있지만, LTS 커널을 유지하는 데 드는 노력은 일반적인 안정 커널을 유지하는 것보다 큽니다.

Linux 커널의 버전 역사

위에 그림에서 보듯이 Linux 커널은 Linus Torvalds 에 의해서 1991년에 구상되고 만들어졌습니다 .

Linux 커널은 버전에 따라 지원 수준이 다르고, 일반적으로 각 안정 버전은 다음 안정 버전이 출시될 때까지 메인라인의 버그 수정을 계속 백포트합니다. 그러나 안정적인 버전이 장기 지원(LTS) 커널 로 지정된 경우 추가로 몇 년 동안 유지됩니다.

결론

Linux 커널 릴리즈 모델은 뛰어난 안정성과 혁신을 동시에 달성하기 위해 설계되었습니다. 이 모델을 통해, 리눅스 커널은 전 세계 수많은 시스템에서 믿을 수 있는 기반이 되고 있습니다. 커뮤니티의 열정적인 참여는 이러한 성공의 핵심 요소로, 누구나 리눅스 커널의 발전에 기여할 수 있습니다. Linux 커널과 그 릴리즈 모델에 대한 이해는 기술의 세계에서 중요한 역량이며, 이 지식은 미래의 혁신을 위한 토대를 마련해 줍니다.


** 출처 https://tech.osci.kr/%eb%b2%88%ec%97%ad-%eb%a6%ac%eb%88%85%ec%8a%a4-%ec%bb%a4%eb%84%90-%eb%a6%b4%eb%a6%ac%ec%8a%a4-%eb%aa%a8%eb%8d%b8-linux-kernel-release-model/ http://kroah.com/log/blog/2018/02/05/linux-kernel-release-model/

태그: ,

카테고리:

업데이트:

댓글남기기