logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

리눅스 커널의 이해

리눅스 커널의 이해

다니엘 보베이, 마르코 체사티 (지은이), 이호, 심마로 (옮긴이)
한빛미디어
35,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

리눅스 커널의 이해
eBook 미리보기

책 정보

· 제목 : 리눅스 커널의 이해 
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 리눅스/유닉스 프로그래밍
· ISBN : 9788979141597
· 쪽수 : 860쪽
· 출판일 : 2001-12-06

책 소개

이 책을 읽고 나면, 리눅스의 성능을 최고로 끌어올리는 조건이 무엇인지 이해할 수 있다. 또한 프로세스 스케줄링과 파일 접근 그리고 다양한 환경에서 메모리를 관리하는 동안 시스템 반응을 향상시켜 달라는 요구를 만족시킬 방법도 알 수 있다.

목차

1장. 소개
리눅스와 다른 유닉스 계열 커널 비교
하드웨어 의존성
리눅스 버전
운영체제의 기초 개념
멀티유저 시스템
사용자와 그룹
프로세스
커널 구조
유닉스 파일시스템 개요
파일
하드 링크와 소프트 링크
파일 유형
파일 디스크립터와 아이노드
접근 권한과 파일 모드
파일을 다루는 시스템 콜
유닉스 커널 개요
프로세스와 커널 모델
프로세스 구현
재진입 가능한 커널
프로세스 주소 공간
동기화와 임계 영역
시그널과 프로세스간 통신
프로세스 관리
메모리 관리
장치 드라이버

2장. 메모리 주소 지정
메모리 주소
하드웨어 세그먼테이션
세그먼테이션 레지스터
세그먼트 디스크립터
세그먼트 셀렉터
세그먼테이션 유닛
리눅스 세그먼테이션
하드웨어 페이징
정규 페이징
확장 페이징
하드웨어 보호 정책
페이징 예제
3단계 페이징
하드웨어 캐시
변환 참조 버퍼
리눅스 페이징
선형 주소 필드
페이지 테이블 다루기
예약된 페이지 프레임
프로세스 페이지 테이블
커널 페이지 테이블
리눅스 2.4 예상

3장. 프로세스
프로세스 디스크립터
프로세스 상태
프로세스 구별
프로세스간 친족 관계
대기큐
프로세스 사용 제한
프로세스 전환
하드웨어 컨텍스트
태스크 상태 세그먼트
switch_to 매크로
부동 소수점 레지스터 저장
프로세스 생성
clone(), fork(), vfork() 시스템 콜
커널 스레드
프로세스 끝내기
프로세스 종료
프로세스 제거
리눅스 2.4 예상

4장. 인터럽트와 예외
인터럽트 시그널 역할
인터럽트와 예외
인터럽트와 예외 벡터
IRQ와 인터럽트
예외
인터럽트 디스크립터 테이블
하드웨어적인 인터럽트와 예외 처리
예외 핸들러와 인터럽트 핸들러의 중첩 실행
인터럽트 디스크립터 테이블 초기화
인터럽트와 트랩, 시스템 게이트
임시적인 IDT 초기화
예외 핸들링
예외 핸들러를 위한 레지스터 저장
예외 핸들러에서 복귀
예외 핸들러 호출
인터럽트 핸들링
인터럽트 벡터
IRQ 자료 구조
인터럽트 핸들러를 위한 레지스터 저장
do_IRQ() 함수
인터럽트 서비스 루틴
하반부
IRQ 선의 동적 핸들링
인터럽트와 예외에서 복귀
ret_from_intr() 함수
ret_from_sys_call() 함수
ret_from_exception() 함수
리눅스 2.4 예상

5장. 타이밍 측정
하드웨어 시계
실시간 시계
타임스탬프 카운터
프로그래밍 가능한 구간 타이머
타이머 인터럽트 핸들러
PIT의 인터럽트 서비스 루틴
TIMER_BH 하반부 함수
날짜와 시간 갱신
자원 사용 통계 갱신
CPU 시분할
타이머 역할
정적 타이머
동적 타이머
동적 타이머 응용
타이밍 측정과 관련한 시스템 콜
time(), ftime(), gettimeofday() 시스템 콜
adjtimex() 시스템 콜
setitimer()와 alarm() 시스템 콜
리눅스 2.4 예상

6장. 메모리 관리
페이지 프레임 관리
페이지 프레임 요구와 해제
버디 시스템 알고리즘
메모리 영역 관리
슬랩 할당자
캐시 디스크립터
슬랩 디스크립터
일반 캐시와 특수 캐시
버디 시스템의 슬랩 할당자 인터페이스
캐시에 슬랩 할당
캐시에서 슬랩 제거
객체 디스크립터
메모리에서 객체 정렬
슬랩 컬러링
캐시에 객체 할당
캐시에서 객체 해제
일반 목0적 객체
불연속적0인 메모리 영역 관리
불연속적인 메모리 영역의 선형 주소
불연속적인 메모리 영역 디스크립터
불연속적인 메모리 영역 할당
불연속적0인 메모리 영역 해제
리눅스 20.4 예상

