커널
Posts
228 posts[리눅스커널] 시스템 콜: GNU C 라이브러리 실행 흐름
유저 공간에서 시스템 콜을 실행하려면 리눅스 저수준 표준 함수를 호출해야 합니다.저수준 표준 함수는 glibc 라이브러리에 구현돼 있습니다. 그래서 실제 시스템 콜을 발생하는 코드를 확인하기 어렵습니다. glibc 라이브러리 파일은 어디있을까요? 리눅스 배포판마다 다르지만 라즈베리파이에서는 glibc는 라즈베리파이에서 다음 경로에 있는 libc.a란 파일입니다.root@raspberrypi:/home/pi# ls /usr/lib/arm-linux-gnueabihf/libc.a/usr/lib/arm-linux-gnueabihf/libc.a libc.a 를 리눅스에서 제공하는 라이브러리라고 하며 표준 입출력 함수과 프로세스 생성 요청과 같은 핵심 동작을 수행합니다. 이번 시간에는 libc.a 파일에
[리눅스커널] 시스템 콜: 시스템 콜의 특징 알아보기
이번 소절에서는 시스템 콜의 특징을 알아보겠습니다. 앞서 알아봤듯이 시스템 콜은 유저 모드에서 커널 모드로 진입하는 관문입니다. 소프트웨어 구조 관점으로 보면 시스템 콜은 유저 공간과 커널 공간 사이 가상 계층으로 볼 수도 있습니다. 이 계층은 다음과 같은 특징이 있습니다.1. 시스템 콜 계층으로 시스템 안정성과 보안을 지킬 수 있습니다. 유저모드에서 어플리케이션이 커널 공간에 아무런 제약 없이 접근한다고 가정합시다. 실수로 어플리케이션이 커널 코드 영역 메모리를 오염시키면 시스템은 오동작할 가능성이 높습니다. 그래서 유저 모드에서 시스템 콜로만 커널 모드에 진입해서 제한된 메모리 공간에 접근하는 것입니다. 2. 유저 어플리케이션에서 추상화된 하드웨어 인터페이스를 제공합니다. 유저 모드에서 구동 중인 어
[리눅스커널] 메모리 관리: kmalloc 캐시 슬럽 오브젝트 할당 커널 함수 분석하기
우리는 'kmalloc() 함수를 호출하면 동적 메모리를 할당할 수 있다.'란 사실을 알고 있습니다. 하지만 kmalloc() 함수에서 호출하는 커널 내부 함수는 거의 분석하지는 않는 듯 합니다. 이번 시간에는 kmalloc() 함수와 이 함수에서 호출하는 다음 함수를 분석합니다.kmalloc_index()kmem_cache_alloc_trace()slab_alloc()slab_alloc_node() kmalloc() 함수 분석하기 우리가 드라이버 드라이버에서 동적 메모리를 할당할 때 주로 사용하는 함수는 kmalloc()입니다. 그런데 kmalloc() 함수는 생각보다 분석하기 어렵습니다. 슬랩 캐시와 슬럽 오브젝트의 개념을 알고 있어야 분석이 가능하기 때문입니다. 이어서
[리눅스커널] 시간관리: jiffies란 무엇인가
jiffies란 많은 리눅스 커널 세부 함수에서 jiffies를 써서 실행 시간 기준으로 알고리즘을 제어합니다. 이번 시간에 jiffies의 개념을 소개하고 리눅스 커널에서 jiffies로 시간의 흐름을 제어하는 코드를 소개합니다. jiffies 소개jiffies는 커널 타이머를 실행하는 시간 단위입니다. 공학 용어로 Resolution와 비슷한 개념입니다. jiffies를 지피스라고도 부르기도 합니다. 하지만 이번 챕터에서 리눅스 커널에서 쓰는 jiffies란 용어를 그대로 쓰겠습니다. HZ란 무엇일까 jiffies 개념을 이해하려면 HZ가 무엇인지 알아야 합니다. HZ는 무엇일까요? HZ는 진동수라고 부르며 1초에 지피스(jiffies)가 업데이트되는 횟수이다. 만약 HZ가 300이면 지피



![[CV] [Comi] 'ファイブスター物語'(더 파이브 스타 스토리즈) 19권. 연재분에서 벌어지는 '검성 대 검성'](https://img.zoomtrend.com/2026/06/06/1780766083-ECB2ABEB93B1EC9EA5EB8DB0ECBD94EC8AA4.jpg)