특정 운영 체제 소프트웨어 라이브러리에 대해 성공적으로 컴파일하고 실행할 수 있는 커널 버전에 대한 규칙이 있습니까?
즉, glibc, GTK 및 기타 수많은 지원 소프트웨어의 특정 버전이 포함된 Ubuntu 16.04를 사용한다고 가정하면 컴파일만 할 수는 없을 것 같습니다.어느이러한 지원 사용자 영역 구성 요소의 대부분은 특정 커널 버전에 따라 달라질 수 있으므로 커널 버전을 다운로드하여 실행하세요. 그렇다면 기본 규칙이 있나요? 예를 들어 마이너 릴리스에서는 괜찮습니다.
답변1
Linux 커널 관리자는 이전 버전과의 호환성을 매우 중요하게 생각합니다. 시스템이 특정 버전의 커널에서 실행되는 경우 최신 버전에서도 실행되어야 합니다. Ubuntu 16.04는 커널 4.4.0과 함께 제공되므로 4.4.0보다 최신 버전이면 모두 작동합니다.
최신 커널 기능에 의존하는 소프트웨어는 많지 않습니다. libc 및 일부 시스템 유틸리티를 제외하고 대부분의 소프트웨어는 커널과 직접 상호 작용하지 않고 libc를 통해 상호 작용합니다. 일부 시스템은 재부팅하지 않고 오랜 기간 동안 계속 실행해야 하지만 사람들은 최신 소프트웨어(일반적으로 주요하고 매우 중요하며 업그레이드되지 않은 설치의 루트에서)를 실행하기를 원하므로 libc는 종종 최신 커널 버전이 필요하지 않습니다. 우분투 16.04에 포함됨glibc 2.232.6.32 이전의 Linux 커널을 허용합니다. 대부분의 Ubuntu 16.04 소프트웨어는 이러한 이전 커널에서 실행되어야 하지만 일부 시스템 소프트웨어(예: systemd 및 udev)에는 최신 커널이 필요합니다.v229, 최소한 3.11이 필요합니다.
이 모든 것은 사용자 수준 소프트웨어에만 적용됩니다. 타사 드라이버를 컴파일해야 하는 경우 직접 컴파일해야 합니다. 내부 커널 API는 자주 변경됩니다.