7장. 프로세스 주소 공간
프로세스 주소 공간
메모리 디스크립터
메모리 영역
메모리 영역 자료 구조
메모리 영역 접근 권한
메모리 영역 다루기
선형 주소 구간 할당
선형 주소 구간 해제
페이지 폴트 예외 핸들러
주소 공간 밖 잘못된 주소 처리
주소 공간 내 잘못된 주소 처리
요구 페이징
Copy On Write
프로세스 주소 공간 생성과 삭제
프로세스 주소 공간 생성
프로세스 주소 공간 삭제
힙 관리
리눅스 2.4 예상

8장. 시스템 콜
포직스 API와 시스템 콜
시스템 콜 핸들러와 서비스 루틴
시스템 콜 초기화
system_call() 함수
매개변수 전달
매개변수 확인
프로세스 주소 공간에 접근
동적 주소 검사: 수선 코드
포장 함수
리눅스 2.4 예상

9장. 시그널
시그널의 역할
시그널을 받았을 때 수행하는 동작
시그널과 관련한 자료 구조
시그널 자료구조에 대한 작업
시그널 보내기
send_sig_info()와 send_sig() 함수
force_sig_info()와 force_sig() 함수
시그널 받기
시그널 무시하기
시그널의 기본 동작 수행
시그널 잡기
시스템 콜 재실행
실시간 시그널
시그널 처리와 관련한 시스템 콜
kill() 시스템 콜
시그널 동작 바꾸기
대기 중인 블록된 시그널 검사
블록된 시그널 집합 수정
프로세스 보류
실시간 시그널을 위한 시스템 콜
리눅스 2.4 예상

10장. 프로세스 스케줄링
스케줄링 정책
프로세스 선점
퀀텀의 지속 시간은 어느 정도여야 하는가?
스케줄링 알고리즘
스케줄러가 사용하는 자료 구조
schedule() 함수
실행 가능한 프로세스가 얼마나 우수한가?
리눅스/SMP 스케줄러
스케줄링 알고리즘 성능
스케줄링과 관련한 시스템 콜
nice() 시스템 콜
getpriority()와 setpriority() 시스템 콜
실시간 프로세스와 관련한 시스템 콜
리눅스 2.4 예상

11장. 커널 동기화
커널 제어 경로
동기화 기법
커널 모드 내 프로세스 선점 금지
원자적인 연산
인터럽트 금지
커널 세마포어를 이용한 락킹
세마포어에서 데드락 피하기
SMP 구조
공통 메모리
하드웨어적인 캐시 동기화 지원
SMP 원자적인 연산
분산 인터럽트 처리
리눅스/SMP 커널
주요 SMP 자료 구조
스핀락
읽기/쓰기 스핀락
리눅스/SMP 인터럽트 처리
리눅스/SMP 하반부 처리
전역 커널 락과 지역 커널 락
프로세서간 인터럽트
리눅스 2.4 예상

12장. 가상 파일시스템
VFS의 역할
공통 파일 모델
VFS가 처리하는 시스템 콜
VFS 자료 구조
수퍼블록 객체
아이노드 객체
파일 객체
디렉토리 파일 객체에 대한 특수 처리
디엔트리 객체
디엔트리 캐시
프로세스와 관련한 파일
파일시스템 마운트하기
파일시스템 등록
루트 파일시스템 마운트하기
일반 파일시스템 마운트하기
파일시스템 언마운트하기
경로명 탐색
VFS 시스템 콜 구현
open() 시스템 콜
read()와 write() 시스템 콜
close() 시스템 콜
파일 락킹
리눅스 파일 락킹
파일 락킹 자료 구조
FL_LOCK 락
FL_POSIX 락
리눅스 2.4 예상

13장. 입출력 장치 관리
입출력 아키텍처
입출력 포트
입출력 인터페이스
장치 제어기
DMA
파일을 입출력 장치와 연관시키기
장치 파일
장치 파일의 VFS 처리
장치 드라이버
커널 지원 수준
입출력 연산 모니터링
입출력 포트 접근
IRQ 요청
DMA 가동
장치 제어기의 지역 메모리
문자 장치 처리
블록 장치 처리
섹터, 블록, 버퍼
버퍼 입출력 연산 개요
미리 읽기의 역할
block_read()와 block_write() 함수
bread()와 breada() 함수
버퍼 헤드
블록 장치 요청
요청큐와 블록 장치 드라이버 디스크립터
ll_rw_block() 함수
저수준 요청 처리
페이지 입출력 연산
페이지 입출력 연산 시작
페이지 입출력 연산 종료
리눅스 2.4 예상

14장. 디스크 캐시
버퍼 캐시
버퍼 헤드 자료 구조
getblk() 함수
버퍼 사용 카운터
버퍼 할당
디스크에 더티 버퍼 기록하기
페이지 캐시
페이지 캐시 자료 구조
페이지 캐시 처리 함수
페이지 캐시 튜닝
리눅스 2.4 예상

15장. 정규 파일 접근
정규 파일 읽기와 쓰기
정규 파일에서 읽기
정규 파일 미리 읽기
정규 파일에 쓰기
메모리 매핑
메모리 매핑 자료 구조
메모리 영역과 관련한 연산
메모리 매핑 생성
메모리 매핑 제거
메모리 매핑에 대한 요구 페이징
더티 메모리 매핑 페이지를 디스크로 플러시하기
리눅스 2.4 예상

16장. 스와핑: 메모리 해제 방법
스와핑이란 무엇인가?
스왑 아웃할 페이지 종류
스왑 영역 내 페이지 분산 방법
스왑 아웃될 페이지 선택 방법
페이지 스왑 아웃을 수행할 시기
스왑 영역
스왑 영역 디스크립터
스왑 아웃된 페이지 식별자
스왑 영역의 활성화와 비활성화
빈 페이지 슬롯 찾기
페이지 슬롯의 할당과 해제
스왑 캐시
스왑 페이지 전송
페이지 프레임과 페이스 슬롯의 락킹
rw_swap_page() 함수
read_swap_cache_async() 함수
rw_swap_page_nocache() 함수
페이지 스왑 아웃
try_to_swap_out() 함수
공유 메모리 매핑의 페이지 스왑 아웃
페이지 스왑 인
페이지 프레임 해제
빈 메모리 감시하기
페이지, 스왑, 버퍼 캐시에서 페이지 회수하기
디엔트리와 아이노드 캐시에서 페이지 회수하기
try_to_free_pages() 함수
do_try_to_free_pages() 함수
kswapd 커널 스레드
리눅스 2.4 예상

17장. Ext2 파일시스템
일반적인 특성
디스크 자료 구조
수퍼블록
그룹 디스크립터와 비트맵
아이노드 테이블
여러 파일 유형이 디스크 블록을 사용하는 방법
메모리 자료 구조
ext2_sb_info와 ext2_inode_info 구조
비트맵 캐시
파일시스템 생성
Ext2 메소드
Ext2 수퍼블록 연산
Ext2 아이노드 연산
Ext2 파일 연산
디스크 공간 관리
아이노드 생성
아이노드 제거
데이터 블록 주소 지정
파일 구멍
데이터 블록 할당
데이터 블록 해제
Ext2 정규 파일 읽기와 쓰기
리눅스 2.4 예상

18장. 프로세스 통신
파이프
파이프 사용하기
파이프에 자료 구조
파이프 생성과 제거
파이프에서 읽기
파이프에 쓰기
FIFO
FIFO 생성과 열기
FIFO 읽기와 쓰기
시스템 V IPC
IPC 자원 사용하기
ipc() 시스템 콜
IPC 세마포어
IPC 메시지
IPC 공유 메모리
리눅스 2.4 예상

19장. 프로그램 실행
실행 가능한 파일
프로세스의 자격과 특질
명령행 인자와 셸 환경
라이브러리
프로그램 세그먼트와 프로세스 메모리 영역
실행 추적
실행 가능한 형식
실행 도메인
exec 계열 함수
리눅스 2.4 예상

부록 A. 시스템 시작
부록 B. 모듈
부록 C. 소스 코드 구조
참고 문헌

찾아보기

저자소개

다니엘 보베이 (지은이)    정보 더보기
UCLA에서 컴퓨터 과학 박사 학위를 취득했으며, 25년이 넘도록 오픈 소스에 관심을 가져왔다. 2006년 현재 로마 대학교에서 전임 교수로 재직 중이다.
펼치기
이호 (지은이)    정보 더보기
대학교 동아리에서 컴퓨터 프로그래밍을 배워 한국에서 여러 소프트웨어 벤처에서 경력을 쌓았다. 이후 미국에 건너가 퀄컴, 엔비디아 등에서 리눅스 커널과 시스템 프로그래밍 관련 일을 했으며, 현재 뉴욕주에 있는 헤지펀드에서 소프트웨어 엔지니어로 일하고 있다. 역서로는 『리눅스 커널의 이해』(한빛미디어, 2003)가 있다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책