유저프로세스

포스트: 2
Tags

Posts

2 posts

[라즈베리파이] 프로세스 - 기본 유저레벨 프로세스 생성 실습 및 ftrace 로그 분석(2/2)

Guillermo Austin Kim|2018년 10월 25일

커널 공간에서 raspbian_proc 이란 프로세스가 어떤 코드 흐름으로 생성하고 종료했는지 ftrace 로그로 알아봅시다. 분석할 전체 ftrace 로그는 다음과 같습니다.1 bash-895 [003] .... 909.253260: SyS_clone+0x14/0x38 3 bash-895 [003] .... 909.253298: _do_fork+0x14/0x3ec 5 lxpanel-730 [002] d.h. 909.25

[리눅스커널] 프로세스 - 유저 레벨 프로세스 생성 시 _do_fork() 함수 흐름

Guillermo Austin Kim|2018년 10월 21일

먼저 유저 레벨 프로세스는 어떻게 생성할까요? 저수준 리눅스 어플리케이션 프로그램으로 fork() 함수를 호출하면 리눅스에서 제공하는 라이브러리 도움을 받아 커널에게 프로세스 생성 요청을 합니다. 여기까지가 유저 모드에서 프로세스를 요청하는 단계입니다. 리눅스에서 제공하는 라이브러리는 시스템 콜을 발생하고 리눅스 커널에서는 fork() 함수에 대응하는 시스템 콜 핸들러인 sys_clone() 함수를 호출합니다. 먼저 sys_clone() 함수 코드를 봅시다. [https://elixir.bootlin.com/linux/v4.14.70/source/kernel/fork.c#L2020]1 #ifdef __ARCH_WANT_SYS_CLONE2 #ifdef CONFIG_CLONE_BACKWARDS3 SYSCAL