Kernel Basic
Basic (CPIO unpack/pack, Extracting vmlinux, mitigations, ETC) of Kernel
컴퓨터 구조를 배우면서, MIPS 아키텍쳐에 대해 공부하고 있다. MIPS의 경우, pipeline을 도입하고 branch prediction을 위해 여러 방법을 사용한다고 한다. 그 방법 중 static prediction의 방법으로 해당 branch가 거짓일 경우(즉, jump를 수행하지 않는 분기)로 예상하는 방법이 존재한다고 한다.
이 방법을 보고나서 gcc의 __builtin_expect나 C++20의 likely 및 unlikely attribute가 이러한 분기 예측을 기반으로 구성되어 있는 것이 아닌가하는 생각이 들었다. 따라서 이를 간단하게 분석해보고자 하였다.
GCC에서는 컴파일러에게 도움을 줄 수 있는 여러 builtin macro를 제공한다.
앞서 언급했듯, 그 중에는 __builtin_expect
와 __builtin_expect_with_probability
가 존재한다.
BoB 에서 받은 노트북 갤럭시 북 2 프로 (NT951XED) 에 리눅스, 그 중에서도 Arch Linux 를 깔아서 쓰는 법을 정리한 글이다. 이 글에서 다루는 내용은 다음과 같다.
또한 Arch Linux 를 설치하는 환경은 다음과 같다.
다음 주소에서 아치 리눅스 부팅 ISO 파일을 다운로드한다.