ARMv8 A64 Quick Reference
ARMv8부터 새로 추가된 64비트 명령어 집합 A64(AArch64 상태에서 실행)는 기존 32비트 ARM/Thumb(A32/T32)과 문법이 상당히 다르다. 레지스터 이름, 조건 코드, 주소 지정 방식을 매번 ARM 공식 문서에서 찾아보기는 번거롭기 때문에, 자주…
ARMv8부터 새로 추가된 64비트 명령어 집합 A64(AArch64 상태에서 실행)는 기존 32비트 ARM/Thumb(A32/T32)과 문법이 상당히 다르다. 레지스터 이름, 조건 코드, 주소 지정 방식을 매번 ARM 공식 문서에서 찾아보기는 번거롭기 때문에, 자주…
epoll은 nginx, Node.js, Python asyncio, 각종 데이터베이스는 물론 안드로이드의 이벤트 루프까지 떠받치는 리눅스의 핵심 I/O 멀티플렉싱 기능입니다. 그런데 2026년 5월, 이 epoll 서브시스템에서 일반 사용자 권한만으로 root를 딸 수 있는…
KASAN(Kernel Address SANitizer)은 리눅스 커널에서 메모리 버그를 탐지하고 디버깅하는 도구로, 메모리 오버플로우 및 언더플로우, use-after-free 같은 일반적인 메모리 관련 오류를 검출하는 데 도움을 준다. 이 글에서는 KASAN 사용 방법에 대해…
2026년 6월 1일 대만 컴퓨텍스 무대에서 젠슨 황 엔비디아 CEO는 "40년 만에 PC를 다시 발명하고 있다"고 선언하며 새 PC 플랫폼 'RTX 스파크(RTX Spark)'를 공개했습니다. 그동안 엔비디아는 데이터센터용 GPU와 Grace Hopper·Grace…
Embedded SoC 중에는 HW 압축 Unit을 내장한 것들이 있고, 이런 유닛은 대개 리눅스 커널의 crypto subsystem에 압축 알고리즘으로 등록돼 zram 같은 모듈에서 바로 활용할 수 있다. 문제는 squashfs다. AppImage, snap,…
CMake로 여러 타깃을 나눠 빌드하다 보면 "라이브러리는 분명히 링크했는데 헤더를 못 찾는다"는 에러를 자주 마주친다. 원인은 대부분 target_link_libraries의 PUBLIC/PRIVATE/INTERFACE 키워드를 잘못 골랐기 때문이다. 이 세 키워드는 단순히 "링크한다/안 한다"가 아니라,…
이번 주 LWN.net 위클리 에디션 주요 내용이다. 커널 crypto/CRC API를 라이브러리 형태로 재편 중인 작업, 파일시스템 iomap 계층 해설, LSFMM+BPF 서밋 후속 세션(negative dentry 제한, 더 빠른 RCU와 락 없는…
리눅스 커널의 CPU 스케줄러(CFS 등)는 범용 워크로드에 맞춰 설계됐지만, 게이밍처럼 짧은 지연시간이 중요한 워크로드와 데이터센터의 처리량 위주 워크로드, 배터리 절약이 우선인 모바일 워크로드를 하나의 스케줄링 정책으로 동시에 만족시키기는 어렵다. 과거에는…
C++ 프로젝트가 파일 몇 개를 넘어서면 컴파일 명령이 금방 복잡해진다. 소스 파일이 여러 디렉터리에 흩어지고, 라이브러리를 따로 빌드해서 링크해야 하고, 리눅스에서는 GCC, macOS에서는 Clang, 윈도우에서는 MSVC를 각각 다르게 호출해야 한다.…
2026년 7월 첫째 주, 우분투 진영에서 한꺼번에 여러 소식이 쏟아졌습니다. 지난 4월 출시된 26.04 LTS "Resolute Raccoon"이 첫 포인트 릴리스를 앞두고 있는 와중에, 7월 1일에는 20.04 LTS부터 26.04 LTS까지 모든…