ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스 커널 심층 분석 (임베디드 개발자를 위한 )
    내 이야기/COM 북 2005. 8. 26. 06:22

    사용자 삽입 이미지

     

     

    리눅스 커널 심층 분석 (임베디드 개발자를 위한 )


    로버트 러브, 전동환, 성원호 지음 | 이상근 옮김 | 에이콘출판

     

     

     

     

     

     

     

    목차
    1.리눅스 커널
    리눅스
    운영체제와 커널
    리눅스 커널과 전통적인 유닉스 커널
    리눅스 커널 버전
    리눅스 커널 개발 커뮤니티
    다른 성질의 존재
    커널 빌드
    시작하기 전에

     

    2.프로세스 관리
    프로세스 서술자와 태스크 구조체
    프로세스 생성
    리눅스의 스레드 구현
    프로세스 종료

     

    3.스케줄링
    정책
    스케줄링 알고리즘
    선점과 컨텍스트 스위칭
    실시간
    스케줄러와 관련된 시스템 콜

     

    4.시스템 콜 53
    API, POSIX, 그리고 C 라이브러리
    시스콜
    시스템 콜 핸들러
    시스템 콜의 구현
    시스템 콜 컨텍스트

     

    5.인터럽트와 인터럽트 핸들러
    인터럽트
    인터럽트 핸들러
    인터럽트 핸들러 등록
    인터럽트 핸들러 작성
    인터럽트 핸들링의 구현
    /proc/interrupts
    인터럽트 컨트롤

     

    6.보톰하프와 지연된 작업
    보톰하프
    Softirq
    태스크릿
    워크큐
    어떤 보톰하프를 사용해야 하는가?
    보톰하프 사이의 락

     

    7.널 동기화 개요
    위험구역과 경쟁상태
    록킹
    데드락
    경쟁과 확장성
    잠그기

     

    8.커널 동기화 방법
    원자적 동작
    스핀록
    리더-라이터 스핀록
    세마포어
    리더-라이터 세마포어
    완료 변수
    BKL: 큰 커널 록
    Seq 록
    선점의 비활성화
    배리어

     

    9.타이머와 시간 관리
    커널에 있어서의 시간의 개념
    진동수 : HZ
    지피
    하드웨어 클럭과 타이머
    타이머 인터럽트 핸들러
    현재시각
    타이머
    실행 지연

     

    10.메모리 관리
    페이지
    영역
    페이지 얻기
    kmalloc()
    kfree()
    vmalloc()
    슬랩 레이어
    슬랩 할당자 인터페이스
    스택에 정적으로 할당
    상위 메모리 매핑
    어떤 할당 방법을 사용해야 하는가?

     

    11.가상 파일시스템
    공통 파일시스템 인터페이스
    파일시스템 추상화 레이어
    유닉스 파일시스템
    VFS 객체와 그 자료구조
    슈퍼블록 객체
    Inode 객체
    덴트리 객체
    파일 객체
    파일시스템과 관련된 자료구조
    프로세스와 연관된 자료구조
    리눅스의 파일시스템

     

    12.블록 I/O 레이어
    블록 디바이스에 대한 이해
    버퍼와 버퍼헤드
    bio 구조체
    요청 큐
    I/O 스케줄러

     

    13.프로세스 주소 공간
    메모리 서술자
    메모리 영역
    메모리 영역 다루기
    mmap() 과 do_mmap(): 주소공간 생성
    munmap() 과 do_munmap(): 주소 공간의 제거
    페이지 테이블

     

    14.페이지 캐시와 페이지 라이트백
    페이지 캐시
    래딕스 트리
    버퍼 캐시
    pdflush 데몬

     

    15.디버깅
    먼저 시작해야 하는 것
    커널에서의 버그
    printk()
    Oops
    커널 디버깅 옵션
    버그 유발과 정보 덤프
    Magic SysRq 키
    커널 디버거 이야기
    시스템을 여러 각도에서 조사
    범행을 저지른 변경을 찾기 위한 2진 탐색
    모든 시도가 실패한 경우 : 커뮤니티

     

    16.이식성

    리눅스 : 이식성의 역사
    워드 크기와 자료형
    데이터 정렬
    바이트 순서
    시간
    페이지 크기
    프로세서 오더링
    SMP, 커널 선점, 상위 메모리
    이식성은 즐거운 경험이다

     

    17.패치, 해킹, 그리고 공동체
    공동체
    리눅스 코딩 스타일
    명령 체계
    버그 리포트 제출
    패치 생성
    패치 제출

     

    A.연결 리스트
    환형 연결 리스트
    리눅스 커널에서의 구현
    연결 리스트 조작
    연결 리스트 순회

     

    B.각 CPU별 인터페이스
    새로운 percpu 인터페이스
    CPU별 데이터를 사용하는 이유

     

    C.커널 랜덤 숫자 발생기
    디자인과 구현
    엔트로피 입력 인터페이스
    엔트로피 출력 인터페이스

     

    D.알고리즘 복잡도
    알고리즘
    빅 O 표기법
    빅 세타 표기법
    모든 것을 모아 보자
    시간 복잡도의 위험성

    댓글