Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

90258
1323
114592


리눅스 커널 레시피(12월 출간 예정) 전체 목차 -----Table of Contents-----

리눅스의 전망과 소개


라즈베리파이 설정

2.1 라즈베리파이 소개
2.2 라즈베리파이 설정 방법
   2.2.1 라즈베리파이 실습을 위한 준비물 챙기기
   2.2.2 라즈베리파이 설치하기
   2.2.3 라즈베리파이 기본 세팅하기
2.3 라즈베리파이 커널 빌드하기
   2.3.1 라즈비안 커널 소스 코드 내려받기
   2.3.2 라즈비안 리눅스 커널 빌드하기
   2.3.3 라즈비안 리눅스 커널 설치하기
   2.3.4 전처리 코드 생성해보기
2.4 라즈베리파이에서 objdump 바이너리 유틸리티 써보기
2.5 정리

리눅스커널 디버깅


프로세스

프로세스 디버깅
   glibc fork 함수 gdb 디버깅

인터럽트 처리



인터럽트 후반부 처리









6.9 Soft IRQ 서비스는 누가 언제 처리하나?




6.13 Soft IRQ 디버깅
6.13.1 ftrace Soft IRQ 이벤트 분석 방법
6.13.2 /proc/softirqs로 Soft IRQ 서비스 실행 횟수 확인

워크큐

7.1 워크큐 소개
   7.1.1 워크큐 주요 개념 알아보기
   7.1.2 워크큐의 특징은 무엇인가
   7.1.3 워크큐를 다른 인터럽트 후반부 기법과 비교해보기
   7.1.4 워크큐를 잘 알아야 하는 이유
7.2 워크큐 종류 알아보기
   7.2.1 alloc_workqueue() 함수 분석하기  
   7.2.2 7가지 워크큐를 알아보기
7.3 워크란
   7.3.1 struct work_struct 구조체
   7.3.2 워크는 어떻게 초기화를 할까?
7.4 워크를 워크큐에 어떻게 큐잉할까?
   7.4.1 워크를 워크큐에 큐잉하는 예제 코드 살펴보기
   7.4.2 워크큐 전체 흐름도에서 워크를 워크큐에 큐잉하는 과정 소개
   7.4.3 워크를 워크큐에 큐잉하는 인터페이스 함수 분석하기
   7.4.4 __queue_work() 함수 분석하기
   7.4.5 __queue_work_on() 함수에서 호출하는 워크큐 내부 함수 분석하기
7.5 워크는 누가 언제 실행하나?
   7.5.1 워크 실행의 출발점인 worker_thread() 함수 분석 
   7.5.2 process_one_work() 함수 분석
7.6. 워커 스레드란
   7.6.1 워커와 워커 스레드란
   7.6.2 워커 자료구조인 struct worker 구조체 알아보기
   7.6.3 워커 스레드는 누가 언제 만들까
   7.6.4 워커 스레드를 만드는 create_worker() 함수 분석하기
   7.6.5 create_worker() 함수에서 호출한 워크큐 커널 함수 분석하기
   7.6.6 워커 스레드 핸들 worker_thread() 함수 분석하기 
7.7 워크큐 실습 및 디버깅
   7.7.1 ftrace 워크큐 이벤트 소개
   7.7.2 라즈베리파이에서 ftrace로 워크큐 동작 확인
   7.7.3 인터럽트 후반부로 워크큐 추가 실습 및 로그 분석
7.8 딜레이 워크 소개
   7.8.1 딜레이 워크란 무엇인가?
   7.8.2 딜레이 워크 전체 흐름도 소개
   7.8.3 딜레이 워크는 어떻게 초기화할까?
   7.8.4 딜레이 워크 실행의 시작점은 어디일까?
   7.8.5 딜레이 워크는 누가 언제 큐잉할까?
7.9 라즈베리파이 딜레이 워크 실습 및 로그 확인
   7.9.1 패치 코드 내용과 작성 방법 알아보기
   7.9.2 ftrace 로그 설정 방법 소개
   7.9.3 ftrace 로그 분석해보기
7.10 정리

커널 시간관리

