Wonhyuk Yang2022년 7월 9일qspinlock note (feat. Paravirtualization)-WIP최근에 ETRI와 함께 Memos라는 역가상화 연구에 참여했다. 주제는 Guest 커널의 spinlock을 수정하여 성능 개선을 하는 것이였다. 이 주제에 대해 공부하면서 얻게된 spinlock에 대한 지식들을 정리하는 시간을 가져보도록 하겠다....
Wonhyuk Yang2022년 4월 18일Linux kernel ftrace 간단한 원리ftrace(function+tracer)는 커널 내부에서 어떤 일이 일어나는 지 확인하거나, 디버깅 혹은 성능 분석에 많이 사용되는 기능이다. 아래의 그림은 function_graph tracer을 이용하여 call chain을 확인한...
Wonhyuk Yang2022년 4월 17일Contiguous Memory Allocator 노트일반적으로 메모리를 할당 받을 때는 buddy 시스템을 통해 페이지를 할당 받는다. 다양한 anti-fragmentation 기법이 적용된 buddy 시스템이라도 부팅 후에는 지속으로 단편화가 발생하고, 따라서 연속된 큰 메모리를 할당하기...
Wonhyuk Yang2022년 1월 7일BPF 스터디 노트BPF(Berkley packet filter)는 패킷 필터 기능만 하는 것이 아니라 genric하고 유연한 instruction set을 제공하여 단순한 필터 이상의 일들을 할 수 있습니다. 작성된 BPF 프로그램은 여러 hook point에서...
Paran Lee2021년 12월 1일nolibc 최소한 구현으로 glibc 대체! 시스템 콜 정의도 엿보자nolibc.h 하나의 헤더 파일로 구성되어 있으며, v5.1-rc1 이후 tools/include/nolibc/nolibc.h 에 위치해 있습니다. 최소한의 syscall 및 main()을 호출하는 데 필요한 최소한의 시작 코드로 구성됩니다....
Wonhyuk Yang2021년 11월 30일가볍게 살펴보는 Per CPUpercpu는 "percpu: implement new dynamic percpu allocator"의 패치로 리뉴얼 되었습니다. 또한 뒤따르는 후속 패치들로 2800줄에 이르는 코드가 되었습니다. 다양한 내용이 반영된 최신의 percpu.c...
Paran Lee2021년 6월 1일[Practice] 64비트 RISC-V Linux Kernel 을 QEMU + GDB 를 활용하여 동적 분석하기Linux Kernel 컴파일 우리가 열심히 동적 분석할 대상인 리눅스 커널을 컴파일하기 위해 아래 패키지를 설치해보도록 해요. 이제 컴파일할 리눅스 소스코드를 받아야겠죠! 우선 컴파일 타켓을 설정하구요. 해당 파일을 source 커맨드로...