본문 바로가기

IT 이야기10

Android System booting 순서 안드로이드 시스템의 부팅 과정은 리눅스 커널을 기반으로 하지만, 안드로이드 고유의 초기화 과정과 서비스 관리가 추가됩니다. 안드로이드의 init 프로세스는 리눅스의 init 프로세스와 유사하지만, 안드로이드에 특화된 설정과 스크립트를 사용합니다. 그럼 안드로이드 시스템에서의 부팅 순서를 자세히 살펴보겠습니다.1. 부트로더 (Bootloader) 부트로더는 안드로이드 디바이스가 켜질 때 가장 먼저 실행되는 소프트웨어입니다. 부트로더는 하드웨어 초기화 및 설정을 수행하고, 커널과 램디스크(initramfs)를 메모리에 로드하고나서, 커널의 시작 지점으로 제어를 넘깁니다. 2. 커널 초기화 커널이 메모리에 로드되면, 커널의 초기화 코드가 실행됩니다.CPU, 메모리, 인터럽트, 타이머 등의 하드웨어 초기화가 수.. 2024. 6. 20.
Perfetto - Recording traces on Android boot Android 13(T)부터는 Perfetto를 이용하여 booting시의 trace를 잡을 수 있습니다. boot process를 profiling할 때 크게 도움이 될 수 있을 거라 생각이 되어 어떻게 Perfetto를 이용하여 trace를 잡는 지 설명하도록 하겠습니다. Steps: 1. 먼저 Perfetto trace를 Record하기 위해서는 아래와 같이 Text 포맷으로 Recording 할 내용이 담긴 config 파일을 생성해야 합니다. # One buffer allocated within the central tracing binary for the entire trace, # shared by the two data sources below. buffers { size_kb: 32768.. 2023. 12. 1.
Android file system table (fstab.<device>)을 알아봅시다. 오늘은 Android의 Filesystem mount table을 공부해보려고 합니다. fstab의 정의 Linux 시스템에서는 file system table을 의미하는 fstab 파일에 장치이름, 마운트 지점, 파일 시스템 유형 및 파티션 보관일정이 정의 되어 있습니다. 이는 mount를 쉽게하기 위한 configuration table입니다. 그리고 부팅 시에 이 정보를 읽어 파일 시스템을 마운트 해야하는 지 여부와 파일시스템 checker(/system/e2fsck) 가 부팅시 파티션에서 오류를 확인하는 순서를 결정하게 됩니다. Android의 fstab. 파일을 열어보면 아래와 같은 정보들이 있는 것을 확인할 수 있습니다. 아래 예에서는 fstab 항목들에 logical partition으로 s.. 2022. 12. 5.
[Memory Usage] Memory 상태 분석 Android의 경우 Memory Usage를 측정할 때 많이 사용하는 명령어는 adb shell 명령어 중 하나인 dumpsys meminfo 입니다. dumpsys meminfo에 대해서는 다른 포스트를 이용하여 설명하기로 하고 이번에는 Linux에서 제공하는 Memory 확인 명령어인 "free" 와 "/proc/meminfo"에 대해 알아보도록 하겠습니다. 먼저 adb shell에서 간단하게 현재 시스템의 메모리 상태를 확인하려면 "free -m" (여기서 -m 옵션은 용량을 MB로 출력하라는 옵션입니다.)명령어를 입력하시면 됩니다. 그러면 아래와 같은 정보가 출력됩니다. 아래 내용을 보면 첫 줄의 값 중 used값인 3508이 사용 중인 메모리이고 free 값인 4173이 사용가능한 메모리로 생.. 2021. 12. 17.