
안드로이드 커널은 메인 커널에 없는 새로운 '록'과, 가끔은 특이한 보안 모델, 그리고 완전히 다른 프레임버퍼 드라이버 기반 구조를 사용하고 있기 때문입니다. 간단히 말해, 안드로이드가 독자적으로 추가한 여러 가지 기능 때문에, 메인 커널과 호환을 유지하는 것이 힘들어졌습니다.
따라서 안드로이드용 장치 드라이버 또한 메인 커널에 포함될 수 없습니다. 안드로이드 커널에만 있는 기능에 의존하고 있기 때문이죠. 즉, 안드로이드는 이미 리눅스 커널을 사용하는 것이 아닌, 독자적인 새로운 커널을 만들고 있다는 주장입니다. '분기'(fork)한 것이죠.
포크는 오픈 소스 커뮤니티에서는 특이한 일이 아니지만, 크로어-허트먼은 이번 포크가 통상적인 포크보다 훨씬 더 나쁘다고 생각합니다. 안드로이드용 드라이버를 만드는 회사들이, 리눅스 커뮤니티에 코드를 기여할 방법을 잃게 되기 때문입니다. 또한, 커널에 드라이버를 제출하면 보안 문제 해결과 API 변화 대응을 '자동으로' 할 수 있게 됩니다. 리눅스 커널은 구조가 수시로 변하기 때문이죠. 안드로이드용 드라이버는 이러한 혜택을 입을 수 없게 된다고 우려합니다.
따라서 그렉 크로어-허트먼은, 리눅스 메인 코드와 융합되기 위해 안드로이드 커널의 일부를 수정할 필요가 있다고 봅니다. 이를 위해 구글의 협조가 필수적이라는군요. 커널 수준뿐만 아니라 사용자 공간 수준에도 변화가 불가피하기 때문입니다.
그러나 이러한 의견에 반대되는 주장도 있습니다. 구글의 오픈 소스 담당자인 크리스 디보나(Chris DiBona)는, '리눅스 메인 커널이 안드로이드 코드를 원하지 않았기에 제거되었을 뿐'이라고 주장합니다. '만일 안드로이드 커널이 충분히 중요했다면, 자연히 메인 커널에도 반영되었을 것'이라는 뜻이죠.
또한 디보나는 포크를 나쁘게 보지 않습니다. 리눅스 커널이 좋은 이유는 포크가 가능하기 때문이고, 이번 상황에서 포크는 일반적인 대처라는 것이죠. '안드로이드 커널의 설계에 불만이 있다면, 소스 코드가 메인 커널에 포함되지 않는 것에 대해서도 불평하지 말라'고 합니다.
이런 것도 미묘한 신경전이군요. 개인적으로, 안드로이드가 리눅스 커널을 사용한 것은 맞지만, GNU 소프트웨어 스택을 사용하지는 않았기 때문에, 일반적으로 말하는 '리눅스'라고 부르기는 조금 어렵지 않은가 생각하고 있었습니다. 이번에 구글이 별 반응을 보이지 않으면, 리눅스 커널과 안드로이드 커널이 완전히 다른 길을 걷게 될 가능성도 배제할 수 없군요.
Posted by 랜덤여신

