Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

105258
1323
114607


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

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

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

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

[안드로이드][리눅스커널] 시그널 - 유저 공간 abort(SIGABRT) 시 동작 시 흐름

유저 공간에서 zygote가 강제 종료되면서 부팅을 못하는 상황입니다. 커널 로그로 아래 메시지를 볼 수 있습니다.아래 로그는 init 프로세스가 zygote에 SIGABRT(6) 시그널을 전달해서 zygote를 종료시키고 있습니다.[   46.116831 / 01-02 01:20:24.859][0] init: Service 'zygo...

[라즈베리파이] 시스템 콜 - ARM 프로세서 관점 시스템 콜 처리

리눅스 시스템에서 시스템 콜을 관련 코드를 읽다보면 어셈블리 코드를 만나게 됩니다. 보통 어셈블리 코드는 ARM 프로세서 입장에서 실행하는 동작입니다. 어셈블리 코드로 구현돼 있다는 것은 시스템 콜이 아키텍처(ARM, x86) 동작과 연관이 있다는 볼 수 있습니다. 라즈베리파이는 ARM 아키텍처에서 구동하므로 ARMv7(Aarch32,...

[리눅스커널] 시스템 콜 - 전체 흐름도 소개

이전 절에서 시스템 콜의 개념을 알아봤습니다. 시스템 콜 흐름도와 시스템 콜 동작은 그리 간단하지 않습니다. 시스템 콜 세부 동작을 알려면 시스템 전체 흐름도를 이해해야 합니다. 이어서 리눅스 전체 시스템에서 시스템 콜이 무엇인지 살펴보겠습니다. 시스템 콜 전체 세부 흐름도 파악하기다음 그림은 이번 장에서 다룰 전체 시스템 콜 흐름도입...

[리눅스커널] 시스템 콜 소개

시스템 콜은 유저 모드에서 커널 모드로 진입하는 동작입니다. 시스템 콜은 다른 관점으로 유저 공간과 커널 공간 사이 가상 계층이자 인터페이스입니다.유저 공간과 커널 공간 소개그렇다면 여기서 말하는 유저 공간과 커널 공간이란 무엇일까요? 리눅스에서는 실행 공간을 메모리 접근과 실행 권한에 따라 유저 공간과 커널 공간으로 분류합니다. 먼저 커널 공...

[라즈베리파이] 시스템 콜(시스템 호출)은 왜 필요하나?

시스템 콜은 유저 모드에서 커널 모드로 진입하는 동작입니다. 다른 관점으로 시스템 콜은 유저 공간과 커널 공간 사이 가상 계층이자 인터페이스라고 볼 수도 있습니다. 이 계층은 다음과 같은 특징이 있습니다.1. 시스템 안정성과 보안을 지킬 수 있습니다. 유저모드에서 어플리케이션이 커널 공간에 아무런 제약없이 접근한다고 가정합시다. 실수로 어플리케이션이 커...

4.3.3 커널 프로세스 생성 시 do_fork() 함수 흐름

커널 공간에서 시스템 리소스(메모리, 전원) 관리를 수행하는 프로세스를 커널 스레드라고 합니다. 커널 스레드는 어떻게 생성할까요? 다음과 같이 kthread_create() 함수에 적절한 인자를 전달하면 됩니다.커널 스레드를 생성하는 코드를 같이 봅시다. [https://elixir.bootlin.com/linux/v4.14.70/source/...

[라즈베리파이] 프로세스: 커널 스레드는 어떻게 생성하나?

[리눅스커널] Process - 프로세스, 경량 프로세스, 스레드 소개

프로세스라는 개념은 모든 멀티프로그래밍 운영체제의 기본입니다.프로세스는 실행중인 프로그램의 인스턴스로 정의할 수 있는데, 16명의 유저가 vi를 동시에 실행하면 각각 16개의 프로세스가 존재합니다. (물론 vi 코드는 동일한 것을 공유할 수 있습니다). 리눅스 코드에서는 프로세스를 태스크(task)나 쓰레드(thread)라고 부릅니다.프로세스,...

[리눅스커널] 워크큐(Workqueue) - 딜레이워크(delayed_work)는 어떻게 실행하나?

딜레이 워크를 실행하려면 어떤 함수를 호출해야 할까요? schedule_delayed_work() 함수를 실행하면 됩니다.먼저 딜레이 워크를 실행하는 드라이버 코드를 예제로 열어 보겠습니다.[https://elixir.bootlin.com/linux/v4.14.43/source/drivers/mmc/host/bcm2835.c#L651]1 static2 ...
1 2 3 4 5 6 7 8 9 10 다음