Linux Kernel과 Android Kernel의 차이점은 무엇입니까?


답변:


7

차이점은 버전마다 (Linux 및 Android 모두) 변경되며 정확한 커널은 각 장치마다 다릅니다. Android 용 커널은 특정 장치에 대한 추가 드라이버 및 향상된 전원 관리 또는 더 빠른 그래픽 지원과 같은 기타 추가 기능이있는 주류 Linux 커널입니다.

안드로이드 커널의 많은 기능은 오픈 소스 커뮤니티가 수용하고 수정 한 후에 업스트림 리눅스에 나중에 추가되지만 다른 기능은 리눅스 커널 개발자가 수용 할 수 없기 때문에 업스트림되지 않습니다. Android 또는 특정 하드웨어에만 해당됩니다.


3
안드로이드 전용 하드웨어를위한 대부분의 드라이버는 메인 라인 커널에 수용되었습니다. 그러나 얼마 전에 큰 논쟁을 일으킨 깨우기 잠금과 같은 일부 기능은 메인 라인과 안드로이드 커널 개발자가 좋은 아이디어인지에 동의하지 않기 때문에 여전히 문제가됩니다.
Lie Ryan

"Android 용 커널은 특정 장치에 대한 추가 드라이버 및 향상된 전원 관리 또는 더 빠른 그래픽 지원과 같은 기타 추가 기능이있는 주류 Linux 커널입니다." 소스 코드가 변경되지 않았습니까?
Guerlando OCs

@GuerlandoOCs 드라이버가 소스 코드 변경이 아니라고 생각하는 것은 확실하지 않지만, 제가 언급 한 "기타 추가 기능"은 요즘 꽤 큽니다. 많은 소스 코드 변경이 있습니다.
Dan Hulme

@ DanHulme 소스 변경 패치입니까 아니면 코드가 직접 변경 되었습니까? 변경된 사항을 어떻게 볼 수 있습니까? 나는 당신이 안드로이드와 호환되도록 리눅스 커널을 패치 할 수 있다고 읽었지만 그 패치는 어디에 있습니까?
Guerlando OCs

5

Dan Hulme과 Lie Ryan이 언급 한 장치 별 차이점 및 깨우기 잠금 외에도 Android는 리소스 누수를 일으킬 수있는 System V IPC 기능 (메시지 큐, 공유 메모리 세그먼트, 세마포어)을 제거했습니다 ( http://www.kandroid.org/ndk /docs/system/libc/SYSV-IPC.html ). 이것은 아마도 커널 빌드를 구성하는 문제 일 것입니다. 또한 Binder라고 불리는 Android IPC는 표준 Linux 커널에 포함되지 않은 커널을 지원합니다.


4

나는이 안드로이드 소스 가 그것을 이해하기위한 훌륭한 문서 라고 생각 합니다.

그리고 다음 은 안드로이드 커널 4.14의 메인 라인 커널에서 변경된 사항입니다.

가장 큰 특징은 다음과 같습니다.

  • 19.8 % 에너지 인식 스케줄링 (커널 / 스케줄)
  • 13.8 % 네트워킹 (net / netfilter)
  • 13.5 % Sdcardfs (fs / sdcardfs)
  • 9.4 % USB (드라이버 / USB)
  • 7.2 % SoC (아치 / arm64, 아치 / x86)
  • 6.2 % f2fs (fs / f2fs-업스트림 백 포트)
  • 6.1 % 입력 (드라이버 / 입력 / 기타)
  • 5.4 % FIQ 디버거 (드라이버 / 스테이징 / 안드로이드 / fiq_debugger)
  • 3.6 % 금붕어 에뮬레이터 (드라이버 / 플랫폼 / 금붕어)
  • 3.4 % Verity (드라이버 / md)
  • 11.6 % 기타

LTS와의 ​​차이점

LTS (4.14.0)와 비교할 때 Android 공통 커널에는 355 개의 변경, 32266 개의 삽입 및 1546 개의 삭제가 있습니다 (2018 년 2 월 기준).

여기에 이미지 설명을 입력하십시오


사람들이 왜 공감하는지 모르겠습니다 ??? 나는 5 초 안에 내가 downvote있어 답변을 썼습니다! 니스
chankruze

답변을 +1하십시오. 드라이브 바이 다운 보터가 짜증납니다.
iBug

+1. 당신의 것이 가장 좋습니다.
Irfan Latif
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.