KernelCI : Linux 테스트 프레임 워크는 LF의 맨틀 아래에있을 것입니다.

kernelci 로고

리눅스 재단은 프랑스 리옹에서 열린 오픈 소스 서밋 유럽(Open Source Summit Europe)에서 새로운 프로젝트인 KernelCI를 지원한다고 발표했습니다 . 이 플랫폼은 리눅스 커널 컴파일 프로세스에 대한 자동화된 테스트를 수행하도록 설계되었습니다 .

커널CI는 커널 개발이 kernel.org를 중심으로 이루어지는 반면, 테스트는 개별 개발자와 프로젝트의 노력에 맡겨져 있기 때문에 리눅스 재단 산하 프로젝트가 되었습니다 . 주요 리눅스 배포판들은 각각 자체 테스트 랩을 운영하고 있지만, 개별 프로젝트 간의 교류는 여전히 제한적입니다.

더 많은 테스트가 필요하다는 데에는 널리 동의하지만, 결과는 여전히 불충분하고 무엇보다 단편적입니다. 문제의 일부는 리눅스 메일링 리스트를 이용한 패치 구현 방식에 있습니다. 리눅스 커널 개발자인 러셀 커리는 최근 다음과 같이 설명했습니다.

풀 요청에 변경 그룹을 병합하는 데 필요한 모든 정보가 포함 된 GitHub 또는 GitLab만을 기반으로하는 프로젝트와 달리; 예를 들어 패치 7/10이 포함 된 이메일에는 해당 컨텍스트가 없습니다. 일련의 패치가 병합, 거부 또는 교체되었는지 알려주는 이메일 메시지를 통해 알리는 것은 거의 불가능합니다. 일반적으로 메일 링리스트는 현재의 프로젝트 호스팅 사이트와 동일한 수준의 메타 데이터를 가지고 있지 않으며 이는 지속적인 통합 문제를 더욱 어렵게 만듭니다.

리눅스 커널을 정기적이고 철저하게 테스트하는 프로젝트 중 하나가 바로 KernelCI 프로젝트입니다. 공식 리눅스 릴리스에 대한 자동화된 테스트를 기반으로 하기 때문에 협업 프로젝트로 배포되며 자유 소프트웨어로 구성되어 있습니다. 이 테스트는 다양한 하드웨어 플랫폼과의 호환성을 보장하도록 설계되었습니다.

테스트에서 오류 또는 회귀가 발생하면 오류를 찾아보고하고 가능한 경우 수정합니다. Linux 개발 상태는 대부분 테스트되므로 공식 Linux 릴리스로 이동하기 전에 많은 버그를 수정할 수 있습니다.

재단의 이사 인 Jim Zemlin은 "나는 종종 Linux 시스템에 대해 얼마나 좋은지 말하지만 커널 테스트 방식을 개선 할 수 있음을 인정해야합니다."라고 말합니다. “테스트는 오랫동안 단편적이고 하향식 방식이었습니다. 우리는 운영 체제의 품질, 안정성 및 유지 관리 가능성이 향상되기를 기대합니다.

KernelCI를 선택한 것은 커뮤니티 내에서 성공적인 것으로 입증되었으며 , 커뮤니티 구성원들은 다음과 같이 평가했습니다.

Baylibre의 수석 커널 전문가 인 Kevin Hilman은 "우리는 테스트 도구가 거의 없었던 지점에서 지난 XNUMX 년 동안 솔루션을 확장했습니다."라고 말합니다. "우리는 오픈 소스 소프트웨어를 사용하지만 테스트에 오픈 소스 접근 방식을 취하지 않습니다."라고 그는 덧붙입니다.

또한 다양한 노력으로 인해 커널의 LTS (장기 유지 관리 관리자)가 구식이 될 정도로 수많은 버그가 발견되었습니다.

"KernelCI는 수리 방법 및 버그 추적을 개선합니다."

커널CI는 1년 동안 리눅스 재단 프로젝트로 편입될 계획을 세워왔습니다. 예상보다 시간이 더 걸렸지만, 마침내 리눅스 재단은 커널CI의 편입을 발표했습니다. 프로젝트 후원사로는 BayLibre, Civil Infrastructure Platform, Collabora, Foundries.io, Google, Microsoft, Red Hat 등이 있습니다. 새로운 보금자리를 통해 충분한 기술 및 재정적 지원을 받아 장기적인 개발이 보장될 것입니다.

이번 조치를 통해 KernelCI는 훨씬 더 많은 하드웨어에 접근할 수 있게 될 것입니다. 또한, 프로젝트 관리를 위한 영구적인 구조가 구축되어 커뮤니티 참여가 더욱 원활해질 것입니다. 새로운 프로젝트 구조를 만드는 데는 다소 시간이 걸리겠지만, 머지않아 진전이 있을 것으로 예상됩니다.

리눅스 재단의 발표에 대해 더 자세히 알고 싶으시면 다음 링크를 확인해 보세요.


Google에서 선호하는 검색 엔진으로 추가