본문내용 바로가기
MD의선택 이벤트 무료배송 사은품

리눅스 커널 심층분석

에이콘 임베디드 시스템프로그래밍 시리즈 33 | 개정판 3판
로버트 러브 지음 | 황정동 옮김 | 에이콘출판 | 2012년 08월 06일 출간
  • 정가 : 35,000원
    판매가 : 31,500 [10%↓ 3,500원 할인]
  • 제휴할인가 : 23,620 교보-롯데카드 최대 25% 청구할인 카드/포인트 안내
  • 통합포인트 : 1,750 적립 [5% 적립]
  • 추가혜택 :
    naver네이버페이 결제 시 무조건 1% 추가 적립 payco페이코 결제 시 누구나 최대 3,000원 할인 + 1만원 적립 okcashbag 실 결제 금액의 0.5% 적립 안내
  • 배송비 : 무료 배송비 안내
  • 도착예정일 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(24일,목) 도착 예정 도착 예정일 안내
  • 바로드림 : 인터넷으로 주문하고 영업점에서 직접 수령 안내
8월 특별선물
닫기
  • 여름방학 어린이 필독세트
  • 8월 특별선물
  • 여름방학 어린이 필독세트
  • 꼬마 흡혈귀 머그컵 증정
  • 이달의 추천도서 메시플랫파우치 증정, 행사도서 포함 2만원이상 구매시 선택 (1,500P차감)
  • 유홍준 작가전

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • #리드잇 페이스북 페이지 팔로우 하시고, 신간소식 빠르게 받아보..
    2017.06.22 ~ 2025.07.31
  • 대표 IT 컴퍼니 지원자격에 맞춰 준비하자
    06. 21 ~ 12. 31
  • MANNING, O'REILLY, PACKT, WILEY 등 해..
    03. 07 ~ 04. 30
  • 설문참여 시 매월 5명 추첨통해 선물을 드립니다.
    10. 14 ~ 12. 31
상품상세정보
ISBN 9788960773318(896077331X)
쪽수 624쪽
크기 188 * 250 * 35 mm /1228g 판형알림
이 책의 원서 Linux kernel development. 3/E/Love, Robert

책소개

이 책이 속한 분야

핵심 커널 시스템의 동작 방법과 그 설계 및 구현을 다룬 리눅스 커널 입문서!

《에이콘 임베디드 시스템프로그래밍》제39권『리눅스 커널 심층분석』. 이 책은 리눅스 커널의 핵심을 간결하면서도 심도있게 다루고 있다. 일반적인 운영체제에 대한 이해를 넘어, 여타 유닉스 시스템과 다른 리눅스만의 특징적인 부분에 대한 설계, 구현, 인터페이스 등을 이론과 실제 사이에서 균형감 있게 소개한다. 운영체제의 기본적인 기능인 프로세스 관리, 시스템 호출, 인터럽트 처리, 동기화, 메모리 관리, 파일 시스템, 이식성에 대한 내용 뿐 아니라, 최신 2.6 커널의 흥미로운 부분인 CFS 스케줄러, 커널 선점, 블럭 입출력 계층, 입출력 스케줄러 등의 내용을 상세히 다루었다.

이 책의 총서

총서 자세히 보기

저자소개

저자 : 로버트 러브

저자 로버트 러브 (Rovert Love)는 오픈 소스 개발자, 강연자, 저자로 15년 이상 리눅스를 사용하면서 리눅스 발전에 기여했다. 로버트는 현재 구글의 선임 소프트웨어 엔지니어로 일하며, 안드로이드 모바일 플랫폼을 개발한 팀에 속해 있다. 구글 이전에는 노벨(Novell) 사에서 리눅스 데스크탑 책임 설계자를 맡았다. 노벨 사 이전에는 몬타비스타 소프트웨어(MontaVista Software)와 지미안(Ximian)에서 커널 엔지니어로 일했다. 로버트는 선점형 커널, 프로세스 스케줄러, 커널 이벤트 계층, inotify, 가상 메모리 개선, 디바이스 드라이버 개발 등의 커널 프로젝트에 참가했다. 로버트는 리눅스 커널에 대해 수많은 강연을 했으며, 리눅스 커널에 대한 글도 여러 편 썼다. <리눅스 저널(Linux Journal)>의 편집 기자이기도 한 로버트의 다른 책으로는 『Linux System Programming』, 『Linux in a Nutshell』 등이 있다. 로버트는 플로리다 대학에서 수학학사와 전산학사 학위를 받았으며, 현재 보스턴에서 살고

