[요약] 안드로이드 플랫폼 시스템 아키텍처 리눅스를 분석합니다. 폴더를 삭제하고, 최신 안드로이드 소스코드를 분석하고, 표준 리눅스 커널 소스코드와 비교하고, 안드로이드 커널의 기능 업데이트를 자세히 분석하고, 안드로이드 커널과의 차이점을 논의합니다. Android 커널과 표준 Linux 커널 차이나 유니콤 플랫폼에서 Android의 차이점과 장점을 분석했으며, Ubuntu 환경에서 Android 커널을 획득하고 컴파일하는 방법도 소개했습니다.
[키워드] 리눅스; 커널;
중국 도서관 분류 번호: G354.3 문서 코드: A 품목 번호: 1009-914X (2013) 33-0119-011. 개요
임베디드 기술의 급속한 발전으로 China Unicom 지능형 플랫폼의 작동 속도와 통합 기능이 크게 향상되었습니다. 게다가 Google이 주도하는 Open Handset Alliance OHA는 이러한 상황을 기회로 삼아 2008년에 Android China Unicom 터미널 플랫폼을 출시했습니다. Android는 개방형 무료 Unicom 터미널 플랫폼입니다[1]. 이는 기존 스마트폰 플랫폼에 대한 Motorola의 Symbian 운영 체제 독점을 무너뜨린 동시에 플랫폼의 장점으로 인해 다양한 휴대용 장치의 기능도 크게 향상되었습니다.
2. 안드로이드 시스템 아키텍처
Android는 Google이 개발한 Linux 플랫폼을 기반으로 하는 오픈 소스 휴대폰 운영 체제로 China Unicom 휴대폰이 작동하는 데 필요한 모든 소프트웨어가 포함되어 있습니다. 응용 프로그램.
Android 시스템 아키텍처는 Linux 기반 커널 모듈, 런타임 라이브러리 및 기타 라이브러리, 애플리케이션 프레임워크, 애플리케이션이라는 맨 아래부터 맨 아래까지 [2] 네 가지 수준으로 구성됩니다.
첫 번째 계층: C 언어로 구현된 Linux 운영 체제 및 Android 시스템 확장.
두 번째 계층: C/C++로 구현된 시스템 라이브러리 계층 및 Android 런타임 환경 Linux 소프트웨어.
세 번째 계층: Android 애플리케이션 프레임워크 각 애플리케이션 앞에는 일련의 서비스와 시스템이 숨겨져 있습니다.
레벨 4: Android 앱
Android 애플리케이션 레이어는 Android 기기에서 실행되는 모든 애플리케이션으로 구성됩니다. 통화, 문자 메시지, 연락처 등의 시스템 애플리케이션 외에도 이후에 기기에 설치되는 기타 타사 애플리케이션도 포함됩니다. 3. 안드로이드 커널 분석
운영 체제에서 2.1 커널의 역할
Android는 Linux 운영 체제를 기반으로 하며 하드웨어, 시스템 커널, 시스템 서비스 및 애플리케이션의 네 가지 주요 부분으로 구성됩니다. 그 중 커널은 핵심 부분입니다. 주요 기능은 컴퓨터 하드웨어와 상호 작용하고, 하드웨어의 프로그래밍 제어 및 소켓 작업을 실현하고, 하드웨어 리소스에 대한 액세스를 예약하는 동시에 중간 실행 환경과 가상화를 제공하는 것입니다. 하드웨어를 애플리케이션 잭에 연결합니다. 주요 기능으로는 인터럽트 서비스 루틴, 프로세스 스케줄러, 프로세스 주소 공간의 비디오 메모리 관리, 프로세스 간 통신 등이 있습니다.
2.2안드로이드 커널
안드로이드 커널을 비교 분석하기 위해 우분투 운영체제에 안드로이드 커널 컴파일 및 개발 플랫폼을 구축하고, repo를 통해 최신 안드로이드 커널 코드 버전인 JellyBean을 다운로드 받았습니다.
표준 Linux 커널 소스 코드와 자세히 비교한 결과, 파일 시스템, 프로세스 간 통신 메커니즘, 메모리 관리 등의 측면에서 Android 커널과 표준 Linux 커널 간에 차이점이 있음을 알 수 있습니다.
(1) 파일 시스템
Android 커널은 표준 Linux 커널에서 채택되지 않는 YAFFS2 파일 시스템을 줄였습니다.
(2) 프로세스 간 통신 메커니즘
Binder는 RPC(원격 프로시저 호출) 기능을 제공하지만 프로세스 간 통신 메커니즘인 linux 커널 android입니다.
에Android 시스템의 바인더 메커니즘은 클라이언트, 서버, ServiceManager 및 바인더 드라이버라는 시스템 구성 요소로 구성됩니다. 클라이언트, 서버 및 ServiceManager는 사용자 공간에서 실행되고 바인더 드라이버는 커널 공간에서 실행됩니다.
(3) 비디오 메모리 관리
비디오 메모리 관리 모듈에서 안드로이드 커널은 표준 리눅스 커널에서 사용되지 않는 저수준 커널을 사용합니다
예금 관리 전략. 안드로이드 시스템은 중요도에 따라 프로세스를 분류하고 그룹화하는 LMK(LowMemoryKiller)라는 메커니즘을 사용합니다. 비디오 메모리가 부족하면 최하위 그룹의 프로세스가 종료됩니다.
4. Android 커널 획득 및 컴파일
다음은 Ubuntu13.04 운영 체제를 예로 들어 Ubuntu13.04 시스템에서 빌드하는 방법을 설명합니다
Android 커널 컴파일 및 개발 플랫폼. Ubuntu에서 Android 커널 컴파일 환경을 구축하기 위한 구체적인 단계는 다음과 같습니다.
(1) 시스템 환경 설계, 필수 소프트웨어 패키지 목록 flex, bison, gperf, libsdl-dev, libesd0-
dev, libwxgtk2.6-dev (선택 사항), build-essential, zip, 컬 (2) JDK 버전 1.7을 설치합니다. (3) repo를 설치합니다. (4) 기본 파일 디렉터리에 bin 폴더를 만들고 추가합니다. 환경 변수 중에서 (5) repo 스크립트를 다운로드하고 해당 속성을 실행 가능한 것으로 변경합니다. curhttp:///repo>~/bin/repochmoda+x~/bin/repo (6) 소스 코드를 저장할 디렉토리를 생성합니다. mkdircoredroidcdcoredroid ( 7) Android 커널 코드 가져오기: gitclonegit:///kernel/common.git
위 단계를 완료하면 최신 버전의 Android 커널이 coredroid 폴더에 다운로드됩니다. make 컴파일이 완료되면 zImage 파일이 생성됩니다. 시뮬레이터를 사용하여 cdmydroid/out/cupcake/out/target/product/genericemulator-imagesystem.img-datauserdata.img-ramdiskramdisk.img-kernel~을 테스트하고 실행할 수 있습니다. /coredroid/common/arch/arm/boot/zImage
5. 결론
Android 커널은 표준 Linux 커널에서 최적화되었으며 Linux 커널의 다양한 장점을 상속하고 표준 Linux 커널의 주요 구조를 유지합니다. 동시에 Android는 China Unicom 플랫폼의 필요에 따라 파일 시스템, 메모리 관리, 프로세스 간 통신 메커니즘, 전원 관리 및 기타 측면을 변경하고 관련 드라이버와 필요한 새 기능을 추가했으며 대부분의 플랫폼과 호환됩니다. 간소화된 임베디드 Linux 운영. 다른 시스템과 비교하여 Android는 표준 Linux의 기본 구조를 대부분 유지하므로 Android 시스템은 더 넓은 범위의 애플리케이션과 더 강력한 확장성을 갖습니다.
참고자료
[1]CodeHome.Android-AnOpenHandsetAllianceProject.[EB/OL]http:///android/what-is-android.
[2] Gong Lei, Zhou Cong. Android 기반 China Unicom 터미널 애플리케이션 개발 및 연구 [M] People's Posts and Telecommunications Press linux 커널 android, 2007
[3]Zhao Jiong. Linux 커널 전체 주석[M], 2004.
[4] Chen Lijun. Linux 커널 분석 및 응용[J]. Nanjing University of Posts and Telecommunications.
위 내용은 Android 커널과 표준 Linux 커널의 기능 업데이트 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!