안드로이드를 지탱하는 하부 레이어가 리눅스 커널(Linux Kernel)이라는 사실은 이제 대다수 개발자가 아는 상식입니다. 하지만 리눅스 커널 위에서 돌아가는 임베디드 소스코드나 일반 C/C++ 데몬 바이너리를 안드로이드 시스템에 그대로 가져와 컴파일해 보면, 수많은 링크 에러와 런타임 크래시를 마주하게 됩니다. 그 이유는 안드로이드가 우분투나 레드햇 같은 일반 데스크톱 리눅스 배포판의 표준 C 라이브러리인 glibc 대신, 구글이 독자적으로 설계한 'Bionic libc'를 사용하기 때문입니다.C 라이브러리는 유저 영역의 프로세스가 커널에게 일을 시키기 위해 거쳐야 하는 유일한 관문이자 네이티브 프로그램의 주춧돌입니다. 구글은 왜 리눅스의 오랜 역사와 안정성이 검증된 glibc를 과감히 포기하고 Bi..