일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BLOCK
- lruvec
- vm_area_struct
- kafka
- Network
- Kernel
- strex
- fastpath
- devicedriver
- commit
- proc
- buddy_system
- Linux
- multiqueue
- page
- pmap
- Android
- allocator
- kmalloc
- blk-mq
- Apache
- memory
- slub
- 카프카
- spinlock
- slowpath
- NDK
- mm_struct
- vmalloc
- slab
- Today
- Total
목록전체 글 (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..
카프카 카테고리의 실습 글들은 해당 서적과 해당 문서의 내용을 참고합니다.그 중 특히 서적의 내용을 주로 따라하는 대신, 리눅스 사용 등에 많이 친숙하지 못한 분들도 따라할 수 있고 실습 위주로 편성하였습니다.----- 카프카에 대한 자세한 설명은, 번역으로 진행하는 문서 글에서 참고하도록 하고,해당 포스트는 실습 위주로 진행하겠습니다. 우선 카프카를 운영하는 데에 분산 애플리케이션 코디네이션 시스템이 필요한데, 주키퍼가 바로 그것입니다.주키퍼는 분산되어 있는 각 애플리케이션의 정보를 중앙에 집중 및 구성하여 관리하고, 동기화 하거나, 그룹 관리 네이밍 등의 서비스를 제공합니다. 주키퍼에 대한 자세한 설명은 다른 포스팅에서 하기로 하고, 어떻게 시스템을 구성할지 이야기해보겠습니다.분산 시스템을 운영하는 ..