일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Apache
- page
- kafka
- NDK
- kmalloc
- lruvec
- proc
- BLOCK
- Linux
- vmalloc
- fastpath
- strex
- multiqueue
- memory
- devicedriver
- commit
- slowpath
- mm_struct
- Network
- spinlock
- vm_area_struct
- blk-mq
- 카프카
- Kernel
- buddy_system
- Android
- pmap
- allocator
- slub
- slab
- Today
- Total
목록IT (41)
Art of Pr0gr4m
프로그램이 파일의 끝 너머로 파일 오프셋을 옮기고 쓰기 작업을 하면, 파일 중간에 빈 공간이 생긴다. 이전의 파일 끝과 새로 쓴 바이트들 사이의 이 공간을 파일 구멍(file hole)이라고 한다. 프로그래밍 관점에서 보면 파일 구멍 속에서도 바이트들이 존재하고, 읽을 시 0으로 채워진 바이트들의 버퍼를 리턴한다. 하지만 파일 구멍은 디스크 공간을 차지하지 않고 파일 시스템은 나중에 파일 구멍에 데이터가 쓰여질 때 디스크 블록을 할당한다. 여기서, 디스크 공간 할당에 대해서 블록 할당의 개념을 잘 알아둬야 한다. 대부분의 파일 시스템이 파일 공간을 블록 단위 (1K / 2K / 4K 등)로 할당하기 때문에 파일 구멍이 블록 경계에 걸치지 않고 블록 안에 들어간다면, 구멍이 있든 없든 똑같이 블록 하나가 ..
임의의 프로젝트에서 특정 디렉토리만 복사해 올 때, 내부에 상대 경로로 지정된 심볼릭 링크 파일이 있다면 링크 파일이 깨질 수 있다. 물론 타겟 파일을 새로 작성해서 새로 연결하는 방법도 있겠지만, 깨진 파일이 많고 당장 디렉토리 내용들을 깨진 파일을 제외하고 빌드하고 싶을 수 있다. 이럴 때 깨진 심볼릭 링크 파일만 검색 / 삭제하는 다음 명령이 효과적이다. 깨진 심볼릭 링크 파일 검색 명령 옵션 $ find -L $DIR -maxdepth 1 -type l 깨진 심볼릭 링크 파일 삭제 옵션 $ find -L $DIR -maxdepth 1 -type l -delete (삭제에 경고 옵션이 없으니 주의하자)
재밌는 깃허브 블로그가 있어서 포스트 남깁니다. https://exploringdata.github.io/ 기존 데이터 분석 결과만 시각화 하는 거라 마이닝이라고 부르기는 애매하지 않나 싶지만, 아무튼 재밌는 내용이 꽤 있습니다.특히 제 눈에 가장 띄는건 프로그래밍 언어 상관도 시각화 포스트였습니다. https://exploringdata.github.io/vis/programming-languages-influence-network/ 역시 C, LISP, Smalltalk의 영향이 무지 큰걸 볼 수 있습니다.JAVA는 딱 생각한만큼만 크고, Assembly, Fortran과 awk는 생각보다 작았으며, Haskell은 생각보다 큰게 인상적이었습니다.ML은 아예 모르는 언어였는데 LISP류 언어에 큰 영..
이 전 포스트에서 안드로이드 스튜디오 2.2 상위 버전에서 CMake를 이용하여 애플리케이션 만드는법을 알아보았습니다.프로젝트 생성하는데 있어서는 Wizard에서 C++ Include에 체크만 해주면 프로젝트 스켈레톤이 제공되므로 무지 간단하고, 만드는 프로젝트의 확장 정도가 기본 스켈레톤에서 크게 벗어나지 않으면 CMakeList.txt 스크립트 수정도 어렵지 않아 쉽게 이용할 수 있습니다.허나, 외부 라이브러리가 추가된다거나 여러 모듈을 만들고 모듈별로 종속성을 생각해야 한다던가 등 확장 정도가 커지면 기존에 리눅스에서 CMake를 사용하시던 분들 말고는 예전 방식인 ndk-build에 비해 어렵다 느끼고 헤매실 수 있습니다.따라서 이번엔 ndk-build를 이용하는 - Android.mk와 Appl..