상황
linux stable v6.5.9 가 Wed, 25 Oct 2023 12:23:58 +0200 에 release 되었다.
- 한국시간(UTC+09:00) 기준 2023-10-25 19:23, 4일 전
241개 patch 가 2일간의 리뷰텀을 거쳐서 release 되었는데,
mail archive 에선 코드 수정내용을 확인하는게 불가하다.
- 원하는 버전을 검색해 release 날짜를 확인할 수 있으나,
- linux-stable.git 자체에선 수정사항을 확인할수 있는 별도 메뉴를 제공하진 않는다.
목적
linux-stable git clone 없이, linux stable v6.5.8 --> v6.5.9 업데이트 내용을 볼수 있는,
편한 방법을 확인한다.
새로 알게된 내용
기본적인 linux release 주기와, rolling-stable / LTS 의 차이점을 확인
linux release 주기
https://www.kernel.org/category/releases.html
- linux mainline 은 merge window 2주 + bugfix 7주(rc1~rc7) 로 대략 9주 에 1개씩
release 되는 구조이다.
- release 된 mainline 코드는, 지정된 maintainer 들에 의해 linux stable 로 backport 된다.
- distribution 커널 (ubuntu, rocky, amazon, azure, ...) 들은 stable 커널을 사용해,
자신들만의 커널을 만들고 별도의 release cycle 을 거쳐 배포한다.
rolling-stable 커널
https://lwn.net/Articles/871989/
- 하지만 유저 관점에서 볼때, 이 linux release 방식은 문제가 있다.
- 9주마다 mainline release 에 맞춰 stable branch 와 LTS branch 가 매번 생길텐데,
즉, update 때마다 "새 branch 의 random 버전 커널" 을 사용하게 된다는 문제가 있다.
- 따라서 stable maintainer 들은 "rolling-stable" 이라는 걸 제공하고 있다.
- rolling-stable 은 patch cherry-pick (backport) 를 하지 않고, git merge 트릭을
사용해 "단일 branch" 를 유지하면서, SHA1 해시정보와 commiter 정보를 유지하고 있다.
- 따라서 git bisect 를 통한 문제 update 파악이 용이하고, 유저가 어떤 버전의 커널이
안정적인지 고민할 수고를 덜어준다. (rolling-stable 커널을 쓰면 OK)
유저에겐 rolling-stable 커널 외에 LTS 커널도 제공되나, 이 커널은 update 를 받을시
커널버전이 올라가게 된다.
v6.5.9 업데이트 내용 확인
github 에서도 linux-stable git 이 운영되고 있고, 여기서 다음 url 을 사용해 tag 간 비교가 가능하다.
커밋별로 클릭, 코드랑 함께 히스토리 확인이 가능하고, 업데이트 내용 전체를 diff 로 볼수도 있다.
Reference
https://peter.coffee/github-comparison-between-tags