SysRq Context 제약조건
Linux 커널에서 SysRq(System Request) 기능은 시스템이 비정상적인 상태에 빠졌을 때, 특정한 명령을 통해 커널의 동작을 조작하거나 시스템을 복구할 수 있도록 돕는 강력한 진단 도구다. SysRq 키를 이용하면 커널 디버깅, 로그…
Linux Kernel
Linux 커널에서 SysRq(System Request) 기능은 시스템이 비정상적인 상태에 빠졌을 때, 특정한 명령을 통해 커널의 동작을 조작하거나 시스템을 복구할 수 있도록 돕는 강력한 진단 도구다. SysRq 키를 이용하면 커널 디버깅, 로그…
OverlayFS는 리눅스 커널에 내장된 파일 시스템 중 하나로, 여러 파일 시스템을 겹쳐서 하나의 파일 시스템처럼 사용할 수 있게 해준다. 주로 컨테이너 기술(예: Docker)에서 사용되며, 파일 시스템 계층을 결합하여 읽기와 쓰기…
kvmalloc() 함수는 리눅스 커널에서 메모리를 동적으로 할당하는 여러 함수 중 하나이다. 이 함수는 kmalloc()와 vmalloc()의 장점을 결합하여, 필요한 경우 페이지별로 물리적 메모리를 할당하는 기능을 제공한다. 이 글에서는 kvmalloc() 함수의 사용법과…
커널 개발에서 메모리 누수는 심각한 문제이다. 메모리 누수는 시스템의 성능을 저하시키고, 장기적으로는 시스템이 불안정해지는 원인이 될 수 있기 때문이다. 이를 해결하기 위해 Linux 커널은 Kernel Memory Leak Detector인 kmemleak 툴을…
커널 개발에서 메모리 버그는 예기치 않은 동작을 일으키고, 보안 취약점으로 이어질 수 있다. 이를 해결하기 위해 Linux 커널에서는 Kernel Address Sanitizer(KASAN)라는 강력한 도구를 제공한다. 이 기능을 커널에서 활성화 하면 메모리…
이 글에서는 리눅스 커널 소스의 주요 구조를 간략하게 알아본다. arch arch 하부 디렉토리에는 아키텍처별로 동작하는 커널 코드가 있다 .예를 들어, x86, ARM, MIPS 등 아키텍처 dependency가 있는 코드들이 위치한다. /arch…
라즈베리파이 4의 커널을 빌드하는 과정은 특별한 상황이나 하드웨어 지원을 확장하고자 할 때 유용하다. 이 글에서는 라즈베리파이 4의 커널을 빌드하는 방법에 대해 알아본다. 1. 필수 도구 설치 커널을 빌드하기 위해 필요한…
ftrace는 리눅스 커널에 내장된 강력한 추적 도구로, 함수 호출, 스케줄 및 이벤트 추적을 가능하게 하는 강력한 디버깅 및 프로파일링 도구이다. 이 블로그 글에서는 ftrace를 사용하여 리눅스 커널 함수를 추적하는 방법에…
dump_stack() 함수는 리눅스 커널 디버깅의 핵심 도구 중 하나로, 콜 스택을 커널 로그로 볼 수 있게 한다. 커널 개발자들은 이 함수를 활용하여 프로그램의 동작을 추적하고 문제 해결을 위한 힌트를 얻을…
printk() 함수는 리눅스 커널에서 메시지 출력과 디버깅을 위한 핵심 도구 중 가장 기본이 되는 도구이다. 이 글에서는 printk() 함수의 기능, 사용법, 예제 코드, 그리고 유용한 팁에 대해 알아본다. printk() 함수…