대부분의 Linux 배포판은 특정 커널 버전과 함께 제공되며 포인트 릴리스( x.y.z
~ ) 및 보안 업데이트로만 x.y.(z+1)
업데이트됩니다 .
반면에 저는 Linux가 커널 ABI를 변경하지 않고 사용자 공간을 침해하지 않는다는 매우 엄격한 정책을 가지고 있다는 것을 알고 있습니다. 실제로 Linus는 이전 버전과 호환되지 않는 방식으로 커널을 (의도적으로 또는 의도하지 않게) 변경하려는 개발자에 대해 공개적으로 여러 차례 폭발했습니다.
배포판이 항상 최신 커널로 업데이트하는 대신 "안정적인" 커널을 사용하는 이유를 이해할 수 없습니다. 이건 비판이 아니고 그냥 이유가 궁금하네요.
답변1
리눅스 커널시스템 호출인터페이스가 매우 안정적입니다. 그러나 커널에는 항상 호환되지 않는 다른 인터페이스가 있습니다.
/proc
대부분은 안정적이지만 과거에 일부 변경 사항이 발생했습니다(예: 일부 인터페이스가/sys
생성 후 시점으로 이동되었습니다)./sys
- 다양한 장치 관련 인터페이스 제공삭제됨과거에.
/sys
일부 안정적인 인터페이스가 포함되어 있습니다(목록은Documentation/ABI/stable
) 일부는 그렇지 않습니다. 그렇지 않은 것을 사용해서는 안 되지만 때로는 사람들이 사용하기도 하며 간단한 보안 및 안정성 업그레이드로 인해 이러한 기능이 중단되어서는 안 됩니다.- 과거에는 modutils(최신 버전의 modutils가 필요한 최신 커널)와 호환되지 않는 문제가 있었지만 제 생각에는 오래전 일이었습니다.
- 또한 일부 비정상적인 구성에서는 부팅 프로세스에 비호환성이 있습니다. 코어 크기를 늘리더라도 일부 임베디드 시스템에서는 문제가 발생할 수 있습니다.
- 비록 커널외부인터페이스가 상당히 안정적이고,내부인터페이스는 그렇지 않습니다. 내부 인터페이스에 대한 규칙은 내부 사용을 위해 수정된 한 누구나 이를 깨뜨릴 수 있다는 것입니다. 그러나 타사 모듈을 수정하는 것은 해당 모듈 작성자의 책임입니다. 전반적으로 상당수의 설치에서는 타사 모듈을 실행합니다. 커널에서 지원하지 않는 하드웨어용 추가 드라이버(새 커널이 하드웨어를 지원하면 괜찮지만 지원하지 않으면 어떻게 됩니까?), 독점 드라이버(세계가 지원하는 경우에도) 모든 드라이버가 오픈 소스라면 더 나은 곳이 될 수 있지만, 그렇지 않습니다. 예를 들어 좋은 3D GPU 성능을 원한다면 독점 드라이버를 사용해야 하는 경우가 많습니다.
- 어떤 사람들은 커널이나 일부 타사 모듈을 다시 컴파일해야 합니다. 최신 커널은 이전 컴파일러로 컴파일할 수 없는 경우가 많습니다.
전체적으로 최신 커널 버전으로 전환하지 않는 주된 이유는 타사 모듈입니다.
그러나 일부 배포판에서는 최신 커널을 옵션으로 제공합니다. 예를 들어 Debian은 백포트를 통해 안정적인 릴리스 사용자가 테스트 커널을 사용할 수 있도록 합니다. 마찬가지로 Ubuntu LTS에서는 최신 Ubuntu 버전의 커널을 사용할 수 있지만 기본적으로 사용되지는 않습니다. 이는 릴리스가 완료될 때 지원되지 않는 하드웨어에 새로 설치할 때 유용합니다.
답변2
나는 배포판에서 일하지 않지만 적어도 두 가지 이유를 생각할 수 있습니다.
- 일부 배포판은 아직 메인라인에 병합되지 않은 커널에 사용자 정의 패치를 적용합니다. 즉, 커널을 업데이트할 때마다 패치가 손상되지 않고 제대로 작동하는지 확인해야 합니다.
- 최신의 안정적인 커널 릴리스에도 버그가 포함될 수 있으며 안정성을 중요하게 생각하는 배포판은 커널을 고객에게 배송하기 전에 몇 가지 테스트 절차/프로세스를 거치기를 원할 것입니다.
답변3
보다 보수적인 분포가 따르며 적극적으로 참여합니다.안정적인안정성을 위한 커널 버전입니다. 좀 더 모험적인 사람이라면 커널의 최신 및 최고 바닐라 버전과 개발자 팁(및 몇 가지 자체 제작 패치)에서 백포트된 패치를 사용하세요.
현재 커널 개발 정책은 Linus 버전이 반짝이는 새 장난감을 계속해서 출시하고 대규모 변경을 두려워하지 않는다는 것입니다. 일부 버전은 엄격한 테스트 및 안정화를 위한 기반을 형성할 만큼 충분히 안정적인 것으로 간주되어(개발 측면에서) 안정적인 시리즈를 제공합니다.
이 모든 것은 사용된 도구 덕분에 가능합니다. 누구나 자신만의 도구를 꾸밀 수 있습니다.자식트리, 흥미로운 업스트림 브랜치와 트리를 로컬로 동기화하고, 다른 사람의 커밋을 훔치고, 로컬 변경 사항을 자유롭게 공유하세요.