버추얼박스(VirtualBox) 우분투(ubuntu) 설치
로컬에 리눅스 머신을 구축하는 가장 간단한 방법 중 하나는 가상 환경을 구축하고 리눅스를 설치하는 것이다. 이 글에서는 버추얼박스(VirtualBox)를 설치하고 가상 머신을 생성하여 우분투(ubuntu) 설치하는 방법을 알아본다. 버추얼박스 설치 가상버신은 버추얼박스를…
로컬에 리눅스 머신을 구축하는 가장 간단한 방법 중 하나는 가상 환경을 구축하고 리눅스를 설치하는 것이다. 이 글에서는 버추얼박스(VirtualBox)를 설치하고 가상 머신을 생성하여 우분투(ubuntu) 설치하는 방법을 알아본다. 버추얼박스 설치 가상버신은 버추얼박스를…
ARM은 32비트 RISC(Reduced Instruction Set Computing) 마이크로프로세서 아키텍처이다. 초기에는 주로 저전력 소비를 위해 설계되었지만, 현재는 다양한 분야의 기기에서 널리 사용되고 있다. ARM 아키텍처에 대해 요약해 본다. 프로세서 모드 ARM 프로세서는…
AAPCS를 따르는 Arm 아키텍처에서는 서브루틴 호출을 위한 명령어를 사용하여 함수를 호출하고 복귀하는 방식을 취한다. 서브루틴 호출 명령어 Arm 명령어 세트에는 링크 포함 분기 작업을 수행하는 기본 서브루틴 호출 명령어 인…
프로세스의 메모리는 일반적으로 다섯 가지 범주로 분류할 수 있다. Code (Program)는 프로세스에서 읽을 수 있어야 하지만 쓸 수는 없다. Read-Only static data Writable static data Heap(힙) Stack(스택) Writable static 데이터는…
AAPCS(Procedure Call Standard for Arm Architecture) 기본 프로시저 호출 표준은 Arm 명령어 집합에 공통인 기계 수준의 코어 레지스터만 사용하는 호출 표준을 정의한다. 머신 레지스터(Machine Registers) Arm 아키텍처는 핵심 명령어 세트와…
AAPCS(Procedure Call Standard for Arm Architecture)는 ARM 아키텍처의 32비트 모드에서 사용되는 응용 프로그램 바이너리 인터페이스이다. AAPCS에는 데이터 타입의 정의와 정렬 규칙이 포함되어 있어 소프트웨어 개발자들이 데이터의 표현과 메모리 구조에 대한…
AAPCS(Procedure Call Standard for ARM Architecture)는 ARM 아키텍처에서 사용되는 응용 프로그램 바이너리 인터페이스이다. ARM 아키텍처에 대한 전체 ABI 사양의 일부를 구성한다. 설계 목표 AAPCS의 설계 목표는 다음과 같다. Thumb-state 와…
AAPCS(Arm Architecture Procedure Call Standard)와 EABI(Embedded Application Binary Interface)는 ARM 아키텍처 기반의 시스템에서 사용되는 응용 프로그램 바이너리 인터페이스의 다른 측면을 나타낸다. 이 둘은 서로 밀접하게 관련되어 있으며, 아래에서 그 관계를…
리눅스 커널에서 initcalls는 초기화 함수를 실행하는 메커니즘으로 커널 초기화 단계에서 시스템의 다양한 구성 요소를 초기화하는 데 사용된다. 이번 글에서는 initcalls의 동작 원리와 사용 방법에 대해 알아보고, 커널 코드 및 예제를…
strace는 리눅스에서 사용되는 디버깅 및 시스템 호출 추적 도구로, 실행 중인 프로세스가 시스템 호출을 어떻게 사용하는지 추적하고 분석하는 기능을 제공한다. strace를 사용하면 프로그램이 시스템 호출을 호출하고 반환하는 모든 상세한 정보를…