Arm Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

5363
1898
209234


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

1 2

[리눅스커널][시그널] 시그널 설정은 어떻게 할까?

이번 절에서는 시그널을 설정하면 유저 공간에서 커널 공간까지 어떤 흐름으로 처리하는지 소스 코드를 보면서 살펴 보겠습니다.유저 공간 시그널 설정 유저 레벨 프로세스에서 시그널 설정을 어떻게 하는지 소스 코드와 함께 살펴봅시다. 유저 공간에서 시그널을 설정하는 간단한 코드입니다.1 #include <unistd.h>2 #include ...

[리눅스커널][시그널] 시그널 - 시그널 번호와 동작 알아보기

커널 입장에서 시그널은 프로세스에게 보내는 단순한 형태의 메시지라고 할 수 있습니다.시그널 정보와 PID를 프로세스에게 전달하는 것입니다.유저 프로세스 입장에서 프로세스는 무엇일까요? 유저 프로세스 관점으로 시그널은 실행 흐름을 제어하는 비동기적인 중단입니다. 이렇게 유저 프로세스와 커널 입장에서 시그널은 약간 다른 관점에서 볼 수 있습니다.다음 소절에...

[리눅스커널][시그널] 시그널 생성: __send_signal() 커널 함수 분석

누군가 ‘시그널을 생성하는 핵심 함수가 무엇인가?’ 라고 질문을 한다면 __send_signal() 함수라고 대답할 수 있습니다. 그렇습니다. 시그널을 생성하는 핵심 함수는 __send_signal() 입니다. 이제부터 __send_signal() 함수 코드를 분석하겠습니다.[https://elixir.bootlin.com/linux/v4.19...

[리눅스커널][시그널] 시그널 전달과 처리는 어떻게 할까?

[라즈베리파이] 시그널 - 커널 공간 시그널 함수 분석 - do_sigaction()

다음으로 살펴볼 코드는 do_sigaction() 함수입니다. 먼저 do_sigaction() 함수는 선언부를 봅시다.int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact);do_sigaction() 함수에 전달하는 인자 속성은 다음과 같은데 sys_rt_sigaction...

[리눅스커널][시그널] 시그널 생성: 커널은 언제 시그널 생성할까?

리눅스 커널도 특정 조건에서 시그널을 생성해서 보낼 수 있습니다. 이번 소절에서 3가지 상황에서 커널이 시그널을 생성하는 과정을 살펴보겠습니다.1.키보드로 “Ctl + C” 키를 입력했을 때2.커널 메모리 모듈 OOM(Out of Memory) Killer가 실행할 때3.안드로이드 시스템에서Lowmemory killer란 모듈이 실행할 때키보드로 “Ct...

[라즈베리파이] 시그널 - 커널 공간 시그널 함수 분석

시그널과 연관된 동작을 변경하면 유저 공간에서 sigaction() 함수를 호출하면 됩니다. 이 함수를 호출하면 시스템 콜 핸들러인 sys_rt_sigaction() 함수가 실행하며 커널 공간에서 시그널을 설정합니다. 이 실행 흐름을 표현하면 다음 그림과 같습니다.  유저 공간에서 sigaction() 함수를 호출하면 커널 공간에서 sys_rt...

[리눅스커널][시그널] 시그널 생성: 유저 프로세스 tgkill() 함수 실행

유저 공간에서 tgkill 명령어를 실행하면 시스템 콜 핸들러인 sys_tgkill() 함수를 호출합니다. 이후 어떤 함수 흐름으로 동작하는지 sys_kill() 함수를 점검합시다. 먼저 sys_tgkill() 함수 선언부와 함수 인자를 보겠습니다.[https://elixir.bootlin.com/linux/v4.19.30/source/incl...

[라즈베리파이] 시그널 - 커널에서 시그널은 어떻게 처리할까?

유저 프로세스 입장에서는 시그널은 '비동기적인 중단'입니다. 그런데 커널은 시그널을 유저 프로세스에게 잘 전달하는 역할을 수행합니다. 집배원은 우편물에 적힌 주소를 보고 우편문을 도착지에 잘 전달하는 임무를 맡습니다. 마찬가지로 커널도 유저 프로세스에게 시그널이 잘 전달되는 일을 합니다.커널은 시그널에 대해 다음과 같은 처리를 합니다. &nbs...

[라즈베리파이] 시그널 - 시그널 핸들러 실행 및 커널 복귀 과정

signal은 특정 프로세스에게 어떤 메시지를 전달할 수 있는 가장 기본적인 수단입니다.signal은 다른 (user-level) 프로세스로부터 직접적으로 받거나 혹은 (주로 문제가 될 만한 동작으로인해) 커널로부터 받을 수 있습니다.이러한  signal은 kernel-mode에서 처리가 되는데 주로 시스템 콜이나 인터럽트 처리 등을 마치고 u...
1 2