역자 : 황정동

역자 황정동은 서울대학교에서 전산학과 물리학을 전공했다. 졸업 후 네오위즈에 입사해 시스템 프로그래밍, 시스템 및 네트워크 운영 등의 업무를 거치면서 수천 대 규모의 리눅스 시스템과 네트워크를 관리하고 설계했다. 이후 검색전문 회사 첫눈에서 웹로봇을 개발했으며, NHN 검색센터에서 상당 기간 언어처리 관련 라이브러리 개발 업무를 담당했다. 현재는 (주)퓨쳐스트림네트웍스에서 수석연구원으로 일하고 있다.

목차

1장 리눅스 커널 입문
___유닉스의 역사
___리눅스의 개발
___운영체제와 커널
___리눅스 커널과 전통적인 유닉스 커널
___리눅스 커널 버전
___리눅스 커널 개발 공동체
___시작하기 전에

2장 커널과의 첫 만남
___커널 소스 구하기
___Git 사용하기
___커널 소스 설치
___패치
___커널 소스 트리
___커널 빌드
___커널 설정
___빌드 메시지 최소화
___빌드 작업을 동시에 여러 개 실행
___새 커널 설치
___다른 성질의 야수
___libc와 표준 헤더 파일을 사용할 수 없음
___GNU C
___인라인 함수
___인라인 어셈블리
___분기 구문표시
___메모리 보호 없음
___부동 소수점을 (쉽게) 사용할 수 없음
___작은 고정 크기의 스택
___동기화와 동시성
___이식성의 중요성
___결론

3장 프로세스 관리
___프로세스
___프로세스 서술자와 태스크 구조체
___프로세스 서술자의 할당
___프로세스 서술자 저장
___프로세스 상태
___현재 프로세스 상태 조작
___프로세스 컨텍스트
___프로세스 계층 트리
___프로세스 생성
___Copy-on-Write
___프로세스 생성(forking)
___vfork()
___리눅스의 스레드 구현
___스레드 생성
___커널 스레드
___프로세스 종료
___프로세스 서술자 제거
___부모 없는 태스크의 딜레마
___결론

4장 프로세스 스케줄링
___멀티태스킹
___리눅스의 프로세스 스케줄러
___정책
___입출력중심 프로세스와 프로세서중심 프로세스
___프로세스 우선순위
___타임슬라이스
___스케줄러 정책의 동작
___리눅스 스케줄링 알고리즘
___스케줄러 클래스
___유닉스 시스템의 프로세스 스케줄링
___공정 스케줄링
___리눅스 스케줄링 구현
___시간 기록
___스케줄러 단위 구조체
___가상 실행시간
___프로세스 선택
___다음 작업 선택
___트리에 프로세스 추가
___트리에서 프로세스 제거
___스케줄러 진입 위치
___휴면과 깨어남
___대기열
___깨어남
___선점과 컨텍스트 전환
___사용자 선점
___커널 선점
___실시간 스케줄링 정책
___스케줄러 관련 시스템 호출
___스케줄링 정책과 우선순위 관련 시스템 호출
___프로세서 지속성(affinity) 관련 시스템 호출
___프로세서 시간 양보
___결론

