[리눅스커널] 익명 페이지 메모리 누수(Memory Leak) 디버깅 - TRACE32
By Guillermo Austin Kim | 2019년 12월 16일 |
많은 리눅스 시스템 개발자들은 자신이 개발하고 있는 리눅스 커널의 버전이 주류였으면 하는 바램이 있다. 하지만 현실은 다르다. 현재 리눅스 커널의 최신 버전인 4.19(LTS 기준)으로 개발하고 있어도 이전 리눅스 커널 버전에서 다뤘던 자료 구조에 대해 알고 있어야 한다. 이번에는 커널 3.10 버전에서 struct anon_vma 구조체와 struct address_space 구조체의 관계에 대해 알아보겠다. 먼저 다음 TRACE32 명령어를 입력해 3번째 프레임의 페이지 디스크립터를 확인하자. $(TRACE32 명령어) v.v %d %t %h %i (struct page[0x7FFF])*mem_map (static struct page [32767]) (struct page[0x7FFF])*me
팅커보드S/암비안 - Mali GPU 드라이버 패키지 설치
By 반달가면 | 2021년 5월 24일 |
ASUS 팅커보드S와 암비안 버스터(Armbian Buster) 조합에 추가로 GPU 관련 패키지를 설치했다. 팅커보드S의 RK3288 SoC는 Mali-T760 GPU를 탑재하고 있는데, ASUS에서 제공하는 팅커보드 데비안 리눅스에는 기본으로 설치되어 있는 패키지인데 암비안 버스터에는 설치되지 않았기에, 추가로 설치해 주었다. 터미널창에서 아래와 같이 작업. # S/W 저장소 정보 갱신 sudo apt-get update # Mali-T760 GPU 관련 패키지 설치 sudo apt-get install libmali-rk-dev sudo apt-get install libmali-rk-midgard-r14p0-r0p0 libmali-rk-dev, libmali-rk-
[리눅스커널] 메모리관리: 페이지 테이블에 대해 알아보기
By Guillermo Austin Kim | 2019년 7월 17일 |
페이지 테이블로 가상 주소를 물리 주소로 변환하는 흐름을 살펴봤습니다. 이 과정에서 알아야 하는 주요 개념을 소개합니다. - 페이지 테이블 엔트리 - 페이지 테이블 엔트리 주소 페이지 테이블 엔트리페이지 테이블 엔트리(Page Table Entry, 줄여서 PTE)는 페이지 테이블의 정보이며 레코드라고도 부릅니다. 페이지 테이블 엔트리 주소말 그대로 페이지 테이블 엔트리가 있는 주소를 의미합니다. 이해를 돕기 위해 다음 주소 테이블을 보겠습니다. 주소 | 값 1 NSD:80004000 | 0x02 NSD:80004004 | 0x03 NSD:80004008 | 0x04 NSD:8000400C | 0x0...5 NSD:80006018 | 0x0061941E6 NSD:8000
[리눅스] 파일찾기: find <경로> [옵션] 파일명 [-exec 실행명령 \;]
By 별일없는 범고래님의 이글루입니다 | 2018년 1월 15일 |
find <경로> [옵션] 파일명 [-exec 실행명령 \;] 옵션 -name filename : 일치하는 파일 명 찾기-type x : 일치하는 타입 찾기, x 는 f(일반 파일), d(디렉터리), l (심볼릭 링크) 중에 하나-user username : 파일 소유자로 찾기 -exec command \; : find 에서 찾은 파일을 command 에 지정된 명령으로 실행하는 옵션, 이 때 대상이 되는 파일은 {} 로 표현 예를 들어, find /home -type f -exec cp {} ~/backup \; -> /home 디렉터리 안에 있는 일반 파일을 찾아서, 그 파일들을 ~/backup 에 복사해라.