HOME > 상세정보

상세정보

리눅스 커널의 이해

리눅스 커널의 이해 (137회 대출)

자료유형
단행본
개인저자
Bovet, Daniel Pierre Cesati, Marco 이호, 역 심마로, 역
서명 / 저자사항
리눅스 커널의 이해 / 다니엘 보베이 ; 마르코 체사티 [공저] ; 이호 ; 심마로 [공역].
발행사항
서울 :   한빛 ,   2001.  
형태사항
859 p. : 삽도 ; 27 cm.
원표제
Understanding the LINUX kernel
ISBN
8979141599
일반주기
부록으로 "시스템 시작", "모듈", "소스 코드 구조" 수록  
색인 : p. [821]-859  
서지주기
참고문헌 : p. [817]-820
일반주제명
Operating systems(Computers)
000 01054namccc200337 k 4500
001 000000750910
005 20100807073904
007 ta
008 020114s2001 ulka b 001a kor
020 ▼a 8979141599 ▼g 13560 : ▼c \35000
035 ▼a KRIC08092517
040 ▼a 241002 ▼c 241002 ▼d 211009
041 1 ▼a kor ▼h eng
049 1 ▼l 121058272 ▼f 과학 ▼l 121058273 ▼f 과학 ▼l 111209169 ▼f 개가
082 0 4 ▼a 005.432 ▼2 21
090 ▼a 005.432 ▼b 2001f
100 1 ▼a Bovet, Daniel Pierre
245 1 0 ▼a 리눅스 커널의 이해 / ▼d 다니엘 보베이 ; ▼e 마르코 체사티 [공저] ; ▼e 이호 ; ▼e 심마로 [공역].
246 1 9 ▼a Understanding the LINUX kernel
260 ▼a 서울 : ▼b 한빛 , ▼c 2001.
300 ▼a 859 p. : ▼b 삽도 ; ▼c 27 cm.
500 ▼a 부록으로 "시스템 시작", "모듈", "소스 코드 구조" 수록
500 ▼a 색인 : p. [821]-859
504 ▼a 참고문헌 : p. [817]-820
650 0 ▼a Operating systems(Computers)
700 1 ▼a Cesati, Marco
700 1 ▼a 이호, ▼e
700 1 ▼a 심마로, ▼e
900 1 1 ▼a 보베이, 다니엘
900 1 1 ▼a 체사티, 마르코

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.432 2001f 등록번호 111209169 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.432 2001f 등록번호 121058273 도서상태 분실(장서관리) 반납예정일 예약 서비스 M
No. 3 소장처 과학도서관/보존서고5(동양서)/ 청구기호 005.432 2001f 등록번호 121058272 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 4 소장처 세종학술정보원/과학기술실/ 청구기호 005.432 2001f 등록번호 151109403 도서상태 대출가능 반납예정일 예약 서비스
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.432 2001f 등록번호 111209169 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.432 2001f 등록번호 121058273 도서상태 분실(장서관리) 반납예정일 예약 서비스 M
No. 2 소장처 과학도서관/보존서고5(동양서)/ 청구기호 005.432 2001f 등록번호 121058272 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실/ 청구기호 005.432 2001f 등록번호 151109403 도서상태 대출가능 반납예정일 예약 서비스

컨텐츠정보

책소개

리눅스가 왜 그렇게 효율적인지, 조금은 별난 프로그램을 사용하려고 할 때 리눅스 성능이 제대로 발휘되는지 궁금한 독자들, 커널 소스 코드를 들여다보려 한 독자들을 위한 책. 이 책은 리눅스 커널을 탐구하는 데 필요한 통찰력을 제공한다.

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

이 책에서는 각 주제를 설명할 때 그것이 왜 중요한지 설명하고, 커널 동작을 유닉스 프로그래머와 사용자에게 익숙한 시스템 콜이나 유틸리티와 연관지어 이야기한다. 커널의 근본 원리가 쉽게 변하지 않는 점을 감안할 때 이 책은 다른 운영체제의 작동 원리나 구조를 파악하는 데도 도움이 될 것이다.

아래와 같은 내용을 담았다.

- 파일 버퍼링과 프로세스 스와핑, DMA를 비롯한 메모리 관리
- 가상 파일시스템과 Ext2 파일시스템
- 프로세스 생성과 스케줄링
- 시그널과 인터럽트, 장치 드라이버의 기본 인터페이스
- 타이밍
- 커널 내 동기화
- 프로세스간 통신(IPC)
- 프로그램 실행

원서 :


정보제공 : Aladin

저자소개

다니엘 보베이(지은이)

