커널 Configuration
리눅스 커널을 플랫폼 또는 목적에 맞게 빌드하기 위해서는 .config 파일을 생성하고, 적절한 옵션들을 구성해야 한다. 이 과정은 커널 빌드 전체의 품질과 기능성에 큰 영향을 미친다. 이 글에서는 커널 설정 방법에…
Linux Kernel
리눅스 커널을 플랫폼 또는 목적에 맞게 빌드하기 위해서는 .config 파일을 생성하고, 적절한 옵션들을 구성해야 한다. 이 과정은 커널 빌드 전체의 품질과 기능성에 큰 영향을 미친다. 이 글에서는 커널 설정 방법에…
Linux 커널은 다양한 방식으로 시스템의 상태와 이벤트를 기록한다. 가장 대표적인 로그 시스템은 **printk()**를 통해 출력되는 커널 메시지이며, 이 메시지들은 ring buffer 형태로 저장되어 /dev/kmsg 또는 dmesg 명령어로 확인할 수 있다.…
**SysRq(System Request)**는 리눅스 커널에 내장된 긴급 제어 백도어이다. 커널이 응답하지 않거나 시스템이 매우 불안정할 때도, SysRq 키 조합을 통해 시스템을 진단하거나 복구할 수 있도록 도와주는 기능을 한다. 이 글에서는 SysRq의…
임베디드 리눅스 디바이스를 개발할 때, 시리얼 콘솔을 통해 커널 디버깅 또는 긴급 명령을 보내는 경우가 있다. 그중 하나가 Magic SysRq 키 조합을 시리얼 포트를 통해 보내는 기능이다. Magic SysRq는 리눅스…
Linux 커널은 일반적으로 사용자 공간(user space)에서 동작하는 프로그램을 직접 실행하지 않는다. 그러나 특정 상황에서는 커널 모듈 또는 커널 코드에서 사용자 공간의 프로그램을 실행해야 할 필요가 때가 있다. 예를 들어, 커널에서…
Linux 커널에서 SysRq(System Request) 기능은 시스템이 비정상적인 상태에 빠졌을 때, 특정한 명령을 통해 커널의 동작을 조작하거나 시스템을 복구할 수 있도록 돕는 강력한 진단 도구이다. SysRq 키를 이용하면 커널 디버깅, 로그…
OverlayFS는 리눅스 커널에 내장된 파일 시스템 중 하나로, 여러 파일 시스템을 겹쳐서 하나의 파일 시스템처럼 사용할 수 있게 해준다. 주로 컨테이너 기술(예: Docker)에서 사용되며, 파일 시스템 계층을 결합하여 읽기와 쓰기…
kvmalloc() 함수는 리눅스 커널에서 메모리를 동적으로 할당하는 여러 함수 중 하나이다. 이 함수는 kmalloc()와 vmalloc()의 장점을 결합하여, 필요한 경우 페이지별로 물리적 메모리를 할당하는 기능을 제공한다. 이 글에서는 kvmalloc() 함수의 사용법과…
커널 개발에서 메모리 누수는 심각한 문제이다. 메모리 누수는 시스템의 성능을 저하시키고, 장기적으로는 시스템이 불안정해지는 원인이 될 수 있기 때문이다. 이를 해결하기 위해 Linux 커널은 Kernel Memory Leak Detector인 kmemleak 툴을…
커널 개발에서 메모리 버그는 예기치 않은 동작을 일으키고, 보안 취약점으로 이어질 수 있다. 이를 해결하기 위해 Linux 커널에서는 Kernel Address Sanitizer(KASAN)라는 강력한 도구를 제공한다. 이 기능을 커널에서 활성화 하면 메모리…