Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

0112
737
82110


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

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

[라즈베리파이] 라즈비안(Raspbian) 리눅스 커널(LinuxKernel) 빌드하기

이번 절에서는 라즈베리파이에서 라즈비안 리눅스 커널 소스 코드를 내려받고 빌드하는 방법을 알아보겠습니다. 필자는 라즈베리파이를 쓸 때 다음 명령어로 root로 변경해 커널 빌드를 합니다.$ sudo su명령어 입력 과정에서 불필요한 권한 설정을 피하기 위해서입니다.라즈비안 커널 소스 코드 내려받기리눅스 커널 소스 코드를 다운로드 받는 방법을 소...

[리눅스커널] 비트 마스크를 어셈블리 코드로 빨리 읽는 방법 - HARDIRQ_MASK, SOFTIRQ_MASK, NMI_MASK

이번에는 비트 마스크를 C 코드가 아닌 어셈블리 코드로 읽는 방법을 소개합니다.in_interrupt() 함수 소개in_interrupt() 함수는 현재 프로세스가 인터럽트 컨택스트인지 알려주는 기능입니다.[https://elixir.bootlin.com/linux/v4.19.30/source/include/linux/preempt.h]#define i...

[리눅스커널][가상파일시스템] 수퍼블록: 슈퍼블록 정보를 statfs 시스템 콜로 읽는 과정 살펴보기

슈퍼블록 각 멤버들은 파일시스템에 대한 메타 정보를 저장합니다.유저 공간에서 파일시스템 정보를 알려면 어떤 함수를 호출해야 할까요?유저 공간에서 statfs() 함수를 호출하면 커널 공간에서 해당 시스템 콜 핸들러 함수인 sys_statfs() 함수를 실행합니다.예제 코드는 다음과 같습니다.1 #define FILENAME_NAME "/home/pi"2...

[리눅스커널][태스크릿] 태스크릿(struct tasklet_struct)은 어떻게 등록할까?

먼저 태스크릿을 등록하는 2가지 방법을 소개합니다.1. 태스크릿 전역 변수 선언  : DECLARE_TASKLET() 혹은 DECLARE_TASKLET_DISABLED() 함수 호출2. 태스크릿 초기화 함수 호출  : tasklet_init() 함수 DECLARE_TASKLET() 혹은 DECLARE_TASKLET_DISABL...

[리눅스커널][SoftIRQ] ksoftirqd 스레드란

6.9 ksoftirqd 스레드이번 절에서는 Soft IRQ 처리용으로 생성된 ksoftirqd 스레드에 대해 살펴봅니다. ksoftirqd 스레드 생성과정과 동작 원리를 배워봅시다.6.9.1 ksoftirqd 스레드란ksoftirqd이란 per-cpu 타입 프로세스입니다. 즉 CPU 개수만큼 생성해서 정해진 CPU 내에서만 실행합니다. ksoftirq...

[리눅스커널]Soft IRQ 서비스는 누가 언제 처리하나?(2/2): __do_softirq() 분석

6.8.3 Soft IRQ 서비스 실행이어서 Soft IRQ 서비스를 실행하는 세부 코드를 살펴보겠습니다.__do_softirq() 함수 분석하기이제 Soft IRQ 의 핵심 코드인 __do_softirq() 함수를 분석할 차례입니다. 분석할 전체 코드는 다음과 같습니다.1 asmlinkage __visible void __softirq_ent...

[리눅스커널][SoftIRQ] Soft IRQ 서비스는 누가 언제 처리하나?(1/2)

6.8 Soft IRQ 서비스는 누가 언제 처리하나?이제 Soft IRQ 기법의 핵심인 Soft IRQ 서비스를 처리하는 흐름을 살펴볼 차례입니다. Soft IRQ 서비스는 언제 처리할까요? 아래 그림과 같이 인터럽트 핸들러를 처리하는 인터럽트 서비스 루틴이 끝나는 시점에 Soft IRQ 서비스 처리를 시작합니다.   [그...

[리눅스커널][SoftIRQ] Soft IRQ 서비스는 언제 요청하나?

6.7 Soft IRQ 서비스는 언제 요청하나?이번 시간에는 Soft IRQ 서비스를 어떻게 요청하는지 배워 보겠습니다. 우리는 이전 절에서 Soft IRQ를 등록하는 과정을 배웠습니다. 다음 코드와 같이 open_softirq() 함수를 써서 TIMER_SOFTIRQ 타입의 Soft IRQ 서비스를 등록했습니다.[https://elixir.bootli...

[리눅스커널] Soft IRQ 서비스에 대해서

6.6 Soft IRQ 서비스이번 절에서는 Soft IRQ 서비스의 의미와 서비스 등록 과정에 대해 살펴봅니다. 6.6.1 Soft IRQ 서비스 알아보기 Soft IRQ를 설명하면서 낯선 용어를 설명했는데, 이제부터 그 의미를 하나하나씩 살펴 보겠습니다. Soft IRQ 서비스란 용어를 소개합니다.Soft IRQ 서비스를 빨리 이해하...

[리눅스커널] Soft IRQ 소개

6.5 Soft IRQ 소개Soft IRQ는 리눅스 커널을 이루는 핵심 기능 중 하나입니다. Soft IRQ 서비스 형태로 커널의 타이머, 스케줄링은 물론 네트워크 시스템에서 사용합니다. Soft IRQ 은 인터럽트 후반부 기법으로 씁니다. 이번 절에서는 Soft IRQ를 인터럽트 후반부 처리 중심으로 살펴봅니다. Soft IRQ 전체 구조를 익힌 다음...
1 2 3 4 5 6 7 8 9 10 다음