UCLA에서 컴퓨터 과학 박사 학위를 취득했으며, 25년이 넘도록 오픈 소스에 관심을 가져왔다. 2006년 현재 로마 대학교에서 전임 교수로 재직 중이다.

마르코 체사티(지은이)

로마대학교에서 컴퓨터과학 박사학위와 수학학위를 취득했으며, 현재 동대학 공과대학원 컴퓨터과학과 연구 조교로 재직 중이다.

이호(옮긴이)

대학교 동아리에서 컴퓨터 프로그래밍을 배워 한국에서 여러 소프트웨어 벤처에서 경력을 쌓았다. 이후 미국에 건너가 퀄컴, 엔비디아 등에서 리눅스 커널과 시스템 프로그래밍 관련 일을 했으며, 현재 뉴욕주에 있는 헤지펀드에서 소프트웨어 엔지니어로 일하고 있다. 역서로는 『리눅스 커널의 이해』(한빛미디어, 2003)가 있다.

심마로(옮긴이)

<리눅스 커널의 이해>

정보제공 : Aladin

목차


목차
역자 서문 = 5
감수자 서문 = 7
차례 = 9
서문 = 25
1장. 소개
 리눅스와 다른 유닉스 계열 커널 비교 = 36
 하드웨어 의존성 = 42
 리눅스 버전 = 43
 운영체제의 기초 개념 = 44
  멀티유저 시스템 = 45
  사용자와 그룹 = 46
  프로세스 = 47
  커널 구조 = 49
 유닉스 파일시스템 개요 = 50
  파일 = 50
  하드 링크와 소프트 링크 = 52
  파일 유형 = 53
  파일 디스크립터와 아이노드 = 53
  접근 권한과 파일 모드 = 54
  파일을 다루는 시스템 콜 = 55
 유닉스 커널 개요 = 59
  프로세스와 커널 모델 = 59
  프로세스 구현 = 62
  재진입 가능한 커널 = 62
  프로세스 주소 공간 = 65
  동기화와 임계 영역 = 65
  시그널과 프로세스간 통신 = 69
  프로세스 관리 = 71
  메모리 관리 = 73
  장치 드라이버 = 78
2장. 메모리 주소 지정
 메모리 주소 = 82
 하드웨어 세그먼테이션 = 83
  세그먼테이션 레지스터 = 83
  세그먼트 디스크립터 = 84
  세그먼트 셀렉터 = 87
  세그먼테이션 유닛 = 88
 리눅스 세그먼테이션 = 89
 하드웨어 페이징 = 94
  정규 페이징 = 95
  확장 페이징 = 98
  하드웨어 보호 정책 = 99
  페이징 예제 = 100
  3단계 페이징 = 101
  하드웨어 캐시 = 102
  변환 참조 버퍼 = 106
 리눅스 페이징 = 106
  선형 주소 필드 = 108
  페이지 테이블 다루기 = 109
  예약된 페이지 프레임 = 115
  프로세스 페이지 테이블 = 117
  커널 페이지 테이블 = 118
 리눅스 2.4 예상 = 120
3장. 프로세스
 프로세스 디스크립터 = 124
  프로세스 상태 = 125
  프로세스 구별 = 126
  프로세스간 친족 관계 = 135
  대기큐 = 136
  프로세스 사용 제한 = 141
 프로세스 전환 = 143
  하드웨어 컨텍스트 = 144
  태스크 상태 세그먼트 = 145
  switch_to 매크로 = 147
  부동 소수점 레지스터 저장 = 152
 프로세스 생성 = 156
  clone(), fork(), vfork() 시스템 콜 = 156
  커널 스레드 = 162
 프로세스 끝내기 = 165
  프로세스 종료 = 166
  프로세스 제거 = 167
 리눅스 2.4 예상 = 168
4장. 인터럽트와 예외
 인터럽트 시그널 역할 = 170
 인터럽트와 예외 = 172
  인터럽트와 예외 벡터 = 174
  IRQ와 인터럽트 = 174
  예외 = 176
  인터럽트 디스크립터 테이블 = 180
  하드웨어적인 인터럽트와 예외 처리 = 181
 예외 핸들러와 인터럽트 핸들러의 중첩 실행 = 184
 인터럽트 디스크립터 테이블 초기화 = 185
  인터럽트와 트랩, 시스템 게이트 = 186
  임시적인 IDT 초기화 = 187
 예외 핸들링 = 189
  예외 핸들러를 위해 레지스터 저장 = 190
  예외 핸들러에서 복귀 = 192
  예외 핸들러 호출 = 192
 인터럽트 핸들링 = 193
  인터럽트 벡터 = 195
  IRQ 자료 구조 = 197
  인터럽트 핸들러를 위한 레지스터 저장 = 202
  do_IRQ() 함수 = 203
  인터럽트 서비스 루틴 = 205
  하반부 = 206
  IRQ 선의 동적 핸들링 = 210
 인터럽트와 예외에서 복귀 = 212
  ret_from_intr() 함수 = 213
  ret_from_sys_call() 함수 = 216
  ret_from_exception() 함수 = 217
 리눅스 2.4 예상 = 217
