[커널 17차 A조] 17주차

2020.12.21 13:36

주영 조회 수:100

2020년 12월 19일

 

linux version : mainline 5.9

 

init/main.c.   start_kernel();

 

early_security_init(); 분석

setup_arch(); 분석

 

init_mm.start_code = (unsigned long) _text;

init_mm.end_code = (unsigned long) _etext;

init_mm.end_data = (unsigned long) _edata;

init_mm.brk = (unsigned long) _end;

 

start_data가 없는 이유. 0으로 사용하기 때문

 

E0PD - kpti가 하는 역할을 한다.

E0PD를 사용하면 false를 반환하여 kpti 역할을 대신하고 E0PD를 지원하지 않으면 kpti를 사용한다.

 

early_fixmap_init(); 분석 중

early_fixmap_init()은 Head.s의 kaslr_early_init과 setup_arch()에서 두 번 실행한다.

 

struct mm_struct init_mm의 pgd는 swapper_pg_dir 가 아닌 init_pg_dir이다.
// arch/arm64/include/asm/mmu.h
#define INIT_MM_CONTEXT(name)   \
    .pgd = init_pg_dir,

 

 

저녁 시간

이론 분석 - 다음주 진행

 

자료

https://github.com/iamroot17A/linux

XE Login