커널 타이머 관리 주요 개념 소개
jiffies란
커널 타이머 제어
동적 타이머 초기화
동적 타이머 등록하기
동적 타이머는 누가 언제 실행하나?
라즈베리파이 커널 타이머 실습 및 로그 분석
   
커널 동기화

커널 동기화 기본 개념 소개
레이스 발생 동작 확인
커널 동기화 기법 소개
스핀락
뮤텍스란
커널 동기화 디버깅

프로세스 스케줄링

스케줄링 소개
프로세스 상태 관리
   어떤 함수가 프로세스 상태를 바꿀까?
스케줄러 클래스
런큐
CFS 스케줄러
   CFS 관련 세부 함수 분석  
선점 스케줄링(Preemptive Scheduling)   
프로세스는 어떻게 깨울까?
스케줄링 핵심 schedule() 함수 분석
컨택스트 스위칭
스케줄링 디버깅
   스케줄링 프로파일링
     CPU에 부하를 주는 테스트   
     CPU에 부하를 주지 않는 테스트 

시스템 콜

시스템 콜 주요 개념 소개
유저 공간에서 시스템 콜은 어떻게 발생할까
시스템 콜 핸들러는 어떤 동작을 할까? 
시스템 콜 실행 완료 후 무슨 일을 할까?
시스템 콜 관련 함수  
시스템 콜 디버깅  
   

시그널이란

시그널이란
시그널 설정은 어떻게 할까
시그널 생성 과정 함수 분석
프로세스는 언제 시그널을 받을까
시그널 전달과 처리는 어떻게 할까?
시그널 제어 suspend() 함수 분석 
시그널 ftrace 디버깅
 
  
가상 파일시스템 

가상 파일시스템 소개
파일 객체
파일 객체 함수 오퍼레이션 동작
프로세스는 파일객체 자료구조를 어떻게 관리할까?
슈퍼블록 객체
아이노드 객체
덴트리 객체
가상 파일시스템 디버깅

커널 메모리 

가상 주소를 물리 주소로 어떻게 변환할까?   
메모리 존(Zone)에 대해서   
커널 메모리 할당은 어떻게 할까   
슬랩 메모리 할당자와 kmalloc 슬랩 캐시 분석   
커널 메모리 디버깅


"혹시 궁금한 점이 있으면 댓글로 질문 남겨주세요. 아는 한 성실히 답변 올려드리겠습니다!" 

Thanks,
Austin Kim(austindh.kim@gmail.com)



핑백