5장 시스템 호출
___커널과 통신
___API, POSIX, C 라이브러리
___시스콜
___시스템 호출 번호
___시스템 호출 성능
___시스템 호출 핸들러
___알맞은 시스템 호출 찾기
___매개변수 전달
___시스템 호출 구현
___시스템 호출 구현
___매개변수 검사
___시스템 호출 컨텍스트
___시스템 호출 등록을 위한 마지막 단계
___사용자 공간에서 시스템 호출 사용
___시스템 호출을 구현하지 말아야 하는 이유
___결론

6장 커널 자료 구조
___연결 리스트
___단일 연결 리스트와 이중 연결 리스트
___환형 연결 리스트
___연결 리스트 내에서 이동
___리눅스 커널의 구현 방식
___연결 리스트 구조체
___연결 리스트 정의
___리스트 헤드
___연결 리스트 조작
___연결 리스트에 노드 추가
___연결 리스트에서 노드 제거
___연결 리스트의 노드 이동과 병합
___연결 리스트 탐색
___기본 방식
___실제 사용하는 방식
___역방향으로 리스트 탐색
___제거하면서 탐색
___다른 연결 리스트 함수
___큐
___kfifo
___큐 생성
___데이터를 큐에 넣기
___데이터를 큐에서 빼기
___큐의 크기 알아내기
___큐 재설정과 큐 삭제
___큐 사용 예제
___맵
___idr 초기화
___새로운 UID 할당
___UID 찾기
___UID 제거
___idr 제거
___이진 트리
___이진 탐색 트리
___자가 균형 이진 탐색 트리
___레드블랙 트리
___rbtree
___어떤 자료 구조를 언제 사용할 것인가?
___알고리즘 복잡도
___알고리즘
___O(빅오, 대문자오) 표기법
___빅 세타 표기법
___시간 복잡도
___결론

7장 인터럽트와 인터럽트 핸들러
___인터럽트와 인터럽트 핸들러
___전반부 처리와 후반부 처리
___인터럽트 핸들러 등록
___인터럽트 핸들러 플래그
___인터럽트 예제
___인터럽트 핸들러 해제
___인터럽트 핸들러 작성
___공유 핸들러
___인터럽트 핸들러의 실제 예
___인터럽트 컨텍스트
___인터럽트 핸들러 구현
___/proc/interrupts
___인터럽트 제어
___인터럽트 활성화와 비활성화
___특정 인터럽트 비활성화
___인터럽트 시스템 상태
___결론

8장 후반부 처리와 지연된 작업
___후반부 처리bottom half
___왜 후반부 처리를 하는가?
___후반부 처리의 세계
___원래의 ‘후반부 처리’
___태스크 큐
___softirq와 태스크릿
___혼란스러움을 떨쳐내기
___softirq
___softirq 구현
___softirq 핸들러
___softirq 실행
___softirq 사용
___인덱스 할당
___핸들러 등록
___softirq 올림
___태스크릿tasklet
___태스크릿 구현
___태스크릿 구조체
___태스크릿 스케줄링
___태스크릿 사용
___태스크릿 선언
___태스크릿 핸들러 작성
___태스크릿 스케줄링
___ksoftirqd
___구식 BH 처리 방식
___워크 큐
___워크 큐 구현
___스레드 표현 자료 구조
___작업 표현 자료 구조
___워크 큐 구현 정리
___워크 큐 사용
___작업 생성
___워크 큐 핸들러
___작업 스케줄링
___작업 비우기
___새로운 워크 큐 만들기
___구식 태스크 큐 방식
___어떤 후반부 처리 방식을 사용할 것인가?
___후반부 처리 작업 사이의 락
___후반부 처리 비활성화
___결론

9장 커널 동기화 개요
___위험 지역과 경쟁 조건
___왜 보호 장치가 필요한가?
___단일 변수
___락
___동시성의 원인
___보호 대상 인식
___데드락
___경쟁과 확장성
___결론

