Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

80258
1323
114582


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

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

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

파일 객체: lseek() 함수 연산 세부 동작 분석유저 공간에서 lseek() 함수를 호출하면 파일 쓰기 포인터 위치를 조절할 수 있습니다. 다음 예제 코드를 보면서 lseek() 함수 동작에 대해 살펴보겠습니다. 1 #include <unistd.h>2 #include <sys/types.h>3 #include...

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

dump_stack() 함수dump_stack() 함수는 콜스택을 커널 로그로 출력합니다. 커널 로그로 콜스택을 보고 싶은 코드에 삽입하면 됩니다. 이 함수를 호출하려면 C 코드 윗부분에 다음과 같이 "linux/kernel.h" 해더 파일을 추가해야 합니다. #include <linux/kernel.h>dump_stack() 함수 ...

[리눅스커널][디버깅] printk에 대해서

printk printk는 printf와 유사한 기능입니다. printf는 윈도우 콘솔 프로그램이나 리눅스 시스템 프로그램에서 로그를 출력합니다. 마찬가지로 printk() 함수를 호출하면 커널 로그를 볼 수 있습니다.printk 를 커널 함수에 적절히 추가하면 유용한 디버깅 정보를 얻을 수 있습니다. 리눅스 커널 핵심 함수도 printk를 이...

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

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

[리눅스커널][스케줄링] 크래시 유틸리티로 컨택스트 스위칭 디버깅하기

크래시 유틸리티로 컨택스트 스위칭 디버깅하기이번에는 크래시 유틸리티를 활용해 컨택스트 정보를 확인하겠습니다.다음 정보는 ARM 코어에서 실행 중인 프로세스의 레지스터 세트입니다.pc : [<80f65224>]   lr : [<80f65bcc>]      psr: 0x80f655acsp :...

[리눅스커널][스케줄링] 컨택스트 스위칭: context_switch() 세부 코드 분석

컨택스트 스위칭 세부 코드 분석이전 소절에서 다룬 컨택스트 스위칭이란 다음과 같은 문장으로 정리할 수 있습니다.CPU에서 실행 중인 프로세스 정보로 채워진 CPU 레지스터 세트를 프로세스 스택 공간에 저장하고 다음에 실행할 프로세스의 레지스터 세트를 스택 공간에서 로딩해 CPU 레지스터 세트에 채우는 동작입니다.이번에는 context_switch() 함...

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

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

[리눅스커널][인터럽트후반부] IRQ 스레드 동작 확인하기

IRQ 스레드 동작 확인하기이제 실제 라즈베리안에서 IRQ Thread가 어떻게 수행되는지 ftrace 로그로 분석할 시간입니다. 이를 위해 다음과 같이 ftrace 로그를 설정해야 합니다. #!/bin/shecho 0 > /sys/kernel/debug/tracing/tracing_onsleep 1echo "tracing_off"echo...

[리눅스커널][시스템콜] ftrace로 시스템 콜 인자 디버깅하기

ftrace는 시스템 콜 디버깅을 위한 이벤트를 제공합니다.sys_enter, sys_exit 이라는 ftrace 이벤트를 쓰면 시스템 콜 동작을 확인할 수 있습니다.위 이벤트를 키면 다음과 같은 시스템 콜 디버깅 정보를 출력합니다.1> 시스템 콜 번호2> 시스템 콜이 실행와 종료 시각3> 시스템 콜 핸들러 함수로 전달된 인자sys_en...

[리눅스커널] 시스템 콜/디버깅: ftrace 시스템 콜 이벤트 소개하기

시스템 콜 관련 코드를 분석하다 보면 다음과 같은 의문이 생길 수 있습니다.  평소 시스템 콜은 얼마나 자주 발생할까? 시스템 콜 번호는 어떻게 확인할 수 있을까?ftrace 메시지를 보면 이런 궁금증을 해소할 수 있습니다. ftrace에서는 시스템 콜 동작을 트레이싱하는 다음과 같은 이벤트를 제공합니다. sys_enter sys_exi...
1 2 3 4 5 6 7 8 9 10 다음