배포판에서 최신 Linux 커널을 사용하지 못하게하는 이유는 무엇입니까? [닫은]


13

대부분의 Linux 배포판에는 특정 커널 버전이 포함되어 있으며 특정 릴리스 ( x.y.z~ x.y.(z+1)) 및 보안 업데이트시 에만 업데이트 됩니다.

반면에 리눅스에는 커널 ABI를 변경하지 않고 사용자 공간을 절대로 파괴하지 않는 매우 엄격한 정책이 있다는 것을 알고 있습니다. 실제로, Linus는 커널을 역으로 호환되지 않는 방식으로 (의도적으로 또는 우발적으로) 변경하려는 개발자를 대상으로하는 많은 공개적 경향을 가지고 있습니다.

배포판이 항상 최신 커널로 업데이트하는 대신 "안정적인"커널을 사용하는 이유를 이해하지 못합니다. 이것은 비판이 아니며 그 이유에 대해 궁금합니다.


1
최신 커널에는 테스트가 없기 때문입니다. 시스템의 안정성에 영향을 줄 수있는 버그를 포함 할 수 있으며 안정성은 모든 배포 관리자의 주요 초점입니다.

답변:


8

Linux 커널의 시스템 호출 인터페이스는 매우 안정적입니다. 그러나 커널에는 항상 호환되지 않는 다른 인터페이스가 있습니다.

  • /proc대부분 안정적이지만 과거에는 몇 가지 변경 사항이있었습니다 (예 : 일부 인터페이스 는 생성 된 /sys후 일정 시점으로 이동 /sys).
  • 과거 에는 많은 장치 관련 인터페이스가 제거 되었습니다.
  • /sys에 포함 된 안정적인 인터페이스 Documentation/ABI/stable와 그렇지 않은 인터페이스가 포함되어 있습니다 . 그렇지 않은 것을 사용하지 말아야 할 때도 있지만 때로는 사람들이 사용하는 것이므로 간단한 보안 및 안정성 업그레이드로 인해 문제가 발생하지 않아야합니다.
  • 과거에는 modutils와 호환되지 않았지만 (새로운 버전의 modutils가 필요한 최신 커널), 꽤 오래 전에 생각했습니다.
  • 비정상적인 구성의 부팅 프로세스와 관련하여 비 호환성도 있습니다. 커널 크기를 늘리더라도 일부 임베디드 시스템에서 문제가 발생할 수 있습니다.
  • 커널의 외부 인터페이스는 꽤 안정적이지만 내부 인터페이스는 안정적 이지 않습니다. 내부 인터페이스의 규칙은 내부 사용을 수정하는 한 누구나 인터페이스를 깰 수 있지만 타사 모듈을 수정하는 것은 해당 모듈의 작성자의 책임입니다. 전반적으로 상당히 많은 설치가 타사 모듈을 실행합니다. 커널에서 지원하지 않는 하드웨어 용 추가 드라이버 (하드웨어가 새 커널에서 지원되는 경우 괜찮지 만 그렇지 않은 경우) 독점 드라이버 ( 모든 드라이버가 오픈 소스라면 세계가 더 나은 곳이 될 것입니다. 예를 들어, 좋은 3D GPU 성능을 원한다면 독점 드라이버가 붙어 있습니다.
  • 어떤 사람들은 커널 또는 다른 타사 모듈을 다시 컴파일해야합니다. 최신 커널은 종종 오래된 컴파일러로 컴파일 할 수 없습니다.

대체로 최신 커널 버전으로 전환하지 않는 주요 이유는 타사 모듈입니다.

그럼에도 불구하고 일부 배포판은 최신 커널을 옵션으로 제공합니다. 예를 들어, 데비안은 테스트에서 커널을 백 포트를 통해 안정적인 릴리스 사용자에게 제공합니다. 마찬가지로 Ubuntu LTS에서도 최신 Ubuntu 릴리스의 커널을 사용할 수 있지만 기본적으로 사용되지는 않습니다. 이것은 배포가 완료 될 때 아직 지원되지 않은 하드웨어에 새로 설치하는 데 주로 유용합니다.


9

나는 배포를 위해 일하고 있지 않지만 적어도 두 가지 이유를 생각할 수 있습니다.

  • 일부 배포판은 아직 메인 라인에 병합되지 않은 사용자 지정 패치를 커널에 적용합니다. 즉, 커널을 업데이트 할 때마다 패치가 끊어지지 않고 제대로 작동하는지 확인해야합니다.
  • 안정적인 최신 커널 릴리스조차도 버그를 포함 할 수 있으며, 신뢰성을 중시하는 배포판은 고객에게 커널을 제공하기 전에 몇 가지 테스트 절차 / 프로세스를 거치기를 원할 것입니다.

2
배포 판별 패치가 반드시 업스트림을위한 것은 아닙니다. 최신 업스트림 커널에는 평균적으로 배포판에서 테스트 한 "스톡"커널보다 더 많은 버그가 포함됩니다. 배포본에 의해 배포 된 커널의 많은 부분은 가능한 많은 버그를 수정하고 수정하는 동시에 코드를 필요 이상으로 변경하지 않는 것입니다.
Faheem Mitha

0

안정성을 위해 보다 안정적인 배포판이 안정적인 커널 버전을 따르고 적극적으로 참여 합니다. 더 모험적인 사람은 최신 버전과 가장 큰 바닐라 뒤에 커널 버전 하나 이상을 사용하고 개발 팁 (및 일부 자체 개발 한 것)에서 백 포트 된 패치를 사용합니다.

현재 커널 개발 정책은 Linus의 버전이 새롭고 반짝이는 장난감으로 앞서 나가고 도매 변경을 두려워하지 않는다는 것입니다. 일부 버전은 엄격한 테스트 및 안정화의 기반을 형성하기에 충분히 안정적인 (개발 방식) 것으로 간주되어 안정적인 시리즈를 제공합니다.

이 모든 것은 사용중인 도구로 인해 가능합니다. 모두 자신의 자식 트리를 정리하고 흥미로운 업스트림 브랜치와 트리를 로컬로 동기화하고 다른 사람들의 커밋을 완화하고 로컬 변경 사항을 자유롭게 공유 할 수 있습니다.


안정적인 커널 시리즈는 특정 버전의 안정성에 따라 선택되지 않으며 임의적입니다. 올해부터 안정적인 시리즈는 매년 출시 된 첫 번째 버전을 기반으로 할 것입니다 ... 모든 단일 커널 릴리스는 안정적이어야하며 이전 버전과의 호환성을 유지하지 않습니다.
Stephen Kitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.