10장 커널 동기화 방법
___원자적 동작
___원자적 정수 연산
___64비트 원자적 연산
___원자적 비트 연산
___스핀락
___스핀락 사용 방법
___그 밖의 스핀락 함수
___스핀락과 후반부 처리
___리더?라이터 스핀락
___세마포어
___카운팅 세마포어와 바이너리 세마포어
___세마포어 생성과 초기화
___세마포어
___리더-라이터 세마포어
___뮤텍스(mutex)
___세마포어와 뮤텍스
___스핀락과 뮤텍스
___완료 변수
___큰 커널 락
___순차적 락
___선점 비활성화
___순차성(ordering)과 배리어(barrier)
___결론

11장 타이머와 시간 관리
___커널의 시간의 개념
___진동수: HZ
___이상적인 HZ 값
___큰 HZ 값의 장점
___큰 HZ 값의 단점
___지피(jiffies)
___지피의 내부 표현
___지피 값 되돌아감
___사용자 공간과 HZ 값
___하드웨어 시계와 타이머
___실시간 시계
___시스템 타이머
___타이머 인터럽트 핸들러
___날짜와 시간
___타이머
___타이머 사용
___타이머 경쟁 조건
___타이머 구현
___실행 지연
___루프 반복
___작은 지연
___schedule_timeout()
___schedule_timeout() 구현
___만료시간을 가지고 대기열에서 휴면
___결론

12장 메모리 관리
___페이지
___구역
___페이지 얻기
___0으로 채워진 페이지 얻기
___페이지 반환
___kmalloc()
___gfp_mask 플래그
___동작 지정자
___구역 지정자
___형식 플래그
___kfree()
___vmalloc()
___슬랩 계층
___슬랩 계층 설계
___슬랩 할당자 인터페이스
___캐시에서 할당
___슬랩 할당자 사용 예제
___스택에 정적으로 할당
___단일 페이지 커널 스택
___공정하게 스택 사용
___상위 메모리 연결
___고정 연결
___임시 연결
___CPU별 할당
___새로운 percpu 인터페이스
___컴파일 시점의 CPU별 데이터
___실행 시점의 CPU별 데이터
___CPU별 데이터를 사용하는 이유
___할당 방법 선택
___결론

13장 가상 파일시스템
___일반 파일시스템 인터페이스
___파일시스템 추상화 계층
___유닉스 파일시스템
___VFS 객체와 자료 구조
___슈퍼블록 객체
___슈퍼블록 동작
___아이노드 객체
___아이노드 동작
___덴트리 객체
___덴트리 상태___
___덴트리 캐시
___덴트리 동작
___파일 객체
___파일 동작
___파일시스템 관련 자료 구조
___프로세스 관련 자료구조
___결론

14장 블록 입출력 계층
___블록 장치 구조
___버퍼와 버퍼 헤드
___bio 구조체
___입출력 벡터
___신구 버전 비교
___요청 큐
___입출력 스케줄러
___입출력 스케줄러가 하는 일
___리누스 엘리베이터
___데드라인 입출력 스케줄러
___예측 입출력 스케줄러
___완전 공정 큐 입출력 스케줄러
___무동작 입출력 스케줄러
___입출력 스케줄러 선택
___결론

15장 프로세스 주소 공간
___주소 공간
___메모리 서술자
___메모리 서술자 할당
___메모리 서술자 해제
___mm_struct 구조체와 커널 스레드
___가상 메모리 영역
___VMA 플래그
___VMA 동작
___메모리 영역 리스트와 트리
___실제 메모리 영역
___메모리 영역 다루기
___find_vma()
___find_vma_prev()
___find_vma_intersection()
___mmap()와 do_mmap(): 주소 범위 생성
___munmap()와 do_munmap(): 주소 범위 해제
___페이지 테이블
___결론

