리눅스
Posts
554 posts[임베디드] 뛰어난 임베디드 리눅스 프로그래머가 되기 위한 조건
뛰어난 프로그래머가 되기 위한 가장 중요한 덕목은 뭘까? 개인적으로; * 바로 부지런히 새로운 것을 배우려는 자세라고 생각한다. 일단 난 게으른 편이고 새로운 지식이나 스킬을 배우는 속도도 정말 느리다. 그래서 이런 주제에 대해 이야기하는게 정말 부끄럽다. 그런데 한 가지 내가 잘한다고 느끼는 것을 말해보까? '바로 쪼잔하다는 거다.' * 쪼잔하다? 그게 뭔 소리니? 쪼잔하다는 게 뭔 소리인데 풀어서 설명을 해볼까? 코드를 한 줄 추가할 때나 분석할 때 스스로 나에게 다음과 같은 질문을 던진다. * 배열의 인덱스가 제대로 처리되고 있나? * 배열을 초기화하지 않고 사용하면 문제가 되지 않을까? * 이 코드 구간에서 레이스 컨디션이 발생하면 어떻게 될까? * 지금 보는 코드
[리눅스커널] 크래시 유틸리티: files -p '아이노드 주소' + files -d '덴트리 주소' 디버깅
크래시 유틸리티는 다양한 메모리 및 파일 시스템 디버깅 기능을 제공합니다.그 중에 유용한 기능 중 하나를 소개합니다. * files -p '아이노드 주소' 먼저 다음 명령어를 입력해 오픈된 파일에 대한 파일 디스크립터, 아이노드 그리고 덴트리를 확인 합니다. * files crash> files 1664PID: 1664 TASK: dc270000 CPU: 1 COMMAND: "Chrome-proc.anim"ROOT: / CWD: / FD FILE DENTRY INODE TYPE PATH 0 de4d8200 e1a33ab0 e0ce8dd8 CHR /dev/null 1 de4d8200 e1a33ab0 e0ce
[임베디드] 꼰대 개발자가 되는 방법(2)
From [임베디드] 꼰대 개발자가 되는 방법(1) 여러분! 꼰대 개발자가 되고 싶나요? 꼰대로 이름을 날리고 싶다면 이 글을 꼼꼼히 끝까지 읽어 주세요. 스스로 많은 노력을 해야 한다. 꼰대 임베디드 개발자가 되기 위한 가장 중요한 요건을 말씀드릴 차례입니다. 이 요건을 제대로 충족해야 더 강력한 꼰대 개발자가 될 수 있습니다. 그 요건은 바로; * 오랫동안 컴퓨터에 앉아 있는 것입니다. 이전 포스팅에서 설명한 바와 같이, 꼰대 개발자는 자신이 성공했으며 다른 후배 개발자들이 자신을 선망하고 있다고 믿고 있습니다. 이런 믿음을 확신으로 바꾸려면 스스로 정말 자신에게 뿌듯할 정도로 최선의 노력을 다 해야 합니다 . 그런데 꼰대 개발자들의 최선의 노력은 대부분 '컴퓨터에 오래 앉아 있는 것
[리눅스커널] 익명 페이지 메모리 누수(Memory Leak) 디버깅 - TRACE32
많은 리눅스 시스템 개발자들은 자신이 개발하고 있는 리눅스 커널의 버전이 주류였으면 하는 바램이 있다. 하지만 현실은 다르다. 현재 리눅스 커널의 최신 버전인 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



