강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터 1급 : 커널버전 및 기능 추가

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터 1: 커널버전 및 기능 추가





커널 버전 및 기능 추가 사항

 

 

커널의 주역할이라고 한다면 당연히 프로세스(Process)와 하드웨어 장치(자원) 관리 및 각 프로세스들이 사용하는 장치들을 통제하는 제어관리 및 입출력 제어관리라고 할 수 있다.

 

 

 

 

또한 커널 자체 또는 각 프로세스들이 하드웨어 장치 사용을 가능케 하는 궁극적인 주체가 바로 커널이다.

 

 

 

 

이제 이러한 리눅스 커널 버전에 대해 알아보자 리눅스 커널의 정식 배포는 리눅스 커널 아카이브(The Linux Kernel Archives, https://www.kernel.org/)에서 하고 있으며 이 사이트에서 배포되고 있는 리눅스 커널의 개발 상황을 확인할 수 있다.

 

 

 

 

 

리눅스 커널은 다음과 같이 표현된다.

 

 

 

 

 

linux-3.11.3.tar.xz

 

 

 

 

- linux : 패키지명

- 3 : 맨 앞 버전 숫자. 커널의 주버전

- 11 : 중간 버전 숫자. 커널의 부버전

- 3 : 세 번째 버전 숫자. 커널의 패치레벨

 

 

 

 

 

1) 커널 주 버전

 

커널의 주된 버전을 의미하며 커널의 기능상 획기적이거나 커다란 변화가 있는 경우에 증가하게 된다.

 

 

 

 

1991년에 0.02 버전이 처음 공개된 후에 1994년에 1.0 버전, 1996년에 2.0 버전이 각각 공개되었다.

 

 

 

 

그런데 1991722일에 발표된 3.0 버전은 중요한 변화는 없었고 리눅스 탄생 20주년을 맞아 버전이 변경되었다.

 

 

 

 

 

상기한 바와 같이 리누스 토발즈는 2011530일에 리눅스의 버전 체계가 바뀌었음을 리눅스 커널 메일링 리스트에 발하고 2011721일에 리눅스 커널 메일링 리스트에 리눅스 커널 3.0의 출판을 정식으로 발하였는데, 커널 번호를 2.6.x에서 3.0으로 변경하는 것은 특별한 랜드마크가 될 만한 기능이 있다거나 비호환성이 있는 것이 아니라고 하면서, 리눅스의 20주년을 기념하여 단순히 불편한 번호체계를 버리는 방법이라고 언급했다.

 

 

 

 

, 이것은 리눅스 커널 3.0이 발표되면서 이전의 번호 체계에 변화가 있다는 것을 의미한다.

 

 

 

 

그렇지만 주버전의 의미는 일단 그대로 유지된다고 볼 수 있을 것이다.

 

 

2) 부버전

 

 

리눅스 커널의 중요한 변화이지만 비교적 작은 변화가 있음을 말한다.

 

 

 

 

2.5.x.까지의 커널의 버전 번호 부여 방식은 홀수-짝수로 기술하는 번호 체계에 따라 할당되었는데, 홀수는 개발버전이라는 의미이고 짝수버전은 안정버전이라는 의미였다.

 

 

 

 

그리고 개발 버전보다 한 숫자 위의 버전이 기존의 개발 버전의 정식 버전인 안정 버전으로 발표되었다.

 

 

 

 

물론, 2.6.0-test와 같이 안정 버전의 발표 바로 이전의 테스트 버전이 발표되기도 했다.

 

 

 

 

이 밖에 정식 버전 외의 다른 개발자들이 독립적으로 개발에 참여하는 경우에 ac와 같은 확장자가 더 붙기도 했다.

 

 

 

 

 

 

그런데 2.6.x 부터는 리눅스 커널에 대한 버전 번호 부여 방식이 달라졌는데, 정식 버전과 프리패치 버전(prepatch version)으로 나누어졌다.

 

 

 

 

프리패치 버전은 알파 버전으로서 충분히 테스트되지 않은 코드가 들어 있을 수 있으며, 예전의 개발 버전과 비슷하게 생각할 수 있다.

 

 

 

 

