[커널 17차 A조] 13주차
2020.11.21 21:42
2020년 11월 21일
linux version : mainline 5.9
head.S 종료
SYM_FUNC_START_LOCAL(__primary_switched)
.macro kernel_ventry, el, label, regsize = 64
http://jake.dothome.co.kr/arm64-vector/
TBNZ x0, #THREAD_SHIFT를 하는 이유:
관련 commit: 872d8327ce8982883b8237b2c320c8666f14e561
TPIDRRO_EL0, EL0 Read-Only Software Thread ID Register
스택 오버플로우 발생 시, 오버플로우 스택 생성
__primary_switched
X29에는 값이 없으므로 0으로 넣는다. (함수 콜을 한 적이 없으므로)
관련 커밋 60699ba18b69ff210ed0304bc23f6c9d11d27a72
__efistub_memset = __pi_memset;
기존에는 memset을 사용하지 않고, 직접 반복문을 사용하는 식으로 BSS를 초기화했는데, 이제 memset을 사용한다.
TST X23, ~(MIN_KIMG_ALIGN - 1) - 상위 비트가 0이라면 kaslr_early_init()함수를 실행하지 않았다는 의미이다.
즉, primary_switched를 처음 실행한 것이이다.
CONFIG_RANDOMIZE_BASE이 설정되어 있고 Randomize가 되어 있지 않으면
kaslr_early_init으로 진입하여, KASLR을 위한 무작위 값을 x23에 update 한다.
HEAD.S 종료
자료
https://docs.google.com/presentation/d/1mg9ZJGTZOdFBgcrqNyp_-M_dReu5wP59esIury_U57Y/edit?usp=sharing
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [공지] 스터디 정리 노트 공간입니다. | woos | 2016.05.14 | 627 |
248 | [커널 19차] 103 주차 | Min | 2024.04.28 | 7 |
247 | [커널 20차] 48주차 | 무한질주 | 2024.04.25 | 23 |
246 | [커널 19차] 102 주차 | Min | 2024.04.20 | 38 |
245 | [커널 19차] 101 주차 | Min | 2024.04.13 | 63 |
244 | [커널 19차] 100 주차 | Min | 2024.04.13 | 16 |
243 | [커널 19차] 99 주차 | Min | 2024.03.30 | 82 |
242 | [커널 19차] 98 주차 | Min | 2024.03.23 | 55 |
241 | [커널 19차] 97 주차 | Min | 2024.03.16 | 50 |
240 | [커널 19차] 96 주차 | Min | 2024.03.14 | 32 |
239 | [커널 19차] 95 주차 [2] | Min | 2024.03.03 | 111 |
238 | [커널 20차] 32주차 | brw | 2023.12.16 | 387 |
237 | [커널 20차] 29주차 | brw | 2023.11.27 | 161 |
236 | [커널 20차] 27주차 | brw | 2023.11.21 | 86 |
235 | [커널 20차] 26주차 | brw | 2023.11.21 | 48 |
234 | [커널 20차] 28주차 | 이민찬 | 2023.11.19 | 64 |
233 | [커널 20차] 25주차 | 이민찬 | 2023.10.30 | 120 |
232 | [커널 20차] 24주차 | 이민찬 | 2023.10.22 | 746 |
231 | [커널 20차] 23주차 | 이민찬 | 2023.10.14 | 81 |
230 | [커널 20차] 22주차 | 이민찬 | 2023.10.08 | 76 |
229 | [커널 20차] 21주차 | 이민찬 | 2023.09.23 | 116 |
.