Linux Kernel(4.14) Hacks

rousalome.egloos.com

포토로그 Kernel Crash




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

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

[리눅스커널] 프로세스 - 프로세스는 어떻게 생성할까?

프로세스에 대한 이해를 하려면 프로세스가 어떻게 생성되는지 알면 좋습니다. 프로세스 생성 과정에서 프로세스를 관리하는 자료구조 관계를 알 수 있기 때문입니다. 리눅스에서 구동되는 프로세스는 크게 유저 레벨에서 생성된 프로세스와 커널 레벨에서 생성된 프로세스가 있습니다. 유저 레벨에서 생성된 프로세스는 유저 공간에서 프로세스를 생성하는 ...

[리눅스커널] 프로세스 소개(도입부)

프로세스는 추상화된 개념이라 다양한 관점으로 바라 볼 수 있습니다. 이론으로 이해는 가지만 머리에 남기 어려운 내용이 프로세스입니다. 프로세스를 이론이 아닌 라즈베리파이를 직접 실행하면서 ftrace와 리눅스 커널 코드를 보면서 설명합니다. 이번에 소개되는 명령어나 ftrace로그는 라즈베리파이가 있는 분은 직접 실습하면서 익히길 바랍니다.Referen...

[리눅스커널] 프로세스 - 기본 유저레벨 프로세스 생성 실습 및 ftrace 로그 분석(1/2)

다시 라즈베리파이에서 X-terminal 프로그램을 실행해서 셸을 엽시다. root@raspberrypi:/boot# ps -ely | grep bashS   UID   PID  PPID  C PRI  NI   RSS    SZ WCHAN ...

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

먼저 유저 레벨 프로세스는 어떻게 생성할까요? 저수준 리눅스 어플리케이션 프로그램으로 fork() 함수를 호출하면 리눅스에서 제공하는 라이브러리 도움을 받아 커널에게 프로세스 생성 요청을 합니다. 여기까지가 유저 모드에서 프로세스를 요청하는 단계입니다.리눅스에서 제공하는 라이브러리는 시스템 콜을 발생하고 리눅스 커널에서는 fork() 함수에 대응하는 시...

[리눅스커널] 프로세스는 어떻게 생성하나? - _do_fork() 함수 호출

프로세스에 대한 이해를 하려면 프로세스가 어떻게 생성되는 지 알면 좋습니다. 프로세스 생성 과정에서 프로세스를 관리하는 자료구조 관계를 알 수 있기 때문입니다. 리눅스에서 구동되는 프로세스는 크게 유저 레벨에서 생성된 프로세스와 커널 레벨에서 생성된 프로세스가 있습니다. 유저 레벨에서 생성된 프로세스는 유저 공간에서 프로세스를 생성하는...

[리눅스커널] 프로세스 확인하기 - ps

리눅스 시스템 개발자(디바이스 드라이버, 데브옵스)로 오래 동안 실력을 인정 받으려면 리눅스 커널을 잘 알면 좋습니다. 하지만 리눅스 커널은 그 내용이 방대하고 깊이가 있어 단기간에 익히기 어려운 기술 영역입니다. "프로세스란 무엇인가"란 질문으로 리눅스 커널을 시작합니다. 성경이나 불경같이 근엄한 단어를 많이 보입니다.  안타깝게도 20페이지...

[리눅스커널] 프로세스 - 프로세스, 태스크란

프로세스는 추상적이고 다양한 의미를 담고 있어 다양한 관점으로 설명할 수 있습니다.프로세스란 무엇일까요? 프로세스(Process)는 리눅스 시스템 메모리에서 실행 중인 프로그램을 말합니다. 스케줄링 대상인 태스크와 유사한 의미로 쓰입니다. 다수 프로세스를 실시간으로 사용하는 기법을 멀티프로세싱이라고 말하며 같은 시간에 멀티 프로그램을 실행하는 방식을 멀...

[리눅스 커널] 유저 모드란

유저 레벨 프로세스에 대해 알아보기 전에 유저 모드가 무엇인지 먼저 살펴봅시다.우리가 라즈베리파이에서 바탕 화면에 있는 아이콘을 클릭해서 어떤 프로그램을 실행한다고 가정합시다. 이 때 프로그램은 유저 모드나 커널 모드 중 하나로 동작합니다. ftrace 로그로 커널 동작을 확인하면 정확히 유저 모드와 커널 모드를 자주 스위칭합니다.유저 모드와 커널 모드...

[리눅스커널] 동기화 - 커널 프로세스 레이스 컨디션

이번에 커널 공간에서만 실행하는 커널 쓰레드에서 발생하는 Race를 확인합니다. 커널 쓰레드 중 많이 알려진 워커 쓰레드를 예를 듭시다.이를 위해 다음 패치 코드를 적용할 필요가 있습니다.1 diff --git a/kernel/workqueue.c b/kernel/workqueue.c2 --- a/kernel/workqueue.c3 +++ b/kerne...

[리눅스커널] 프로세스 태스트 디스크립터 디버깅: 스레드와 스레드 그룹

T32로 프로세스 목록을 보면 다음과 같이 계층 구조를 볼 수 있다.magic___|___command_________|#thr|state_____|spaceid|pids_|C1A171B8|   swapper/0       | 420|current   | 0000  | 0....
1 2 3 4 5 6 7 8 9 10 다음