5장. 타이밍 측정
 하드웨어 시계 = 220
  실시간 시계 = 220
  타임스탬프 카운터 = 221
  프로그래밍 가능한 구간 타이머 = 222
 타이머 인터럽트 핸들러 = 224
 PIT의 인터럽트 서비스 루틴 = 225
 TIMER_BH 하반부 함수 = 227
  날짜와 시간 갱신 = 227
  자원 사용 통계 갱신 = 228
  CPU의 시분할 = 229
  타이머 역할 = 230
  정적 타이머 = 231
  동적 타이머 = 233
  동적 타이머 응용 = 239
 타이밍 측정과 관련한 시스템 콜 = 240
  time(), ftime(), gettimeofday() 시스템 콜 = 240
  adjtimex() 시스템 콜 = 242
  setitimer()와 alarm() 시스템 콜 = 243
 리눅스 2.4 예상 = 244
6장. 메모리 관리
 페이지 프레임 관리 = 246
  페이지 프레임 요구와 해제 = 251
  버디 시스템 알고리즘 = 253
 메모리 영역 관리 = 261
  슬랩 할당자 = 262
  캐시 디스크립터 = 265
  슬랩 디스크립터 = 266
  일반 캐시와 특수 캐시 = 268
  버디 시스템의 슬랩 할당자 인터페이스 = 269
  캐시에 슬랩 할당 = 270
  캐시에서 슬랩 제거 = 272
  객체 디스크립터 = 273
  메모리에서 객체 정렬 = 276
  슬랩 컬러링 = 277
  캐시에 객체 할당 = 279
  캐시에서 객체 해제 = 281
  일반 목적 객체 = 283
 불연속적인 메모리 영역 관리 = 284
  불연속적인 메모리 영역의 선형 주소 = 285
  불연속적인 메모리 영역 디스크립터 = 286
  불연속적인 메모리 영역 할당 = 287
  불연속적인 메모리 영역 해제 = 290
 리눅스 2.4 예상 = 291
7장. 프로세스 주소 공간
 프로세스 주소 공간 = 294
 메모리 디스크립터 = 296
 메모리 영역 = 298
  메모리 영역 자료 구조 = 300
  메모리 영역 접근 권한 = 303
  메모리 영역 다루기 = 306
  선형 주소 구간 할당 = 311
  선형 주소 구간 해제 = 315
 페이지 폴트 예외 핸들러 = 319
  주소 공간 밖 잘못된 주소 처리 = 324
  주소 공간 내 잘못된 주소 처리 = 325
  요구 페이징 = 327
  Copy On Write = 330
 프로세스 주소 공간 생성과 삭제 = 334
  프로세스 주소 공간 생성 = 334
  프로세스 주소 공간 삭제 = 336
 힙 관리 = 337
 리눅스 2.4 예상 = 339
8장. 시스템 콜
 포직스 API와 시스템 콜 = 342
 시스템 콜 핸들러 서비스 루틴 = 343
  시스템 콜 초기화 = 345
  system_call() 함수 = 346
  매개변수 전달 = 347
  매개변수 확인 = 349
  프로세스 주소 공간에 접근 = 351
  동적 주소 검사 : 수선 코드 = 354
 포장 함수 = 358
 리눅스 2.4 예상 = 260
9장. 시그널
 시그널의 역할 = 361
  시그널을 받았을 때 수행하는 동작 = 366
  시그널과 관련한 자료 구조 = 367
  시그널 자료 구조에 대한 작업 = 369
 시그널 보내기 = 372
  send_sig_info()와 send_sig() 함수 = 372
  force_sig_info()와 force_sig() 함수 = 375
 시그널 받기 = 376
  시그널 무시하기 = 377
  시그널의 기본 동작 수행 = 378
  시그널 잡기 = 379
  시스템 콜 재실행 = 385
 실시간 시그널 = 389
 시그널 처리와 관련한 시스템 콜 = 390
  kill() 시스템 콜 = 390
  시그널 동작 바꾸기 = 391
  대기 중인 블록된 시그널 검사 = 392
  블록된 시그널 집합 수정 = 393
  프로세스 보류 = 394
  실시간 시그널을 위한 시스템 콜 = 395
 리눅스 2.4 예상 = 396