이에 더해 스냅샷 버전(snapshot version)이 함께 배포되었는데 이것은 실시간으로 개발자들의 패치를 반영한 것이었다.

 

 

 

 

 

 

그리고 이러한 커널의 번호 체계는 상기한 바와 같이 리눅스의 20주년을 맞이하여 3.0 번호 체계로 바뀌었고 이후에는 메인라인과 이러한 메인라인 개발버전을 거친 안정버전에 대해 3.x 번호로 순서대로 번호가 붙게 되었다.

 

 

 

 

이 경우 메인라인의 버전이 안정 버전보다 높은 숫자가 부여된다.

 

 

 

 

3) 패치레벨

 

 

리눅스 커널 번호의 세 번째는 커널에 아주 작은 변화가 있음을 말한다.

 

 

 

 

, 이것은 보안 패치, 버그 수정, 새로운 기능 및 드라이버가 커널에 반영될 때마다 변화되어 왔다.

 

 

 

 

 

그런데 2004년에 리눅스 커널 2.6.0 버전이 출판된 이후에, 커널 개발자들은 출판 및 버전 제도에 대해서 여러 차례의 토론을 가졌고, 궁극적으로 리누스 토발즈와 다른 자들은 더 짧은 시간에 기초한 출판 사이클이 좋을 것이라고 결정했으며, 7년 동안 첫 번째 두 번호들은 “2.6”으로 그대로 유지되고 세 번째 번호가 두달 혹은 세달 이후에 출시되는 새로운 버전의 출판으로 변경되었다.

 

 

 

 

 

그리고 패치레벨 아래에 네 번째 번호가 붙는 경우는 해당 커널 버전에 대한 버그와 보안 수정을 설명하기 위해 붙이는데, 이것은 리눅스 커널 2.6.8NFS 코드에서 발견된 보안 오류에 대한 즉각적인 수정을 하면서 (커널에 대한 다른 변경 없이 그 버그에 대한 수정만 한 상태에서) 붙이기 시작했고 이 이후로 새로운 공식 버전 정책으로 채택되었다(3.0 이후도 동일).

 

 

 

4) 메인라인(개발 버전)

 

 

리눅스 커널은 3.x 버전으로서 3.0부터 메인라인(mainline)과 안정 버전으로 나누어졌다.

 

 

 

 

메인라인은 리누스 토발즈에 의해 관리되며, 새로운 기능들이 도입되고 새로운 개발이 시행된다.

 

 

 

 

2~3개월 마다 새로운 메인라인 커널이 발표된다.

 

 

 

 

메인라인 버전 번호는 최신 안정 버전의 다음 번호가 붙는다.

 

 

 

 

한편, 일반에 공개되는 프리패치(prepatch) 또는 RC 커널은 다른 커널 개발자들과 리눅스 매니아들을 위한 메인라인 커널의 공개 버전으로 리누스 토발즈에 의해 유지 및 발표된다.

 

 

 

 

이것은 출판 후보(release candidates)의 의미를 가지며 메인라인 버전 번호의 마지막에 rc로 버전 표시가 된다.

 

 

 

 

20131006일 현재 개발 중인 메인라인 버전은 리눅스 커널 3.12-rc4이다.

 

 

 

5) stable/EOL longterm의 의미

 

 

개발 버전인 메인라인은 안정 버전으로 이동한 이후에 EOLlongterm 의 표시가 붙게 된다.

 

 

 

 

리눅스 커널은 몇 가지의 버그 수정 이후에 수명 종료(End of Life)”에 도달할 수 있는데, 이것은 커널 관리자들(kernel maintainer)이 더 이상 이 커널 버전에 대한 버그수정을 발표하지 않을 것임을 의미한다.

 

 

 

 

이것을 줄여서 EOL로 표기한다.

 

 

 

 

따라서 이 표시가 붙은 커널 버전은 다음 버전의 커널을 사용하는 것을 고려해야 한다.

 

 

 

 

그리고 커널에 대해 “longterm” 관리의 의사 표시를 하는 것은 커널 관리자들이 이 커널 버전에 대해서는 더욱 오랜 기간 동안 버그수정을 제공할 것이라는 것을 의미한다.

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,015 명
  • 현재 강좌수 :  35,688 개
  • 현재 접속자 :  187 명