AAPCS: Subroutine Calls (서브루틴 호출)

AAPCS를 따르는 Arm 아키텍처에서는 서브루틴 호출을 위한 명령어를 사용하여 함수를 호출하고 복귀하는 방식을 취한다. 서브루틴 호출 명령어 Arm 명령어 세트에는 링크 포함 분기 작업을 수행하는 기본 서브루틴 호출 명령어 인…

Continue ReadingAAPCS: Subroutine Calls (서브루틴 호출)

AAPCS: 데이터 타입과 정렬

AAPCS(Procedure Call Standard for Arm Architecture)는 ARM 아키텍처의 32비트 모드에서 사용되는 응용 프로그램 바이너리 인터페이스이다. AAPCS에는 데이터 타입의 정의와 정렬 규칙이 포함되어 있어 소프트웨어 개발자들이 데이터의 표현과 메모리 구조에 대한…

Continue ReadingAAPCS: 데이터 타입과 정렬

AAPCS 소개

AAPCS(Procedure Call Standard for ARM Architecture)는 ARM 아키텍처에서 사용되는 응용 프로그램 바이너리 인터페이스이다. ARM 아키텍처에 대한 전체 ABI 사양의 일부를 구성한다. 설계 목표 AAPCS의 설계 목표는 다음과 같다. Thumb-state 와…

Continue ReadingAAPCS 소개

AAPCS와 EABI의 관계

AAPCS(Arm Architecture Procedure Call Standard)와 EABI(Embedded Application Binary Interface)는 ARM 아키텍처 기반의 시스템에서 사용되는 응용 프로그램 바이너리 인터페이스의 다른 측면을 나타낸다. 이 둘은 서로 밀접하게 관련되어 있으며, 아래에서 그 관계를…

Continue ReadingAAPCS와 EABI의 관계

리눅스 커널 initcalls: 초기화 함수 실행 메커니즘

리눅스 커널에서 initcalls는 초기화 함수를 실행하는 메커니즘으로 커널 초기화 단계에서 시스템의 다양한 구성 요소를 초기화하는 데 사용된다. 이번 글에서는 initcalls의 동작 원리와 사용 방법에 대해 알아보고, 커널 코드 및 예제를…

Continue Reading리눅스 커널 initcalls: 초기화 함수 실행 메커니즘

strace 사용법: 시스템 호출 추적 도구

strace는 리눅스에서 사용되는 디버깅 및 시스템 호출 추적 도구로, 실행 중인 프로세스가 시스템 호출을 어떻게 사용하는지 추적하고 분석하는 기능을 제공한다. strace를 사용하면 프로그램이 시스템 호출을 호출하고 반환하는 모든 상세한 정보를…

Continue Readingstrace 사용법: 시스템 호출 추적 도구

ltrace 사용법

ltrace는 리눅스에서 사용되는 디버깅 및 프로파일링 도구로, 실행 중인 프로그램이 호출하는 라이브러리 함수를 추적하고 분석하는 기능을 제공한다. 이를 통해 소프트웨어 개발자는 프로그램의 동작과 성능을 이해하고, 잠재적인 버그를 찾거나 성능 개선을…

Continue Readingltrace 사용법