10장. 프로세스 스케줄링
 스케줄링 정책 = 398
  프로세스 선점 = 400
  퀀덤의 지속 시간은 어느 정도여야 하는가? = 401
 스케줄링 알고리즘 = 403
  스케줄러가 사용하는 자료 구조 = 404
  schedule() 함수 = 406
  실행 가능한 프로세스가 얼마나 우수한가? = 411
  리눅스/SMP 스케줄러 = 412
  스케줄링 알고리즘 성능 = 416
 스케줄링과 관련한 시스템 콜 = 418
  nice() 시스템 콜 = 419
  getpriority()와 setpriority() 시스템 콜 = 421
  실시간 프로세스와 관련한 시스템 콜 = 422
 리눅스 2.4 예상 = 424
11장. 커널 동기화
 커널 제어 경로 = 428
 동기화 기법 = 429
  커널 모드 내 프로세스 선점 금지 = 430
  원자적인 연산 = 431
  인터럽트 금지 = 432
  커널 세마포어를 이용한 락킹 = 435
  세마포어에서 데드락 피하기 = 442
 SMP 구조 = 442
  공통 메모리 = 443
  하드웨어적인 캐시 동기화 지원 = 444
  SMP 원자적인 연산 = 445
  분산 인터럽트 처리 = 446
 리눅스/SMP 커널 = 448
  주요 SMP 자료 구조 = 449
  스핀락 = 451
  읽기/쓰기 스핀락 = 453
  리눅스/SMP 인터럽트 처리 = 456
  리눅스/SMP 하반부 처리 = 459
  전역 커널 락과 지역 커널 락 = 460
  프로세서간 인터럽트 = 463
 리눅스 2.4 예상 = 465
12장. 가상 파일시스템
 VFS의 역할 = 468
  공통 파일 모델 = 470
  VFS가 처리하는 시스템 콜 = 473
 VFS 자료 구조 = 474
  수퍼블록 객체 = 475
  아이노드 객체 = 478
  파일 객체 = 483
  디렉토리 파일 객체에 대한 특수 처리 = 487
  디엔트리 객체 = 488
  디엔트리 캐시 = 490
  프로세스와 관련한 파일 = 492
 파일시스템 마운트하기 = 495
  파일시스템 등록 = 495
  루트 파일시스템 마운트하기 = 496
  일반 파일시스템 마운트하기 = 497
  파일시스템 언마운트하기 = 501
 경로명 탐색 = 504
 VFS 시스템 콜 구현 = 510
  open() 시스템 콜 = 510
  read()와 write() 시스템 콜 = 513
  close() 시스템 콜 = 514
 파일 락킹 = 515
  리눅스 파일 락킹 = 516
  파일 락킹 자료 구조 = 517
  FL_LOCK 락 = 519
  FL_POSIX 락 = 520
 리눅스 2.4 예상 = 522
13장. 입출력 장치 관리
 입출력 아키텍처 = 524
  입출력 포트 = 525
  입출력 인터페이스 = 526
  장치 제어기 = 529
  DMA = 530
 파일을 입출력 장치와 연관시키기 = 531
  장치 파일 = 531
  장치 파일의 VFS 처리 = 534
 장치 드라이버 = 537
  커널 지원 수준 = 537
  입출력 연산 모니터링 = 539
  입출력 포트 접근 = 541
  IRQ 요청 = 542
  DMA 가동 = 543
  장치 제어기의 지역 메모리 = 545
 문자 장치 처리 = 548
 블록 장치 처리 = 550
  섹터, 블록, 버퍼 = 551
  버퍼 입출력 연산 개요 = 552
  미리 읽기와 역할 = 554
  block_read()와 block_write() 함수 = 555
  bread()와 breada() 함수 = 558
  버퍼 헤드 = 558
  블록 장치 요청 = 560
  요청큐와 블록 장치 드라이버 디스크립터 = 564
  ll_rw_block() 함수 = 565
  저수준 요청 처리 = 569
 페이지 입출력 연산 = 572
  페이지 입출력 연산 시작 = 573
  페이지 입출력 연산 종료 = 576
 리눅스 2.4 예상 = 577
14장. 디스크 캐시
 버퍼 캐시 = 581
  버퍼 헤드 자료 구조 = 581
  getblk() 함수 = 588
  버퍼 사용 카운터 = 589
  버퍼 할당 = 590
  디스크에 더티 버퍼 기록하기 = 593
 페이지 캐시 = 600
  페이지 캐시 자료 구조 = 600
  페이지 캐시 처리 함수 = 603
  페이지 캐시 튜닝 = 604
 리눅스 2.4 예상 = 604