덧글

  • padawan 2019/02/08 08:31 # 삭제 답글

    기존과 다른 커널책이 출간된다니 기대가 되네요. 오래오래 소장하고픈 멋진 책 기대하겠습니다. 마지막 탈고 작업으로 바쁘실텐데 힘내세요!!
  • AustinKim 2019/02/08 11:04 #

    격려해주셔서 감사합니다. 즐거운 하루 되십시오!
  • 궁그 2019/05/30 16:37 # 삭제 답글

    이책 언제출간되나요?
    바로 사고싶은데 어느싸이트에서 구매가능한가요?
  • AustinKim 2019/05/31 06:15 #

    7월말이나 8월초에 출간될 것 같습니다. 유명 출판사에서 내는 책이니 yes24와 같은 어느 온라인 서점에 가도 구매할 수 있을 것입니다.
    제 블로그에 관심을 가져주셔서 감사합니다.
  • 궁그 2019/06/05 16:05 # 삭제 답글

    와~~목빠지게 기다리고있습니다 ^^
    많이 힘드실것같습니다 ㅠㅠ 힘내십시오!!
  • AustinKim 2019/06/09 09:33 #

    응원해주시고 격려해주셔서 정말 감사합니다.
    혹시 출간 전에 미리 보고 싶은 챕터가 있으신가요? 이메일 주시면 1~2챕터 정도는 PDF로 전달드릴 수 있습니다.
  • kyle 2019/06/09 11:32 # 삭제 답글

    안녕하세요. 나온다면 구매하고싶습니다. 그런데 혹시 ebook으로도 출간하실 생각인가요?
    메모나 검색같은 기능때문에 eBook 정말 편하더라고요. 물론 무거운책을 안들고다녀도 된다는 장점도 있고요.
    어쨋든 정말 기대됩니다!
  • AustinKim 2019/06/09 14:55 #

    응원해주셔서 감사합니다.
    일단 원고를 마무리한 다음 출판사와 이야기해서 eBook 출간도 추진해야 겠군요.
  • djk 2019/07/16 11:01 # 삭제 답글

    현재 iamroot 커널스터디중인데, 이책 기대중입니다. e-book도 기대중이고, 미리 1~2chapter 받을수 있을까요? 3~4장 중 가능한 챕터 부탁드립니다. kindboy1200@daum.net
  • AustinKim 2019/07/16 11:24 #

    지금 집필 중인 책에 관심을 가져 주셔서 감사합니다.
    우선 '4장 프로세스' 챕터 보내 드리면 어떨까요? 내용을 읽고 혹시 질문을 주실 수 있나요?
    베타리더가 되어 주시면 더 감사하겠습니다.
  • djk 2019/07/17 20:21 # 삭제

    안녕하세요, 스터디원들과도 함께 공유해서 보도록 하고, 말씀 하신 베타리더역할도 같이 해보자고 제안해보겠습니다.
    감사합니다.
  • AustinKim 2019/07/18 00:21 #

    댓글 주셔서 감사합니다.

    다음 정보와 함께 저에게 메일 주시면 4장 원고를 먼저 보내드리겠습니다.
    austindh.kim@gmail.com

    이름/리눅스 커널을 공부하는 목적/리눅스 소스 코드를 분석한 기간

    (예시)
    이름: 이병규
    리눅스 커널을 공부하는 목적: 개발 능력을 키우기 위해/운영체제를 알고 싶어서/취미 삼아서
    리눅스 소스 코드를 분석한 기간: 1주일/8년/아직 없음

    베타 리더를 하시는 분들이 많아 관리를 위해 간략한 정보를 요청드리는 것입니다.
    편하게 생각해주셨으면 좋겠습니다.
  • 아잉 2019/07/30 21:35 # 삭제 답글

    지나가다 우연히 알게 되었습니다. 또 다른 커널 책이라니 기대가 정말 많이 됩니다.. 현기증 나요..ㅠㅠ
  • AustinKim 2019/07/30 23:01 #

    응원해주셔서 감사합니다! 자주 블로그에 오셔서 좋은 정보 얻어 가셨으면 좋겠습니다.
  • roqkf 2019/08/06 13:10 # 삭제 답글

    책 기다리고 있겠습니다!! 화이팅!!
  • AustinKim 2019/08/07 22:17 #

    응원해주셔서 감사합니다.
  • 기린 2019/09/18 10:36 # 삭제 답글

    좋은 책 나오면 사야죠~^^
  • Guillermo 2019/09/18 18:20 #

    감사합니다. ^^
  • 너구리 2019/09/26 17:31 # 삭제 답글

    책 기다리고 있습니다. :)
  • AustinKim 2019/09/26 20:27 #

    감사합니다.
    조만간 출간 예정이니 조금만 기다려 주세요. :)
  • applemaste 2019/10/15 03:19 # 삭제 답글

    리눅스 커널을 공부하며 정말 많은 정보를 얻어간 블로그인데 책을 출간하신다니 정말 기대됩니다 ㅎㅎ
    출간되면 꼭 한권 사서 평생 펴보지 않을까 싶습니다.
    감사합니다.
  • Guillermo 2019/10/17 05:57 #

    응원해주셔서 감사합니다. 자주 오셔서 유용한 정보 얻어 가셨으면 좋겠네요.
  • ybgwon 2019/11/08 13:17 # 삭제 답글

    책 나왔나 해서 한번씩 들립니다. 서두르지 마시고 잘 정리하셔서 좋은 책 부탁드립니다.
  • AustinKim 2019/11/08 17:21 #

    응원 감사합니다. 즐거운 주말 보내세요.
  • Daniel 2019/11/18 15:17 # 답글

    저도 책 나왔는지 종종 확인하러 들르며 응원하고 있습니다 :)
댓글 입력 영역