ARM Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

192239
1625
172589


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

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

[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'를 위한 라즈비안 커널 빌드 스크립트를 소개합니다.라즈베리 파...

[리눅스커널] CPU 코어의 주파수(Frequency) 확인하기 - cpufreq_cpu_data

리눅스 커널에서 CPU Frequency는 성능을 측정할 때 중요한 척도 중 하나입니다.이번 시간에는 리눅스 커널에서 CPU Frequency와 관련된 자료 구조를 소개합니다.cpufreq_cpu_data 선언부cpufreq_cpu_data는 커널에서 CPU 주파수를 저장하는 중요한 변수입니다.먼저 cpufreq_cpu_data 변수의 선언부를 봅시다....

[리눅스커널] 프로세스: 유저 프로세스의 스레드 그룹 디버깅해보기

커널에서 실행 중인 프로세스는 커널 스레드인 커널 프로세스와 유저 프로세스로 구분할 수 있습니다.그런데 유저 공간에서 생성된 프로세스는 스레드 그룹의 리더 프로세스와 스레드 그룹에 속한 스레드로 분류할 수 있는데요.이번 시간에는 프로세스의 태스크 디스크립터를 리뷰하면서 이 내용을 확인하겠습니다.다음은 대부분 리눅스 시스템에서 확인할 수 있는 "swapp...

[리눅스커널] 인터럽트 후반부 처리: IRQ 스레드의 전체 실행 흐름 정리

지금까지 IRQ 스레드 핸들인 irq_thread() 함수에서 irq_thread_fn() 함수를 호출해 IRQ 스레드 핸들러 함수를 호출하는 과정을 살펴봤습니다. 이번에는 배운 내용을 정리하는 차원으로 IRQ 스레드 전체 실행 흐름을 보면서 정리하는 시간을 갖겠습니다.           &...
1 2 3 4 5 6 7 8 9 10 다음