리눅스 커널에서 VFS 객체 처리 및 기본 I/O 함수 구조

VFS 객체 관리 및 파일 시스템 등록 파일 시스템 등록 절차: 리눅스 커널은 모듈 형태나 정적으로 빌드된 파일 시스템을 동적으로 인식하기 위해 register_filesystem 함수를 사용한다. 이 함수는 전역 리스트에 파일 시스템 타입을 추가하며, 중복 등록을 방지하기 위해 이름 기반 검사를 수행한다. 현재 시스템에 등록된 모든 파일 시스템은 /proc/filesystems를 통해 ...

8월 4일 01:20에 게시됨

Docker 네트워크 모드 성능 비교 분석: Bridge와 Host 모드의 처리량 및 지연 시간 검증

Docker 네트워크 구조에 따른 성능 영향 분석 컨테이너화된 환경에서 네트워크 모델의 선택은 애플리케이션의 처리량(Throughput)과 응답 속도에 결정적인 영향을 미칩니다. 본 기술 문서에서는 Docker의 가장 핵심적인 두 가지 네트워크 모드인 Bridge와 Host의 내부 동작 원리를 살펴보고, 실제 벤치마크 데이터를 통해 두 모드 간의 성능 차이를 심층 분석합니다. 네트 ...

7월 26일 22:10에 게시됨

cgroup v2 지원 추가 구현

개요 이 문서에서는 컨테이너 런타임에 cgroup v2 지원을 추가하는 방법을 설명합니다. 시스템의 cgroup 버전을 자동으로 감지하여 적절한 제어 방식을 적용합니다. 구현 cgroup 버전 확인 시스템에서 사용 중인 cgroup 버전은 다음 명령어로 확인할 수 있습니다: stat -fc %T /sys/fs/cgroup/ 출력 결과가 cgroup2fs이면 v2를, tmpfs이면 v1을 의미합니다. Go 언어로 구 ...

7월 15일 16:00에 게시됨

CentOS 기반 시스템 리소스 관리를 위한 CGroup 과 cgred 적용 방법

CGroup 기술 개요 및 핵심 기능 리눅스 커널이 제공하는 리소스 제어 메커니즘 중 하나인 CGroup(Control Group)은 실행 중인 프로세스 집단에 대해 하드웨어 자원의 할당량을 정의하고 모니터링할 수 있게 해줍니다. Google 엔지니어 팀에 의해 제안되어 초기에는 '프로세스 컨테이너'로 불리다가, 혼란을 줄이기 위해 현재와 같은 명칭으로 변경되어 내장되었습니다. 이 ...

7월 7일 16:18에 게시됨

리눅스 커널 USB 가젯(Gadget) 드라이버 프레임워크 분석

리눅스 시스템에서 USB 장치 모드(Peripheral Mode)를 구현하기 위한 핵심 요소는 USB 가젯(Gadget) 서브시스템입니다. 관련 소스 코드는 주로 커널 내의 drivers/usb/gadget/ 경로에서 관리됩니다. USB 장치 논리 계층 구조 USB 장치는 호스트와의 통신을 위해 복잡한 계층 구조를 가집니다. 일반적인 구조는 루트(Root)에서 포트(Port), 장치(Device), 그리고 최종적으 ...

6월 7일 00:24에 게시됨

리눅스 프로세스 관리의 핵심 구조와 생명주기

프로세스와 스레드의 관계 리눅스에서 프로세스는 자원 할당의 기본 단위이며, 스레드는 실행의 기본 단위이다. 모든 스레드는 프로세스 내에서 동작하며, 같은 주소 공간과 시스템 자원을 공유한다. 커널 입장에서는 스레드도 하나의 독립된 작업 단위(task)로 간주되며, task_struct 구조체로 표현된다. 프로세스의 내부 표현: task_struct 커널은 각 프로세스를 struct ...

6월 6일 23:37에 게시됨

RK3588 성능 모니터링 및 최적화 완벽 가이드

1. RK3588 성능 모니터링 도구 이해하기 RK3588 칩셋은.edge 컴퓨팅 디바이스부터 고급 태블릿, 다양한 AIoT 기기에 이르기까지 광범위하게 활용되고 있다. 6Tops NPU를 갖춘 이 칩셋은 AI 애플리케이션 구현을 상당히 용이하게 만들어 주지만, 제대로 활용하지 않으면 발열 문제나 프레임 레이트 불안정으로 인해 결국 성능을 낮춰야 하는 상황에 직면할 수 있다. 이러한 ...

6월 3일 23:15에 게시됨

리눅스 블로킹 및 논블로킹 IO机制的 이해와 구현

블로킹과 논블로킹 IO 개요 1. IO의 기본 개념 IO(Input/Output)는 애플리케이션이 디바이스 드라이버와 데이터를 교환하는 작업을 의미한다. 애플리케이션이 디바이스 자원에 접근할 때, 자원을 즉시 확보할 수 없으면 블로킹 IO는 해당 스레드를 일시 중단(suspend)시킨다. 반면 논블로킹 IO는 스레드를 중단시키지 않고,要么轮询等待直到资源可用,要么直接返回错误 ...

5월 21일 14:22에 게시됨