Guillermo Austin Kim

Sources

Posts

998 posts

[Arm프로세서] AAPCS: Armv8: AAPCS와 관련된 레지스터와 어셈블리 명령어 분석

Guillermo Austin Kim|2021년 8월 29일

지금까지 AAPCS와 관련된 레지스터인 SP_ELn, X30 그리고 X0-X7 레지스터에 대해 알아봤습니다. 또한 서브 루틴을 호출할 때 실행되는 어셈블리 명령어를 소개했습니다. 이번 절에서는 어셈블리 명령어를 분석하면서 AAPCS와 관련된 레지스터가 어떻게 사용되는지 알아보겠습니다. 배운 내용을 복습하는 차원으로 AAPCS와 연관된 레지스터의 목록을 다음 표로 정리해 봅시다. 표 7.5 Armv8 아키텍처에서 정의된 AAPCS와 연관된 레지스터 먼저 SP 레지스터에 대해 소개하고, SP 레지스터가 어떻게 바뀌는지 어셈블리 명령어 분석으로 알아보겠습니다. Written by 저자

[Arm프로세서] AAPCS: Armv8: 브랜치와 복귀 명령어 - RET

Guillermo Austin Kim|2021년 8월 28일

마지막으로 AAPCS와 연관된 명령어로 RET 에 대해 알아봅시다. 다음은 Arm 스팩 문서에서 명시된 RET 명령어에 대한 내용입니다. C6.2.219 RET Return from subroutine branches unconditionally to an address in a register, with a hint that this is a subroutine return.[출처: DDI0487Fc_armv8_arm.pdf] Armv8 아키텍처에서 꼭 알아둬야 할 명령어가 RET입니다. RET는 Return from subroutine의 약자인데, 서브 루틴을 호출한 후 복귀할 주소가 담긴 X30 레지스터의 값을 PC로 로딩하는 역할을 수행합니다. 여기서 X30 레지스터의 값을 PC에 로딩하는 동

[리눅스커널] 메모리 매니지먼트: 존(struct zone) 구조체에 접근하기

Guillermo Austin Kim|2021년 8월 25일

< v5.10: 커널 버전 > 많은 분들은 리눅스 메모리 시스템은 다음과 같은 구조로 구성돼 있다고 알고 있습니다. 메모리 뱅크 - 노드 -- 존 #1 -- 존 #2 존은 'struct zone' 구조체로 확인할 수 있습니다. 그런데 zone 구조체의 필드는 어떻게 접근할 수 있을까요? 이번 포스트는 zone 구조체를 디버깅하는 방법을 소개합니다. 라즈베리 파이에서 zone 구조체의 필드 확인하기 zone 구조체의 필드는 어떻게 확인할 수 있을 까요?OOM Killer가 실행할 때 커널 로드에서 각 존 별로 존재하는 페이지의 갯수를 출력합니다. 다음은 라즈비안에서 'echo f > /proc/sysrq-trigger' 명령어를 입력하면 OOM Killer가 실행될 때 출력되

[우분투/ubuntu] clang12 설치 및 clang 커널 빌드

Guillermo Austin Kim|2021년 8월 24일

이번 포스트에서는 우분투에서 clang12를 설치하는 방법을 소개합니다.참고로 우분투 버전은 20.04입니다. 'sudo apt install clang-12 --install-suggests' 명령어를 사용해 clang12를 설치합니다. $ sudo apt install clang-12 --install-suggests Reading package lists... DoneBuilding dependency tree Reading state information... DoneThe following packages were automatically installed and are no longer required: clang-12-doc fonts-font-awesome fonts-mat

[리눅스] 라즈비안: 7z 파일 압축 풀기

Guillermo Austin Kim|2021년 8월 22일

라즈비안에서 '7z 파일' 압축을 풀고 싶을 때가 있다. p7zip 유틸리티를 설치 먼저 p7zip 유틸리티를 설치하자. $ apt install p7zip root@raspberrypi:/home/pi/work/crash_dump/out# apt install p7zipReading package lists... DoneBuilding dependency treeReading state information... DoneThe following package was automatically installed and is no longer required: python-colorzeroUse 'sudo apt autoremove' to remove it.Suggested packages: p7zi