일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- proc
- Apache
- slowpath
- lruvec
- mm_struct
- BLOCK
- allocator
- vmalloc
- spinlock
- buddy_system
- slab
- page
- fastpath
- strex
- NDK
- slub
- kafka
- kmalloc
- memory
- Linux
- pmap
- 카프카
- blk-mq
- Android
- multiqueue
- Kernel
- devicedriver
- vm_area_struct
- commit
- Network
- Today
- Total
목록Kernel (29)
Art of Pr0gr4m
리눅스 커널 네트워킹 스택에 대해 설명합니다. sk_buff, ICMP, IP, 라우팅 서브시스템, 이웃 서브시스템(ARP, NDISC), TCP, UDP, SCTP, netfilter 등에 대해 포스팅 중입니다. 블로그가 아닌 깃허브 페이지에 작성하였기 때문에 링크들을 첨부합니다. ※ 해당 포스트 내용들은 기본적으로 Linux Kernel Networking 서적을 레퍼런스로 하고 있습니다. 0-1. Linux Kernel Build Linux Kernel Build - Linux Kernel Analysis (pr0gr4m.github.io) Linux Kernel Build 해당 포스트는 Ubuntu 20.04 버전을 기준으로 리눅스 커널을 빌드하고 설치하는 방법을 설명합니다. pr0gr4m.git..
1. 디버깅을 통해 배우는 리눅스 커널의 구조와 원리 www.yes24.com/Product/Goods/90085976 디버깅을 통해 배우는 리눅스 커널의 구조와 원리 1 신입 리눅스 시스템 개발자부터 5년차 개발자가 실무를 하기 위해 알아야 할 리눅스 커널의 주요 서브시스템!실전 개발에서 신입 사원 옆에 친절한 선배 개발자가 앉아서 리눅스 커널에 대해 꼼 www.yes24.com www.yes24.com/Product/Goods/90087307 디버깅을 통해 배우는 리눅스 커널의 구조와 원리 2 신입 리눅스 시스템 개발자부터 5년차 개발자가 실무를 하기 위해 알아야 할 리눅스 커널의 주요 서브시스템!실전 개발에서 신입 사원 옆에 친절한 선배 개발자가 앉아서 리눅스 커널에 대해 꼼 www.yes24.co..
arm 리눅스 커널의 spin lock 구현부를 보면 다음과 같다. typedef struct { union { u32 slock; struct __raw_tickets { #ifdef __ARMEB__ u16 next; u16 owner; #else u16 owner; u16 next; #endif } tickets; }; } arch_spinlock_t; static inline void arch_spin_lock(arch_spinlock_t *lock) { unsigned long tmp; u32 newval; arch_spinlock_t lockval; prefetchw(&lock->slock); __asm__ __volatile__( "1:ldrex%0, [%3]\n" "add%1, %0, %4..
이번 포스트에서는 메모리 학습의 마무리로 메모리 뷰어 모듈 제작 실습을 진행한다. /proc//maps 을 읽으면 다음과 같이 프로세스의 메모리 매핑 정보를 볼 수 있다. 필드별로 할당 주소, 권한(모드), offset, 디바이스 ID, inode, 매핑 대상 or 타입을 보여준다. 이와 유사하게 인자로 전달받은 pid (인자가 없다면 1번 프로세스)의 메모리 사이즈 및 매핑 정보를 출력하는 예제를 작성한다. 1. 프로세스 메모리 뷰어 예제 소스 #include #include #include #include #include #include #include #include #ifndef find_task_by_pid #define find_task_by_pid(nr)pid_task(find_vpid(nr..