Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

75261
1501
219117


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

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

[리눅스커널][가상파일시스템] 파일 객체: read() 함수 연산 세부 동작 분석

파일 객체: read() 함수 연산 세부 동작 분석유저 공간에서 read() 함수를 호출할 때 커널에서는 가상 파일시스템 관련 코드가 실행하는지 알아봅시다.다음 그림과 같이 유저 공간에서 read() 함수를 호출하면 파일시스템별로 관리하는 파일객체에서 파일 오퍼레이션을 수행하는 방식입니다. 위 그림을 보면 유저 공간에서 read() 함수를 호출...

[리눅스커널] 커널 디버깅과 코드 학습: ftrace 메시지는 어떻게 분석할까?

[리눅스커널][디버깅] dump_stack() 함수

printk 외에도 커널에서는 커널 로그를 통해 커널 동작을 보여주는 기능을 제공합니다. 즉, 커널에서 지원하는 dump_stack() 함수를 호출하면 콜스택을 커널 로그로 볼 수 있습니다.dump_stack() 함수의 사용법은 간단합니다. 커널 로그로 콜스택을 보고 싶은 코드에 dump_stack() 함수를 추가하기만 하면 됩니다. dump_...

[리눅스커널] 커널 디버깅: printk

C 프로그래밍을 공부할 때 가장 먼저 만나는 함수가 main과 printf입니다. printf("Hello World \n");윈도우 콘솔 프로그램이나 리눅스 시스템 프로그램에서 printf 함수를 호출하면 콘솔로 문자열을 출력하듯이 printk() 함수를 호출하면 커널 로그를 볼 수 있습니다. 이미 커널의 수많은 내부 함수에서도 printk를 이용해 ...

[리눅스커널] 커널 디버깅과 코드 학습: 디버깅은 문제 해결 능력의 지름길

디버깅은 'debug'와 '-ing' 합성어로 버그를 잡는 과정을 뜻합니다. 누군가 '디버깅하고 있다'라고 말하면 '버그를 수정하고 있다'고 볼 수 있습니다. 필자는 디버깅을 단지 버그를 잡는 과정만으로 보지는 않습니다. 리눅스 커널과 드라이버가 정상 동작할 때 자료구조와 함수 호출 흐름까지 파악하는 과정을 디버깅이라고 생각합니다.이번 절에서는...

[리눅스커널][가상파일시스템] 파일 객체란

파일 객체대부분 유저는 파일을 생성하고 읽고 쓰기 위한 용도로 씁니다. 이 때 파일 동작에 대한 상세 규칙과 속성은 파일 객체에서 확인할 수 있습니다.만약 라즈베리파이에서 2개 Geany프로그램에서 1개 파일을 열 수 있습니다. 이 때 몇 개 파일 객체가 생성될까요? 2개 파일 객체는 각각 프로세스 별로 생성합니다. 파일 객체는 이렇게 파일을 오픈하고 ...

[리눅스커널][스케줄링] ftrace로 컨택스트 스위칭 동작 확인

ftrace로 컨택스트 스위칭 동작 확인이전 절에 봤던 ftrace 로그를 살펴보면서 스케줄링 동작을 살펴봅시다.lxpanel-718   [002] d...  7831.739824: sched_switch: prev_comm=lxpanel prev_pid=718 prev_prio=120 prev_state=D ==> ne...

[리눅스커널][스케줄링] 컨택스트 스위칭 관련 자료 구조 알아보기

컨택스트 스위칭 관련 자료 구조 알아보기이전 소절에서 컨택스트는 프로세스가 실행 중인 그 자체라고 소개했습니다. 프로세스 실행 그 자체는 레지스터 세트 표현할 수 있습니다. 어떤 프로세스가 CPU에서 실행하면 CPU 레지스터 세트에 프로세스가 실행 중인 코드와 함수 정보가 채워집니다.컨택스트 스위칭으로 CPU 레지스터 세트를 어딘가에 저장할 것입니다. ...

[리눅스커널][인터럽트후반부] IRQ 스레드 핸들 irq_thread() 함수 분석

IRQ 스레드 핸들 irq_thread() 함수 분석 이번에는 IRQ 스레드 핸들 함수가 어떤 과정으로 실행하는지 점검해 보겠습니다.커널 쓰레드가 생성되면 무한 루프를 돌면서 쓰레드 상태에서 따라 정해진 동작을 수행하는 스레드 핸들 함수가 실행합니다. IRQ 스레드는 irq_thread() 함수가 이 역할을 수행합니다. 먼저 IRQ 스...

[리눅스커널][SoftIRQ] Soft IRQ 서비스란

Soft IRQ를 설명하면서 낯선 용어를 설명했는데, 이제부터 그 의미를 하나하나씩 살펴 보겠습니다. Soft IRQ 서비스란 용어를 소개합니다.Soft IRQ 서비스를 빨리 이해하려면 코드를 먼저 봐야 합니다. Soft IRQ 서비스는 아래 enum으로 정의한 코드와 같습니다.[include/linux/interrupt.h]enum{ HI_SOFTIR...
1 2 3 4 5 6 7 8 9 10 다음