15장. 정규 파일 접근
 정규 파일 읽기와 쓰기 = 608
  정규 파일에서 읽기 = 609
  정규 파일 미리 읽기 = 611
  정규 파일에 쓰기 = 616
 메모리 매핑 = 619
  메모리 매핑 자료 구조 = 620
  메모리 영역과 관련한 연산 = 622
  메모리 매핑 생성 = 623
  메모리 매핑 제거 = 625
  메모리 매핑에 대한 요구 페이징 = 626
  더티 메모리 매핑 페이지를 디스크로 플러시하기 = 629
 리눅스 2.4 예상 = 631
16장. 스와핑 : 메모리 해제 방법
 스와핑이란 무엇인가? = 634
  스왑 아웃할 페이지 종류 = 636
  스왑 영역 내 페이지 분산 방법 = 636
  스왑 아웃될 페이지 선택 방법 = 636
  페이지 스왑 아웃을 수행할 시기 = 637
 스왑 영역 = 638
  스왑 영역 디스크립터 = 640
  스왑 아웃된 페이지 식별자 = 643
  스왑 영역의 활성화와 비활성화 = 645
  빈 페이지 슬롯 찾기 = 648
  페이지 슬롯의 할당과 해제 = 650
 스왑 캐시 = 652
 스왑 페이지 전송 = 656
  페이지 프레임과 페이스 슬롯의 락킹 = 657
  rw_swap_page() 함수 = 658
  read_swap_cache_async() 함수 = 661
  rw_swap_page_nocache() 함수 = 663
 페이지 스왑 아웃 = 664
  try_to_swap_out() 함수 = 666
  공유 메모리 매핑의 페이지 스왑 아웃 = 670
 페이지 스왑 인 = 672
 페이지 프레임 해제 = 675
  빈 메모리 감시하기 = 675
  페이지, 스왑, 버퍼 캐시에서 페이지 회수하기 = 676
  디엔트리와 아이노드 캐시에서 페이지 회수하기 = 679
  try_to_free_pages() 함수 = 680
  do_try_to_free_pages() 함수 = 681
  kswapd 커널 스레드 = 682
 리눅스 2.4 예상 = 684
17장. Ext2 파일시스템
 일반적인 특성 = 686
 디스크 자료 구조 = 688
  수퍼블록 = 690
  그룹 디스크립터와 비트맵 = 693
  아이노드 테이블 = 693
  여러 파일 유형이 디스크 블록을 사용하는 방법 = 696
 메모리 자료 구조 = 698
  ext2_sb_info와 ext2_inode_info 구조 = 700
  비트맵 캐시 = 701
 파일시스템 생성 = 704
 Ext2 메소드 = 706
  Ext2 수퍼블록 연산 = 706
  Ext2 아이노드 연산 = 706
  Ext2 파일 연산 = 708
 디스크 공간 관리 = 708
  아이노드 생성 = 709
  아이노드 제거 = 711
  데이터 블록 주소 지정 = 712
  파일 구멍 = 715
  데이터 블록 할당 = 716
  데이터 블록 해제 = 718
 Ext2 정규 파일 읽기와 쓰기 = 719
 리눅스 2.4 예상 = 721
18장. 프로세스 통신
 파이프 = 724
  파이프 사용하기 = 725
  파이프에 자료 구조 = 728
  파이프 생성과 제거 = 729
  파이프에서 읽기 = 731
  파이프에 쓰기 = 733
 FIFO = 735
  FIFO 생성과 열기 = 736
  FIFO 읽기와 쓰기 = 738
 시스템 V IPC = 739
  IPC 자원 사용하기 = 739
  ipc() 시스템 콜 = 742
  IPC 세마포어 = 743
  IPC 메시지 = 749
  IPC 공유 메모리 = 752
 리눅스 2.4 예상 = 757
19장. 프로그램 실행
 실행 가능한 파일 = 760
  프로세스의 자격과 특질 = 761
  명령행 인자와 셸 환경 = 767
  라이브러리 = 768
  프로그램 세그먼트와 프로세스 메모리 영역 = 770
  실행 추적 = 774
 실행 가능한 형식 = 776
 실행 도메인 = 779
 exec 계열 함수 = 780
 리눅스 2.4 예상 = 787
부록 A. 시스템 시작 = 789
부록 B. 모듈 = 799
부록 C. 소스 코드 구조 = 811
참고 문헌 = 817
찾아보기 = 821


관련분야 신착자료

이창현 (2021)