일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- lruvec
- fastpath
- NDK
- allocator
- slub
- slab
- buddy_system
- vmalloc
- pmap
- proc
- commit
- blk-mq
- kmalloc
- Network
- BLOCK
- vm_area_struct
- mm_struct
- strex
- devicedriver
- multiqueue
- Apache
- Linux
- kafka
- 카프카
- Kernel
- Android
- slowpath
- spinlock
- memory
- page
- Today
- Total
목록Pr0gr4m (45)
Art of Pr0gr4m

1. Hello 모듈 작성 모듈이 초기화 될 때의 엔트리 포인트를 module_init에 등록, 모듈이 제거 될 때의 엔트리 포인트를 module_eixt에 등록 MODULE_LICENSE에 라이센스 기재 이 후 빌드를 위한 Makefile 작성 make 명령으로 빌드 성공 시 hello.ko 커널 오브젝트가 생성됨 insmod로 모듈 삽입, rmmod로 모듈 제거 2. 모듈 참조 작성한 함수를 외부에 커널 심볼로 공개하기 위해서는 EXPORT_SYMBOL 매크로 사용 참고로 커널 영역에서 공개되는 심볼 리스트는 /proc/kallsyms에서 볼 수 있음 심볼 타입은 링크 참고 이 후 Makefile 오브젝트 목록에 callee.o와 caller.o를 추가하여 빌드하면 callee.ko와 caller.k..
1. 리눅스 환경에서 분석 vi + ctags + cscope + taglist를 이용해서 분석 2. 윈도우 환경에서 분석 source insight 를 이용하여 분석 3. 웹 환경에서 분석 엘릭서 사이트 이용 https://elixir.bootlin.com/linux/latest/source

1. systemcall table에 시스템콜 추가하기 vi /arch/x86/entry/syscalls/syscall_64.tbl 마지막 라인에 새로운 시스템 콜 추가 548 64 mycall __x64_sys_mycall 549 64 get_cpu_info __x64_sys_get_cpu_info 2. 헤더 파일에 선언 추가하기 vi include/linux/syscalls.h 함수 선언 추가 (편의를 위해 예시에선 syscalls.h 파일 안에 구조체도 함께 정의) struct cpu_info { char vendor_id[16]; char model_id[64]; unsigned int cache_size; }; asmlinkage long sys_mycall(void); asmlinkage lo..
카프카 카테고리의 실습 글들은 해당 서적과 해당 문서의 내용을 참고합니다.그 중 특히 서적의 내용을 주로 따라하는 대신, 리눅스 사용 등에 많이 친숙하지 못한 분들도 따라할 수 있고 실습 위주로 편성하였습니다.----- 카프카에 대한 자세한 설명은, 번역으로 진행하는 문서 글에서 참고하도록 하고,해당 포스트는 실습 위주로 진행하겠습니다. 우선 카프카를 운영하는 데에 분산 애플리케이션 코디네이션 시스템이 필요한데, 주키퍼가 바로 그것입니다.주키퍼는 분산되어 있는 각 애플리케이션의 정보를 중앙에 집중 및 구성하여 관리하고, 동기화 하거나, 그룹 관리 네이밍 등의 서비스를 제공합니다. 주키퍼에 대한 자세한 설명은 다른 포스팅에서 하기로 하고, 어떻게 시스템을 구성할지 이야기해보겠습니다.분산 시스템을 운영하는 ..