Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

16312
2027
233849


태그 : 리눅스커널 요약보기전체보기목록닫기

1 2 3 4 5 6 7 8 9 10 다음

[리눅스커널] 슬럽 메모리: set_track() 함수에 전달되는 addr인자의 정체

리눅스 커널의 슬럽 관련 디버깅 피쳐를 켜 놓으면, struct track 구조체로 슬럽 오브젝트를 할당하거나 해제할 때의 콜 스택 정보를 저장합니다. 이를 처리하는 핵심 함수는 set_track() 함수인데, 이 함수에 마지막으로 전달되는 인자는 addr입니다.다음은 set_track() 함수의 구현부인데, 볼드체로 표기된 부분을 봅시다.https:/...

[RISC-V] RISC-V 툴체인으로 리눅스 커널 빌드하기

이번 포스트에서는 RISC-V 툴체인을 설치해 리눅스 커널을 빌드하는 방법을 소개합니다.먼저 RISC-V 툴체인을 설치하는 명령어를 입력합시다.RISC-V 툴체인 소스를 내려받기다음 명령어를 입력해 RISC-V 툴체인 소스를 내려받습니다.$ git clone --recursive https://github.com/riscv/riscv-gnu-toolch...

[RISC-V] 익셉션 벡터 핸들러 코드 산책 - 리눅스 커널

이번 시간에는 RISC-V 기반 리눅스 커널에 구현된 익셉션 벡터 테이블과 익셉션 벡터 핸들러를 분석하겠습니다.익셉션 벡터 핸들러를 호출하는 코드 확인하기다음은 익셉션 벡터 핸들러의 구현부입니다.https://elixir.bootlin.com/linux/v5.4.30/source/arch/riscv/kernel/entry.SENTRY(excp_vect_...

[ARM] ARM 프로세서의 특징을 활용한 최적화는 왜 중요할까?

이번 포스팅에서는 'ARM 프로세서의 특징을 활용한 최적화는 왜 중요할까?'에 대해서 이야기하려고 합니다.본론에 들어가기 앞서 일반적인 SW 개발자들이 최적화에 대해 어떻게 생각하는지 짚어 보겠습니다.   생각보다 성능과 최적화는 중요하다대부분 SW 개발자들은 주어진 스팩을 구현하기 위해 프로그램을 작성합니다.화면을 꾸미는 프론트 엔드...

[ARM64] GCC: 특정 함수를 최적화하지 않기 - optimize("O0") 옵션

코드를 작성한 후 실행을 하다보면 가끔 자신이 작성한 함수의 심벌이 사라지거나, 가끔 예상을 벗어나는 동작을 할 때가 있습니다.여러 가지 원인 중 하나가, 컴파일러가 최적화를 하면서 코드를 재배치를 하다가 발생합니다.이번 포스팅에서는 GCC의 최적화 레벨을 각각의 함수에 지정하는 방법을 소개합니다.결론부터 말씀을 드리면 함수의 선언부에 아래 키워드를 추...

『2장』 질문: 라즈베리 파이에서 디렉터리에 파일을 저장하거나 이동할 수 없습니다.

『디버깅을 통해 배우는 리눅스 커널의 구조와 원리』 책의 저자 김동현입니다.몇몇 독자분들이 실습을 하시면서 질문을 주셨는데요, 한 가지 공유드릴 사항이 있어 글을 남깁니다.먼저 질문을 소개합니다.질문Q); 라즈비안에서 제공하는 파일 관리자를 통해 파일을 저장을 시도했는데, 저장이 되지 않는다.'2.3.3 라즈비안 리눅스 커널 빌드' 절의 53 페이지에서...

[리눅스커널] 프로세스 스케줄링: struct task_struct의 어느 필드가 컨텍스트 스위칭 횟수를 저장할까?

블로그 방문자께서 댓글로 다음과 같은 질문을 주셨습니다.    * 한 프로세스가 context switching(cpu burst)이 일어난 횟수는 task_struct 구조체에서 어떤 변수로 확인할 수 있나요?이 질문에 답을 드리면;    * task_struct 구조체의 nivcsw 필드가 컨텍스트 스위칭을 한 횟...

[리눅스커널] TRACE32: 'v.type' 명령어로 구조체와 enum 필드를 바로 확인하기

소스 코드를 분석 하다보면 구조체와 enum의 정체를 알고 싶을 때가 있습니다.이 때 TRACE32를 활용하면 바로 이 정보를 확인할 수 있습니다.구조체 확인하기먼저 구조체의 세부 필드는 다음과 같은 명령어를 입력하면 확인할 수 있습니다.$ v.type % %m %l %hi %sp  struct '구조체 이름'자, 그럼 리눅스 커널에서 프로세스...

[리눅스커널][공유] 퀄컴의 리눅스 커널 코드오로라- codeaurora 사이트(환상의 디버깅 자료)

SoC(System-on-Chip) 업계의 최강자이며 Top-of-the-food-chain인 퀄컴(Qualcomm)은 꾸준히 자신이 개발하고 있는리눅스 커널 소스를 특정 사이트에 올리고 있습니다.최신 퀄컴(Qualcomm)이 개발하고 있는 리눅스 커널 소스를 볼 수 있는 코드 오로라(codeaurora) 사이트는 다음과 같습니다.https://sour...

[리눅스 커널] 라즈베리파이 4: 라즈비안 커널 빌드

'라즈베리 파이 4'에서 실행되는 라즈비안 이미지를 빌드하는 방법에 대해 말씀드리려 합니다.라즈비안을 빌드하는 명령어는 아래 사이트에서 확인할 수 있는데요.https://www.raspberrypi.org/documentation/linux/kernel/building.md'라즈베리 파이 4'를 위한 라즈비안 커널 빌드 스크립트를 소개합니다.라즈베리 파...
1 2 3 4 5 6 7 8 9 10 다음