DUJINLABS.COM

Linux v6.18.37 · ARM64

ARM64 kernel 어셈블리

Linux v6.18.37 · 부팅, 예외 처리, 태스크 전환, 절전과 펌웨어 호출

파일별 해설

기존 head.S와 후속 문서 17개입니다. 후속 문서는 원본 전체와 명령·지시문별 해설을 함께 제공합니다. 주석과 빈 줄은 원문에 보존했습니다.

파일내용원본 줄 수
cpu-reset.SMMU를 끄고 새 진입점으로 이동하기53
efi-header.SImage 안의 EFI PE/COFF 헤더181
efi-rt-wrapper.SEFI 호출용 스택 전환과 예외 복구87
entry-fpsimd.SFP/SIMD·SVE·SME 레지스터 저장과 복원134
entry-ftrace.S함수 진입과 반환을 추적하는 어셈블리357
entry.S예외 진입·복귀와 태스크·스택 전환1100
head.S기존 부팅 분석 · 구간별 해설523
hibernate-asm.S최대 절전 이미지의 메모리 복원95
hyp-stub.S초기 EL2 벡터와 VHE 전환258
kuser32.S고정 주소에 놓이는 AArch32 보조 코드65
reloc_test_syms.S절대·상대 재배치 검사용 코드85
relocate_kernel.Skexec 페이지 목록을 복사하고 새 커널 시작하기100
sigreturn32.S32비트 시그널 복귀 트램펄린의 명령 바이트47
sleep.SCPU 상태 저장과 절전 복귀155
smccc-call.SSMC/HVC 인자 전달과 반환값 저장102
vdso-wrap.S64비트 vDSO 바이너리 포함24
vdso32-wrap.S32비트 vDSO 바이너리 포함19
vmlinux.lds.S커널의 코드·데이터·초기 테이블 배치411

연결해서 읽기

부팅은 head.S → EFI 헤더·링커 배치 → hyp-stub.S 순으로, 실행 중 예외는 entry.S → FP/SIMD·추적 순으로 볼 수 있습니다. 절전은 sleep.S → hibernate-asm.S, 새 커널 전환은 cpu-reset.S → relocate_kernel.S로 이어집니다.

명령·매크로·주소 표기 · 원본 버전과 SHA-256 · 검사 결과

범위와 버전

Linux v6.18.37의 arch/arm64/kernel 바로 아래 .S 파일 18개입니다. 하위 vdso·pi 폴더의 .S나 arch/arm64/mm 파일은 전체 해설 대상에 포함하지 않습니다. 연결된 헤더와 C 파일은 원문 확인용으로 수록했습니다.

설명과 그림은 이 버전의 원본을 기준으로 작성했습니다. 화면 구성은 저장해 둔 문c 블로그의 Sparkling 테마를 참고했습니다. 실제 커널 빌드와 보드 실행 시험은 수행하지 않았습니다.

맨 위로 ↑