구글, 안드로이드에서 메인라인 리눅스 커널 지원 계획

 

Google이 모든 Android 휴대 전화의 핵심인 Linux 커널을 업데이트하고 업스트림하기 위해 열심히 노력하고 있는 것 같습니다. 이 회사는 올해 Linux 개발자를 대상으로 하는 Linux Plumbers Conference 에 많은 참여를했으며, Google 은 현재 사용중인 버전 대신 일반 Linux 커널을 사용하여 Android를 사용하는 방법에 대해 많은 시간을 보냈습니다 . 메인라인 리눅스 커널을 실행하는 안드로이드 폰도 보여주었습니다.

그러나 먼저, 안드로이드의 현재 커널의 혼란스러움에 대한 기초지식부터 말하자면,

현재, “메인라인” 리눅스 커널과 실 탑재 안드로이드 장치 사이에는 세 개의 주요 포크가 발생합니다 (여기 “메인라인”은 구글 자신의 “프로젝트 메인라인”과 아무런 관련이 없다는 점에 유의하십시오).

첫번째로는, Google은 LTS(Long Term Support) Linux 커널을 취하여 모든 안드로이드 OS 특정 패치가 적용된 Linux 커널인 “Android Common 커널”로 바꿉니다. Android Common은 SoC 공급업체(보통 퀄컴)로 운송되어, 먼저 SoC의 특정 모델에 초점을 맞춘 하드웨어별 추가가 이루어 집니다. 이 “SoC 커널”은 디스플레이, 카메라, 스피커, USB 포트 및 기타 하드웨어와 같은 다른 모든 하드웨어를 지원하는 하드웨어 특정 코드를 위해 장치 제조업체로 전송됩니다. 이것이 “디바이스 커널”이고, 실제로 장치 위에 있는 것이죠.

이는 모든 장치가 수백만 줄의 트리 외부 커널 코드를 제공하는 매우 긴 여정입니다. 모든 디바이스 커널은 장치마다 서로 다릅니다.

기본적으로 어느 하나의 디바이스 커널은 다른 기기에서 작동하지 않습니다. 기기의 기본 커널 버전은 SoC의 초기 개발 초기에 잠겨 있기 때문에 새로운 장치가 2 년 된 Linux 커널과 함께 제공되는 것이 일반적입니다.

2019 년 10 월에 출시 된 Google의 최신 기기 인 Pixel 4도 2017 년 11 월부터 LTS 릴리스인 Linux 커널 4.14와 함께 제공됩니다. 또한 커널 4.14로 영원히 유지 될 것입니다.

안드로이드 장치는 일반적으로 커널 업데이트를 얻지 못합니다. 아마도 단일 디바이스 커널과 이를 수행하기 위해 협력해야하는 회사 체인을 생산하는 데 필요한 엄청난 양의 작업 덕분일 것입니다. 커널 업데이트가 발생하지 않기 때문에 이것은 모든 새로운 Android 릴리스가 일반적으로 최근 3 년간의 LTS 커널 릴리스를 지원해야 함을 의미합니다 (Android 10의 최소 요구사항은 4.9입니다). 보안 패치를 사용하여 이전 버전의 Android를 지원하겠다는 Google의 약속에 따르면 이 회사는 현재 5년된 커널 3.18을 계속 지원하고 있습니다. 지금까지 Google의 반창고 솔루션은 Linux 커뮤니티와 팀을 이루어 주요 Linux LTS 릴리스를 더 오랫동안 지원하는 것이며 지금은 최대 6 년의 지원을 받고 있습니다.

작년에 Linux Plumbers Conference 2018에서 Google은 Android 커널을 기본 Linux에 더 가깝게 만드는 초기 연구를 발표했습니다. 올해는 지금까지 진행 상황에 대해 좀 더 자세히 공유했지만 여전히 진행중인 작업입니다.

안드로이드 커널 팀의 리더 인 Sandeep Patil은 LPC 2019에서 “오늘 우리는 [특정] Android 기기에서 실행하기 위해 커널에 무엇이 추가되어야하는지 모른다” 고 말했습니다. “어떤 하드웨어에서도 반드시 그런 것은 아닙니다. 따라서 우리의 목표는 기본적으로 모든 것을 찾아서 업스트림하고 가능한 한 메인 라인에 가깝게 노력하는 것입니다.”

더 넓은 안드로이드 생태계와 수많은 기기 구성을 구현하기 위해 아직해야 할 일이 있지만 특정 모델의 기기에서는 상황이 잘 진행되고있는 것 같습니다. Linaro Consumer Group의 이사 인 Tom Gall은 일반적인 Android OS에서 실제로 메인 라인 Linux 커널을 실행하는 Xiaomi Poco F1을 선보였습니다.

가능한 한 많은 커널 코드를 업스트림하려는 계획과 함께 Google은 Android Project Treble 모듈화에 대한 초기 작업을 복제하는 것을 목표로 합니다. 트레블이 안드로이드 OS와 장치 HAL(하드웨어 추상층) 사이에 안정적인 인터페이스를 만들었듯이, 안드로이드를 메인라인 리눅스에 더 가깝게 만들자는 구글의 제안입니다

(아직 이것에 대해 어리석은 “프로젝트” 이름이 없는 것은 어떻게 된 것일까?)

Linux의 내부 커널 ABI를 안정화하고 Linux 커널 및 하드웨어 공급 업체가 쓸 수 있는 안정적인 인터페이스를 갖는 것을 포함합니다.구글은 리눅스 커널을 하드웨어 지원에서 분리하기를 원합니다.

Instead of a bunch of forks, Google imagines the new kernel as a series of modules.

https://arstechnica.com/gadgets/2019/11/google-outlines-plans-for-mainline-linux-kernel-support-in-android/

댓글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d 블로거가 이것을 좋아합니다: