이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 강력추천
리눅스 커널의 이해
개정3판
베스트
IT 모바일 top100 6주
가격
36,000
10 32,400
YES포인트?
1,800원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

책소개

목차

1장 소개
리눅스와 다른 유닉스 계열 커널 비교
하드웨어 의존성
리눅스 버전
운영체제의 기초 개념
유닉스 파일 시스템 개요
유닉스 커널의 개요

2장 메모리 주소 지정
메모리 주소
하드웨어 세그먼테이션
리눅스에서의 세그먼테이션
하드웨어 페이징
리눅스 페이징

3장 프로세스
프로세스와 경량 프로세스, 스레드
프로세스 디스크립터
프로세스 전환
프로세스 생성
프로세스 끝내기

4장 인터럽트와 예외
인터럽트 신호의 역할
인터럽트와 예외
예외 핸들러와 인터럽트 핸들러의 중첩 실행
인터럽트 디스크립터 테이블 초기화
예외 처리
인터럽트 처리
소프트 IRQ와 소작업
작업 큐
인터럽트와 예외에서 복귀

5장 커널 동기화
커널이 요청을 서비스하는 방법
동기화 원시 기법
커널 자료 구조로의 접근 동기화
경쟁 조건 방지의 예

6장 타이밍 측정
클록와 타이머 회로
리눅스 시간 관리 구조
시간과 날짜 갱신
시스템 통계 갱신
소프트웨어 타이머와 지연 함수
타이밍 측정 관련 시스템 콜

7장 프로세스 스케줄링
스케줄링 정책
스케줄링 알고리즘
스케줄러가 사용하는 자료 구조
스케줄러가 사용하는 함수
멀티프로세서 시스템에서 실행 큐 부하 조절
스케줄링 관련 시스템 콜

8장 메모리 관리
페이지 프레임 관리
CPU별 페이지 프레임 캐시
메모리 영역 관리
불연속적인 메모리 영역 관리

9장 프로세스 주소 공간
프로세스의 주소 공간
메모리 디스크립터
메모리 구역
페이지 폴트 예외 핸들러
프로세스 주소 공간의 생성과 제거
힙 관리

10장 시스템 콜
POSIX API와 시스템 콜
시스템 콜 핸들러와 서비스 루틴
시스템 콜로의 진입과 복귀
매개 변수 확인
커널 래퍼 루틴

11장 시그널
시그널의 역할
시그널 발생
시그널 배달
시그널 처리 관련 시스템 콜

12장 가상파일 시스템
가상 파일 시스템의 역할
VFS 자료 구조
파일 시스템 유형
파일 시스템 다루기
파일 시스템 마운트하기
경로명 탐색
VFS 시스템 콜 구현
파일 락킹

13장 입출력 아키텍처와 디바이스 드라이버
입출력 아키텍처
디바이스 드라이버 모델
장치 파일
디바이스 드라이버
문자 장치 드라이버

14장 블록장치 드라이버
블록 장치 다루기
일반 블록 계층
입출력 스케줄러
블록 장치 드라이버
블록 장치 파일 열기

15장 페이지 캐시
페이지 캐시
페이지 캐시에 블록 저장하기
디스크에 더티 페이지 쓰기
sync( ), fsync( ), fdatasync( ) 시스템 콜

16장 파일 접근
파일 읽기와 쓰기
메모리 매핑
직접 입출력 전송
비동기 입출력

17장 페이지 프레임 회수
페이지 프레임 회수 알고리즘
역 매핑
PFRA 구현
스와핑
스왑 캐시

18장 EXT2, EXT3 파일 시스템
Ext2의 일반적인 특징
Ext2 디스크 자료 구조
Ext2 메모리 자료 구조
Ext2 파일 시스템 생성
Ext2 메소드
Ext2 디스크 공간 관리
Ext3 파일 시스템

19장 프로세스 통신
파이프
FIFO
시스템 V IPC
POSIX 메시지 큐

20장 프로그램 실행
실행 파일
실행 파일 형식
실행 도메인
exec 계열 함수

부록 A 시스템 시작
부록 B 모듈

참고문헌
찾아보기

저자 소개

저자 : 다니엘 보베이(Daniel P. Bovet)
UCLA에서 컴퓨터 과학 박사 학위를 취득했으며, 지금은 로마 대학교에서 전임 교수로 재직 중이다. 25년이 넘도록 오픈 소스에 관심을 가져왔으며, 리누스 토발즈와 그를 따르는 많은 사람의 업적에 매료되어 지난 몇 년 간 리눅스의 신비를 풀어내려 노력하고 있다. 이런 작업 후에 자신이 알아낸 지식을 책으로 옮겼다.
저자 : 마르코 체사티(Marco Cesati)
로마 대학교에서 컴퓨터 과학 박사 학위와 수학 학위를 취득했으며, 동교 공과대학원 컴퓨터과학과 연구 조교로 재직 중이다. 또한 지난 3년 동안 학생들에게 재미있고, 색다른 방법으로 리눅스 커널을 바꾸는 방법을 가르쳐 왔다.
역자 : 박장수
admin@kernelman.com
리눅스가 처음 국내에 알려질 무렵인 1994년에 우연히 학원에서 유닉스 강좌를 듣다가 리눅스를 접하게 되었다. 이후 1995년에 리눅스 커널 버전 1.0 을 분석한 「리눅스 Hacker들을 위한 Unix 완전분석으로 가는 길」이라는 문서를 당시 PC 통신인 나우누리에 올리면서 프로그래머로 활동하기 시작했다. 2002년에는 커널 2.4를 대상으로 한 『리눅스 커널 분석 2.4(개정판)』(가메출판사)를 집필하여 서점에 진열하였다. 아직도 열정적으로 임베디드 리눅스 및 리눅스 커널 보안 관련 연구를 하고 있다.

관련 분류

품목정보

발행일
2006년 09월 26일
쪽수, 무게, 크기
864쪽 | 1696g | 188*254*40mm
ISBN13
9788979144321

줄거리

1장. 소개
이 장에서는 독자의 이해를 돕기 위해 유닉스 커널의 내부에는 무엇이 있으며, 어떻게 리눅스가 다른 유명한 유닉스 시스템과 경쟁할 수 있는지의 전반적인 모습을 제시한다.

2장. 메모리 주소 지정
모든 유닉스 커널의 핵심은 메모리 관리이다. 여기에서는 80x86 프로세서가 메모리에 있는 데이터를 가리키기 위해 가지고 있는 회로와 리눅스가 이를 활용하는 방법을 설명한다.

3장. 프로세스
리눅스가 제공하는 중요한 추상 개념인 프로세스를 소개한다. 각 프로세스를 특권이 없는 사용자 모드(Unprivileged User Mode)와 특권이 있는 커널 모드(Privileged Kernel Mode)에서 어떻게 실행하는지 설명한다.

4장. 인터럽트와 예외
사용자 모드와 커널 모드 사이의 전환을 일으키는 '인터럽트(Interrupt)'와 '예외(Exception)'라는 정착된 하드웨어 메커니즘을 설명한다.

5장. 커널 동기화
커널은 여러 장치 및 프로세서에서 나오는 인터럽트를 처리해야 하는 경우가 많이 있다. 커널이 이런 모든 요청을 중첩해서 실행할 수 있게 하려면 동기화 기법이 필요한데 이 장은 유니프로세서 시스템과 모두를 위한 동기화 기법을 논의한다.

6장. 타이머 측정
인터럽트들 중 하나는 리눅스가 경과한 시간을 다루는데 매우 중요하다. 이 장에서는 이를 자세히 설명한다.

7장. 프로세스 스케줄링
리눅스가 시스템에 있는 모든 동작 중인 프로세스를 차례로 실행하여 모든 프로세스가 자신의 일을 끝마칠 수 있게 하는 방법을 설명한다.

8장. 메모리 관리
시스템에 있는 가장 중요한 자원인(물론 프로세서를 제외하고) 사용 가능한 메모리를 다루는데 필요한 복잡한 기법을 설명한다. 이 자원을 리눅스 커널과 사용자 애플리케이션 모두에 할당해야 한다.

9장. 프로세스 주소 공간
커널이 메모리를 많이 사용하는 애플리케이션의 메모리 요청을 어떻게 처리하는지 보여준다.

10장. 시스템 콜
사용자 모드에서 실행중인 프로세스가 커널에 서비스를 요청하는 방법을 설명한다.

11장. 시그널
한 프로세스가 다른 프로세스에 동기화 시그널을 전송하는 방법을 설명한다.

12장. 가상 파일시스템
또 다른 중요한 주제로 리눅스에서 파일 시스템을 구현하는 방법을 알아볼 차례이다. 이 주제를 놓고 여러 장이 연속해서 다루는 데 먼저 이 장에서는 여러 가지 서로 다른 파일 시스템을 지원하는 일반적인 계층(레이어)을 소개한다.

13장. 입출력 아키텍처와 디바이스 드라이버
실제 장치에 대해 커널이 어떻게 연산을 수행하는지 살펴본다. 또한 인텔 80x86의 입출력 구조와 리눅스 디바이스 드라이버 모델을 소개한다.

14장. 블록 디바이스 드라이버
리눅스에는 하드웨어 장치에 도달할 수 있는 관문을 제공하는 특수한 파일이 있다. 여기에서는 이러한 특수 파일과 이에 대응하는 하드웨어의 디바이스 드라이버를 살펴본다.

15장. 페이지 캐시
디스크 접근 시간도 알고 넘어가야 할 중요한 주제 중 하나이다. 이 장에서는 RAM을 현명하게 사용하여 디스크의 접근 횟수를 줄이고, 그 결과 시스템 성능을 현저히 높이는 방법을 보여준다.

16장. 파일 접근
앞에서 다룬 내용을 바탕으로 사용자 애플리케이션이 일반 파일에 접근하는 방법을 설명한다.

17장. 페이지 프레임 회수
리눅스에서 항상 사용 가능한 충분한 메모리가 있도록 보장하는 기법을 설명한다. 이 장을 끝으로 리눅스의 메모리 관리에 관한 논의를 마친다.

18장. Ext2, Ext3 파일 시스템
파일을 다루는 마지막 장으로 가장 많이 사용하는 리눅스 파일 시스템인 Ext2와 최근에 이를 더욱 개선한 Ext3을 설명한다.

19장. 프로세스 통신
시그널 외에 사용자 모드 프로세스가 사용할 수 있는 통신 방법을 소개한다.

20장. 프로그램 실행
사용자 애플리케이션을 시작하는 방법을 설명한다.

부록 A. 시스템 시작
리눅스가 부팅하는 과정을 간단히 설명한다.

부록 B. 모듈
실행중인 커널을 동적으로 재구성하여 필요에 따라 기능을 추가하고 제거하는 방법을 설명한다.

관련 자료

리눅스 커널이란

-. 커널은 말 그대로 메모리에 상주하여 시스템 디바이스와 메모리, 프로세스를 관리하고, 입출력을 처리하는 등 운영체제의 핵심 역할을 수행하는 프로그램이다. 모든 운영체제에는 커널이 있고, 그 성능에 따라 운영체제 전체의 성능이 영향을 받는다. 리눅스 운영체제 또한 커널이 있다. 이 커널을 리눅스 커널이라고 한다.
리눅스 커널의 가장 큰 특징은 사용자 스스로가 커널을 만들 수 있다는 것이다. 리눅스의 다른 프로그램처럼 커널도 기본적으로 소스 형태으로 배포되며 배포판 패키지, 혹은 ftp나 BBS유저그룹을 통해 내려받을 수 있다.
다른 운영체제의 커널에 비해 오픈소스인 리눅스 커널은 유저에 의해서 더욱 빠르고 강한 커널로 발전하고 있다.

출판사 리뷰

커널 2.6 완벽 분석! 새로운 커널 세계의 문을 연다

리눅스가 어떤 원리로 동작하는지, 그리고 어떻게 여러 종류의 시스템에서 잘 동작하는지를 제대로 이해하기 위해서는 운영체제의 핵심, 즉 리눅스 커널에 깊숙히 들어가 볼 필요가 있다. 리눅스 커널은 CPU와 외부 세계 사이의 모든 상호작용을 처리하며, 어떤 프로그램이 프로세서의 시간을 어떤 순서로 사용할지 결정한다. 또한 한정된 메모리를 관리하여 수백 개의 프로세스가 시스템을 효율적으로 공유할 수 있도록 하며, 데이터 전송 순서를 관리하여 CPU보다 상대적으로 느린 하드디스크를 CPU가 필요 이상으로 기다리지 않도록 한다.

이 책은 커널에서 사용되는 주요 자료구조, 알고리즘, 프로그래밍 트릭으로 여러분을 안내하는 길잡이다. 저자들은 컴퓨터 안에서 실제로 작업이 어떻게 이루어지는지 알고 싶어하는 독자들에게 표면적인 특징들을 넘어서는 값진 식견을 제공한다. 또한 인텔 x86 아키텍처를 위한 주요 특징에 대해서도 설명하며 관련된 코드 세그먼트는 한 줄씩 자세히 설명한다. 그렇다고 단순히 코드의 기능만을 다루는 것은 아니다. 리눅스가 왜 그렇게 동작하는지 이해하기 위한 바탕이 되는 이론을 함께 다룬다.

이 책은 커널 버전 2.6을 다루고 있다. 버전 2.6에서 거의 대부분의 커널 서브시스템이 많이 변경되었는데, 메모리 관리와 블럭 장치 부분이 특히 많이 변경되었다.

『리눅스 커널의 이해』(개정3판)는 리눅스의 내부 동작을 이해할 수 있도록 해 줄 것이다. 이 책은 학문적인 내용을 넘어서 리눅스가 어떤 조건에서 가장 잘 동작하는지, 그리고 프로세스 스케줄링, 파일 접근, 메모리 관리 중에도 빠른 시스템 응답 시간을 어떻게 제공하는지를 알게 해 줄 것이다. 이 책은 여러분이 리눅스 시스템을 이해하는 것을 도와줄 것이다.

<주요내용>
- 메모리 관리 (파일 버퍼링, 프로세스 스와핑, DMA 등)
- 가상 파일시스템 계층, Ext2와 Ext3 파일시스템
- 프로세스 생성과 스케줄링
- 시그널, 인터럽트, 장치 드라이버의 핵심 인터페이스
- 타이밍
- 커널 내부 동기화
- 프로세스간 통신(IPC)
- 프로그램 실행

리뷰/한줄평1

리뷰

6.0 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.