16장 페이지 캐시와 페이지 지연 기록
___캐시 사용 방식
___쓰기 캐시
___캐시 축출
___가장 오래 전에 사용한 항목 제거
___이중 리스트 전략
___리눅스 페이지 캐시
___address_space 객체
___address_space 동작
___기수 트리
___구식 페이지 해시 테이블
___버퍼 캐시
___플러시 스레드
___랩탑 모드
___역사: bdflush, kupdated, pdflush
___다중 스레드 환경의 경쟁 상태 회피
___결론

17장 장치와 모듈
___장치 유형
___모듈
___Hello, World!
___모듈 만들기
___소스 트리에 들어 있는 경우
___소스 트리 외부에 있는 경우
___모듈 설치
___모듈 의존성 생성
___모듈 적재
___설정 옵션 관리
___모듈 인자
___노출 심볼exported symbols
___장치 모델
___Kobjects
___Ktypes
___Ksets___
___kobject, ktype, kset의 상관 관계
___kobject 관리와 변경
___참조 횟수
___참조 횟수 증감
___krefs
___sysfs
___sysfs에 kobject 추가와 제거
___sysfs에 파일 추가
___기본 속성
___새로운 속성 만들기
___속성 제거
___sysfs 관례
___커널 이벤트 계층
___결론

18장 디버깅
___시작하기
___커널 버그
___출력을 이용한 디버깅
___견고함
___로그수준
___로그 버퍼
___syslogd와 klogd
___printf()와 printk() 사용 혼동
___웁스
___ksymoops
___kallsyms
___커널 디버깅 옵션
___버그 확인과 정보 추출
___만능 SysRq 키
___커널 디버거의 전설
___gdb
___kgdb
___시스템 찔러 보기와 조사
___조건에 따른 UID 사용
___조건 변수
___통계
___디버깅 작업의 빈도와 발생 제한
___문제를 일으킨 변경 사항을 찾기 위한 이진 탐색
___Git을 사용한 이진 탐색
___모든 방법이 실패했을 때: 공동체
___결론

19장 이식성
___이식성 있는 운영체제
___리눅스 이식성의 역사
___워드 크기와 데이터 형
___불투명 데이터 형
___특수 데이터 형
___명시적으로 크기가 정해진 데이터 형
___문자 데이터 형의 부호유무
___데이터 정렬
___정렬 문제 피하기
___비표준 데이터 형의 정렬
___구조체 채우기
___바이트 순서
___시간
___페이지 크기
___프로세서 순서
___SMP, 커널 선점, 상위 메모리
___결론

20장 패치, 해킹, 공동체
___공동체
___리눅스 코딩 스타일
___들여쓰기
___switch 구문
___공백
___괄호
___줄 길이
___명명 방식
___함수
___주석
___형 지정
___기존 함수 사용
___소스에서 ifdef 사용 최소화
___구조체 초기화
___과거에 작성한 코드 소급 적용
___지휘 계통
___버그 리포트 제출
___패치
___패치 만들기
___Git을 사용해 패치 생성
___패치 제출
___결론

출판사 서평

이 책은 리눅스 커널의 핵심을 간결하면서도 심도있게 다루고 있다. 일반적인 운영체제에 대한 이해를 넘어, 여타 유닉스 시스템과 다른 리눅스만의 특징적인 부분에 대한 설계, 구현, 인터페이스 등을 이론과 실제 사이에서 균형감 있게 소개한다. 구체적으로 운영체제의 기본적인 기능인 프로세스 관리, 시스템 호출, 인터럽트 처리, 동기화, 메모리 관리, 파일 시스템, 이식성에 대한 내용 뿐 아니라, 최신 2.6 커널의 흥미로운 부분인 CFS 스케줄러, 커널 선점, 블럭 입출력 계층, 입출력 스케줄러 등의 내용을 상세히 다룬다.

이 책은... 더보기

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트 적립은 작성 후 다음 날 혹은 해당 도서 배송 출발 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서번역서

안내

이 분야의 베스트

더보기+

이 분야의 신간

더보기+

바로가기

  • 우측 확장형 배너 2

최근 본 상품