리눅스

· 리눅스
objdump: 라이브러리나 ELF(Executable and Linkable Format) 형식의 파일을 어셈블리어로 출력 as: 어셈블러 ld: 링커 addr2line: 주소를 파일과 라인으로 출력 nm: 오브젝트 파일의 심벌을 출력 readelf ELF 파일의 내용을 출력 objdump를 활용해 리눅스 커널의 오브젝트 파일인 vmlinux의 원하는 부분만 어셈블리어로 출력해 볼 수 있다. 앞으로 이런식으로 커널 어셈블리 코드를 확인한다. vmlinux와 System.map 파일을 재료로 사용한다. - vmlinux : 리눅스 커널을 포함하는 오브젝트 파일 - System.map : 커널에 의해 사용되는 심볼테이블 # cp ./out/lib/modules/4.19.127-v7+/build/vmlinu..
· 리눅스
진행은 느릴 테지만 언제까지고 지속해보고 싶은 개인적인 공부를 시작해보려고 한다. 이 포스팅은 다소 '오버'로 보일 수는 있으나 그 시작을 알림과 동시에, 초심을 기억하고자 남기는 글이다. 임베디드 개발자라면 리눅스 커널을 정말 잘 이해하고픈 욕심이 다들 있을 것이다. 하지만 그 길은 대개 고되고 어렵고 또 외로워서, 많은 사람들은 적당한 선에서 타협하고 중간에 공부를 포기하고 만다. 이것을 비단 개인의 의지박약 때문이라고만 치부할 수 없는 이유는 우리 개발 업계 환경에 있기도 하다. 제품 통합(Integration)과 양산에 모든 에너지를 쏟다 보니 업체 솔루션을 가져다가 포팅하기 바쁘거나, 이슈가 생기면 이때도 역시 업체를 푸쉬해서 이슈 클로징을 빨리 시키는 것만이 훈장처럼 여겨지기도 한다. 이런 인..
· 리눅스
https://www.gnu.org/software/bash/manual/bashref.html#Bash-Conditional-Expressions 6.4 Bash Conditional Expressions Conditional expressions are used by the [[ compound command and the test and [ builtin commands. Expressions may be unary or binary. Unary expressions are often used to examine the status of a file. There are string operators and numeric comparison operators as well. If the file ar..
· 리눅스
커널 자체의 메모리를 관리하는 것 외에 커널은 사용자 공간 프로세스의 메모리 관리도 해야한다. 프로세스 주소 공간 : 시스템의 각 사용자 공간 프로세스에 주어진 메모리를 나타내는 영역리눅스는 가상 메모리 OS이므로 메모리 자원은 시스템 프로세스에 대해 추상화된다. 각 프로세스는 자신이 혼자 시스템의 물리적 메모리 전체를 가지고 있는 것처럼 보게 된다. 메모리 영역에는 다음과 같은 것들이 들어있을 수 있다.Text 영역 : 실행 파일 코드가 할당된 메모리Data 영역 : 실행 파일의 초기값이 있는 전역 변수가 할당된 메모리BSS 영역 : 초기값이 없는 전역 변수가 들어있는 제로 페이지가 할당된 메모리 메모리 서술자 struct mm_struct를 이용해 프로세스의 메모리 주소 공간을 표현한다. 메모리 서술..
· 리눅스
High Memory is the part of physical memory in a computer which is not directly mapped by the page tables of its operating system kernel 4GB RAM일 때 PAGE_OFFSET(3GB)~0xFFFFFF까지의 1GB를 Kernel 공간으로 잡는 것이 일반적인데이때 896MB 이하를 lowmem(DMA + Normal) 여기는 커널이 물리 메모리에 직접 매핑됨.그 위를 highmem(128MB)으로 구분하며 이곳은 필요할 때만 kmap()등을 통해 연결해서 사용해야 한다. 커널이 128MB를 사용하는 곳vmalloc 공간연속적인 커널 가상 주소를 불연속적인 물리 주소로 할당커널은 불연속적인 물리 주소를..
CodePoetry
'리눅스' 카테고리의 글 목록