태그>linuxkernel(총 41개의 글)
'linuxkernel' 관련 최근글
-
- [리눅스커널] 커널 동적 타이머를 사용해 실행 시각을 측정해보기
-
Linux Kernel(4.19) Hacks by AustinKim|12/08 09:46
이번에는 조금 더 재미있는 패치 코드를 같이 볼까요? 다음은 패치 코드의 내용입니다. diff -git a/kernel/workqueue.c b/kernel/workqueue.cindex cd8b61b.128c998 100644- a/kernel/workqueue.c+ b/kernel/workqueue.c@@ -49,7 +49,7 @@ #include #inc..
리눅스커널, linuxkernel, 디버깅, kernel, 커널타이머
- [리눅스커널] 커널 동적 타이머를 사용해 실행 시각을 측정해보기
-
- [LinuxKernel] What is critical section and..
-
Linux Kernel(4.19) Hacks by AustinKim|10/21 22:37
Kernel synchronization is a technique for designing or maintaining code that behaves as follows: 1. Only one process is accessed when executing a function or a specific ..
- [LinuxKernel] What is critical section and..
-
- [Crash-Utility] Radix Tree 디버깅: 'tree -t radix -N (struct radix..
-
Linux Kernel(4.19) Hacks by AustinKim|09/30 18:35
이번 시간에는 크래시 유틸리티로 라덱스 트리를 디버깅하는 방법을 소개합니다. 라딕스 트리(Radix Tree)를 보기 위한 명령어 크래시 유틸리티로 라덱스 트리 노드를 보기 위한 명령어 포멧은 다음과 같습니다. tree -t radix -N (struct radix_tree_node *) 구조체 주소..
tree, Crash-Utility, Radix, 리눅스커널, 리눅스
- [Crash-Utility] Radix Tree 디버깅: 'tree -t radix -N (struct radix..
-
- [리눅스커널] 가상파일시스템/파일객체: 파일 객체 함수 오퍼레이션
-
Linux Kernel(4.19) Hacks by AustinKim|09/03 21:02
가상 파일시스템에서 파일 시스템 별로 파일을 열고 쓰고 읽는 함수 포인터 테이블을 지원합니다. 이 정보를 파일 함수 오퍼레이션이라고 하며 다음 해더 파일에 정의돼 있습니다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/include/linux/fs.h]struct file_..
- [리눅스커널] 가상파일시스템/파일객체: 파일 객체 함수 오퍼레이션
-
- [리눅스커널] 가상파일시스템/소개: 함수 오퍼레이션이란 무엇인가
-
Linux Kernel(4.19) Hacks by AustinKim|09/03 20:58
이번 절에서 소개했듯이, 각각 파일 시스템에 액세스를 하기 위해서 먼저 가상 파일시스템에 접근합니다. 이 때 가상 파일 시스템에서 지원하는 4가지 객체에서 지정한 함수 포인터를 통해 파일 시스템 세부 함수에 접근합니다. 4개 객체별로 지정한 함수 포인터 연산을 함수 오퍼..
- [리눅스커널] 가상파일시스템/소개: 함수 오퍼레이션이란 무엇인가
-
- [리눅스커널] 메모리관리/디버깅: kmalloc() 함수로 메모리 할당 후 슬..
-
Linux Kernel(4.19) Hacks by AustinKim|09/03 20:48
이번 소절에서는 가상주소를 물리주소로 변환하는 과정을 실습으로 알아봅시다. 3장 3.6 절에 소개한 rpi_debugfs.c 소스를 활용해 실습을 진행합니다. 먼저 rpi_debugfs.c 소스를 입력하고 커널 빌드를 하시기 바랍니다. 패치 코드 입력 방법 알아보기 먼저 입력할 패치 코..
리눅스커널, 리눅스, linux, kernel, linuxkernel
- [리눅스커널] 메모리관리/디버깅: kmalloc() 함수로 메모리 할당 후 슬..
-
- [리눅스커널] 메모리관리/디버깅: 가상주소를 물리주소로 변환 확인 실습
-
Linux Kernel(4.19) Hacks by AustinKim|09/03 06:33
이번 소절에서는 가상주소를 물리주소로 변환하는 과정을 실습으로 알아봅시다. 3장 3.6 절에 소개한 rpi_debugfs.c 소스를 활용해 실습을 진행합니다. 먼저 rpi_debugfs.c 소스를 입력하고 커널 빌드를 하시기 바랍니다. 패치 코드 입력 방법 알아보기 먼저 입력할 패치 코..
리눅스, 리눅스커널, linux, linuxkernel, 라즈베리파이
- [리눅스커널] 메모리관리/디버깅: 가상주소를 물리주소로 변환 확인 실습
-
- [리눅스커널] 메모리관리/디버깅: ftrace로 메모..
-
Linux Kernel(4.19) Hacks by AustinKim|09/01 18:52
ftrace에서 지원하는 kmalloc와 kfree 이벤트를 사용하면 kmalloc()와 kfree() 함수를 호출할 때 세부 정보를 알 수 있습니다. kmalloc 이벤트: kmalloc() 함수로 메모리 할당을 요청했을때 동작 ..
리눅스, 리눅스커널, linux, linuxkernel, kernel
- [리눅스커널] 메모리관리/디버깅: ftrace로 메모..
-
- [리눅스커널] 메모리 관리: 슬럽 오브젝트 해제하는 kfree() 함수 분석하기
-
Linux Kernel(4.19) Hacks by AustinKim|09/01 18:42
kmalloc() 함수로 동적 메모리를 할당하고 난 후 사용하지 않으면 메모리를 반환해야 합니다. 이 때 kfree() 함수를 사용하면 됩니다. 이번 시간에는 kfree() 함수를 분석하면서 커널 내부에서 반환하는 동적 메모리를 어떻게 처리하는지 살펴보겠습니다.[https://github..
리눅스, linux, 리눅스커널, linuxkernel, 슬랩
- [리눅스커널] 메모리 관리: 슬럽 오브젝트 해제하는 kfree() 함수 분석하기
-
- [리눅스커널] 메모리 관리: kmalloc 캐시 슬럽 ..
-
Linux Kernel(4.19) Hacks by AustinKim|09/01 17:46
우리는 'kmalloc() 함수를 호출하면 동적 메모리를 할당할 수 있다.'란 사실을 알고 있습니다. 하지만 kmalloc() 함수에서 호출하는 커널 내부 함수는 거의 분석하지는 않는 듯 합니다. 이번 시간에는 kmal..
linux, linuxkernel, slab, 슬랩, 리눅스커널
- [리눅스커널] 메모리 관리: kmalloc 캐시 슬럽 ..
-
- [리눅스커널] 스핀락 플러그인 함수: spin_lock_irq()/spin_unlock..
-
Linux Kernel(4.19) Hacks by AustinKim|08/22 08:18
리눅스 커널 코드를 조금만 분석하면 spin_lock() 함수뿐만 아니라 spin_lock_irq() 함수를 써서 임계 영역을 보호하는 코드를 많이 볼 수 있습니다. 이렇게 커널은 스핀락 기능을 확장한 플러그인 형태 스핀락 함수들을 제공합니다. 이번 소절에서는 spin_lock() 함수..
- [리눅스커널] 스핀락 플러그인 함수: spin_lock_irq()/spin_unlock..
-
- [리눅스커널] 스케줄링: CFS 스케줄러를 이루는 주요 개념 알아보기
-
Linux Kernel(4.19) Hacks by AustinKim|07/08 11:08
CFS(Completely Fair Scheduler)는 2.6.23 커널 버전 이후 적용된 리눅스의 기본 스케줄러입니다. CFS이란 용어를 그대로 풀면 ‘완벽하게 공정한 스케줄러’라고 해석할 수 있습니다. 즉, 런큐에서 실행 대기 상태로 기다리는 프로세스를 공정하게 실행하도록 기회를 부..
vruntime, 리눅스커널, linuxkernel, CFS, 스케줄러
- [리눅스커널] 스케줄링: CFS 스케줄러를 이루는 주요 개념 알아보기
-
- [리눅스커널][시그널] 시그널 생성: __send_signal() 커널 함수..
-
Linux Kernel(4.19) Hacks by AustinKim|06/13 00:22
누군가 ‘시그널을 생성하는 핵심 함수가 무엇인가?’ 라고 질문을 한다면 _send_signal() 함수라고 대답할 수 있습니다. 그렇습니다. 시그널을 생성하는 핵심 함수는 _send_signal() 입니다. 이제부터 _send_signal() 함수 코드를 분석하겠습니다.[https://elix..
- [리눅스커널][시그널] 시그널 생성: __send_signal() 커널 함수..
-
- [리눅스커널][가상파일시스템] 파일 객체: close() 함수 연산 세부..
-
Linux Kernel(4.19) Hacks by AustinKim|04/02 20:01
파일 객체: close() 함수 연산 세부 동작 분석 다음 파일을 닫을 때 호출하는 sys_close() 함수 코드를 볼 차례입니다.1 SYSCALL_DEFINE1(close, unsigned int, fd)2 {3 int retval = _close_fd(current->files, fd);45 /* can't restart close syscal..
- [리눅스커널][가상파일시스템] 파일 객체: close() 함수 연산 세부..
-
- [리눅스커널][디버깅] 슬럽(슬랩) 오브젝트 레드존 데이터 구조 T32로..
-
Linux Kernel(4.19) Hacks by AustinKim|04/01 22:38
할당(Alloc)된 슬럽 오브젝트 데이터 스트럭처 파악하기 이전 포스팅에서는 Free 슬럽 오브젝트 주소인 0xC0067BC0 기준으로 어떤 패턴의 자료구조인지 파악했습니다. 이번 시간에서는 이미 할당된 슬럽 오브젝트의 데이터 스트럭처를 파악하겠습니다. _address|_data_|val..
- [리눅스커널][디버깅] 슬럽(슬랩) 오브젝트 레드존 데이터 구조 T32로..