Steady Seller

Windows Internals 제6판 Vol. 2 [마이크로소프트 윈도우 커널 공식 가이드]

  • 원서명Windows Internals, Part 2, 6th Editon (ISBN 9780735665873)
  • 지은이마크 러시노비치, 데이비드 솔로몬, 알렉스 이오네스쿠
  • 옮긴이안랩 기반기술팀
  • ISBN : 9788960775534
  • 45,000원
  • 2014년 04월 30일 펴냄
  • 페이퍼백 | 824쪽 | 188*250mm
  • 시리즈 : 윈도우 시스템 프로그래밍

책 소개

요약

윈도우 7에 새롭게 추가된 최신 기술인 서비스와 작업의 제어를 위해 일관적인 인터페이스를 제공해주는 통합 백그라운드 프로세스 관리자, 스레드 기반의 스케줄링의 여러 단점을 극복할 수 있는 프로세서 공유 기반의 스케줄링 기법, 애플리케이션이 자신의 내부 객체를 보호할 때 유저 모드와 커널 모드의 전환에 필요한 부담을 없애고 보호할 객체에 대한 접근 검사 결과를 캐시하게 함으로써 검사 속도를 높일 수 있는 AuthZ 윈도우 API에 대한 설명, 원격 시스템으로부터 파일을 캐시하여 로컬 머신이 네트워크에 접속하지 않고서도 파일을 접근할 수 있는 오프라인 파일 기능, 크래시 덤프 분석을 위한 다양한 노하우 등을 비롯한 수많은 새로운 최신 운영체제 기법을 소개한다.

Vol. 2에서는 Vol. 1에서 다루지 못한 핵심 서브시스템인 I/O, 스토리지, 메모리 관리, 캐시 관리자, 파일 시스템을 다루며, 프로세스의 시작과 종료를 살펴보고, 크래시 덤프 분석으로 마친다.

소개

마이크로소프트 윈도우 7과 윈도우 서버 2008 R2를 완벽히 반영한 필수 가이드

윈도우 아키텍처와 내부를 들여다보고 핵심 구성 요소가 이면에서 동작하는 방식을 보여준다. 국제적으로 명성이 높은 인터널즈 전문가 팀에 의해 윈도우 7과 윈도우 서버 2008 R2에 대해 완벽하게 업데이트가 이뤄져 2권의 책으로 나오게 됐다.

앞서 출판된 책들과 마찬가지로 비평적으로 내부자 관점에서 윈도우 동작 방식을 다뤘다. 실습을 통해 내부 동작을 경험하게 함으로써 애플리케이션 설계나 디버깅, 시스템 성능과 지원을 향상시키는 데 적용할 수 있는 지식을 얻을 수 있다.

Vol. 2에서 다루는 내용

■ 윈도우에서 하드 디스크 스토리지의 핵심 서브시스템 파악
■ 윈도우가 가상 메모리와 물리 메모리를 관리하는 방법
■ 캐시 관리자와 메모리 관리자의 협력 관계
■ 파일 시스템의 동작 방식과 파일 시스템 접근 시의 문제 해결
■ 시작과 종료 과정의 이면
■ 크래시 덤프 분석

이 책의 구성

처음으로 『Windows Internals』를 두 권으로 나눠 엮었다. 각 윈도우의 출시에 맞춰 책을 업데이트하는 작업에 시간이 많이 소요됐다.

Vol. 1은 핵심 개념을 정의하고 사용할 툴을 소개하며, 전반적인 시스템 아키텍처와 구성 요소를 설명하는 2개의 장으로 시작한다. 그 다음 2개의 장에 걸쳐 핵심 서브시스템과 관리 메커니즘을 다룬다. Vol. 1의 마무리는 운영체제의 핵심 구성 요소인 프로세스(스레드, 잡)와 보안, 네트워킹을 다룬다.

이번에 펴낸 Vol. 2는 Vol. 1에서 다루지 못한 또 다른 핵심 서브시스템인 I/O, 스토리지, 메모리 관리, 캐시 관리자, 파일 시스템을 다루며, 프로세스의 시작과 종료를 살펴보고, 마지막으로 크래시 덤프를 분석한다.

『Windows Internals』 책의 역사

이 책은 최초 헬렌 커스터(Helen Custer)가 집필한 (마이크로소프트 윈도우 NT 3.1 출시 이전에) 『Inside Windows NT』(마이크로소프트 출판, 1992)의 제6판에 해당한다. 『Inside Windows NT』는 윈도우 NT에 관해 첫 번째 출판된 책으로, 시스템 설계와 아키텍처에 관한 핵심적인 내부 사항을 제공했다. 『Inside Windows NT』의 제2판(마이크로소프트 출판, 1998)은 데이비드 솔로몬(David Solomon)이 집필했다. 제2판에서는 윈도우 NT 4.0을 추가적으로 다뤘으며, 기술적 심도를 매우 향상시켰다.

제3판인 『Inside Windows 2000』(마이크로소프트 출판, 2000)은 데이비드 솔로몬과 마크 러시노비치가 공동 집필했다. 제3판에서는 시작과 종료, 서비스 내부, 레지스트리 내부, 파일 시스템 드라이버, 네트워킹 같은 새로운 주제를 추가했다. 또한 윈도우 드라이버 모델(Windows Driver Model)과 플러그앤플레이, 전원 관리, 윈도우 관리 도구(Windows Management Instrumentation), 암호화, 잡 객체, 터미널 서비스 등에서의 커널 변경 사항 등을 다뤘다. 윈도우 XP와 윈도우 서버 2003 업데이트를 다룬 『Windows Internals 제4판』은 Windows Sysinternals(www.microsoft.com/technet/sysinternals)에서 구할 수 있는 주요 툴을 사용하고 크래시 덤프를 분석하는 등의 윈도우 내부 지식을 이용하는 IT 전문가에게 도움이 되는 사항에 초점을 맞춰 내용을 추가했다. 『Windows Internals 제5판』 (에이콘출판, 2010년)은 윈도우 비스타와 윈도우 서버 2008에서의 변경된 사항을 다뤘다. 이미지 로더와 유저 모드 디버깅 기능, 하이퍼V에 관한 내용이 새롭게 추가됐다.

제6판에서 변경된 내용

최신 6판에서는 윈도우 7과 윈도우 서버 2008 R2에서의 커널 변경 사항을 다뤘다. 변경된 툴을 반영하기 위해 실습 부분도 갱신했다.

저자/역자 소개

지은이의 말

『Windows Internals 제6판』은 마이크로소프트 윈도우 7과 윈도우 서버 2008 R2 운영체제의 핵심 구성 요소가 내부적으로 동작하는 방법을 이해하고자 하는 고급 컴퓨터 전문가(개발자와 시스템 관리자 모두)를 염두에 둔 책이다.

여기서 제시하는 지식으로 개발자는 윈도우 플랫폼 특정적인 애플리케이션을 작성할 때 설계 이면에 감춰진 철학을 좀 더 잘 이해할 수 있을 것이며, 난해한 문제를 디버깅하는 데 도움이 될 것이다. 운영체제가 이면에서 동작하는 방식을 이해하면 문제가 발생할 때 시스템의 성능 행위를 쉽게 이해할 수 있으며, 시스템 문제를 좀 더 쉽게 해결할 수 있기 때문에 시스템 관리자도 여기서 제시하는 정보 덕택에 도움을 받을 수 있다. 이 책을 숙지한다면 윈도우의 동작 방식과 그렇게 동작하는 이유를 좀 더 잘 이해하게 될 것이다.

지은이 소개

마크 러시노비치(Mark Russinovich)

마이크로소프트 사의 윈도우 애저(Azure) 그룹의 테크니컬 펠로우다. 『Windows Sysinternals Administrator’s Reference』(에이콘출판, 2013년)의 공저자이고, 마이크로소프트 테크넷(TechNet)에서 이용 가능한 Sysinternals 툴의 공동 개발자이자 『Windows Internals』 시리즈의 공저자이기도 한다.

데이비드 솔로몬(David Solomon)

『Windows Internals』의 공저자이며 전 세계에 걸쳐 수많은 개발자와 IT 전문가, 마이크로소프트 직원에게 윈도우 인터널 강의를 진행 중이다. 또한 마이크로소프트 컨퍼런스나 테크넷(TechNet), PDC의 고정 강사이기도 하다.

알렉스 이오네스쿠(Alex Ionescu)

CSA(chief software architecture)로서 로우레벨 시스템 소프트웨어와 커널 개발, 보안 교육, 리버스 엔지니어링 분야의 전문 컨설턴트이다. 데이비드 솔로몬과 함께 윈도우 내부 구조를 교육하며, 보안 관련 커뮤니티에서도 활동 중이다.

옮긴이의 말

1998년에 집필된 『Inside Windows NT』의 시리즈로서 윈도우 7과 윈도우 서버 2008 R2 운영체제의 핵심 내용을 다룬 『Windows Internals 제6판』이 출간됐다. 6판은 방대한 내용을 기술적으로 좀 더 심도 있게 다루기 위해 2권으로 나뉘어 출판됐다. 윈도우 비스타까지 다뤘던 이전의 5판에 비해 6판에서 새롭게 추가된 주요 내용은 다음과 같다.

시스템의 여러 구성 요소 간의 데이터를 안전하고도 빠르게 전송할 수 있는 기능인 고급 로컬 프로시저 호출에 대한 세부적인 동작 메커니즘, 서비스와 작업의 제어를 위해 일관적인 인터페이스를 제공해주는 통합 백그라운드 프로세스 관리자, 스레드 기반 스케줄링의 여러 단점을 극복할 수 있는 프로세서 공유 기반의 스케줄링 기법, 애플리케이션이 자신의 내부 객체를 보호할 때 유저 모드와 커널 모드의 전환에 필요한 부담을 없애고 보호할 객체에 대한 접근 검사 결과를 캐시하게 함으로써 검사 속도를 높일 수 있는 AuthZ 윈도우 API에 대한 설명, 원격 시스템으로부터 파일을 캐시해 로컬 머신이 네트워크에 접속하지 않고서도 파일에 접근할 수 있는 오프라인 파일 기능, WAN을 통한 네트워크 대역폭을 줄이게 해주는 브랜치캐시 기능 등이 새롭게 추가됐다.

지난 20여 년 가까이 윈도우 프로그래밍을 하면서 윈도우 운영체제를 체계적으로 이해하고 시스템 프로그램을 능숙하게 다룰 수 있는 개발자를 근래만큼 찾기 힘든 적도 참으로 드물었다. IT 산업의 흐름이 이렇게 바꾼 것이라고 생각하기에는 쉽게 납득이 가지 않는다. 이유가 무엇이든 또는 관심을 가지고 종사하는 분야가 무엇이든 간에 프로그래머로서 자긍심을 공유할 수 있는 많은 분을 만나기를 기대해본다.

대표 역자 김점갑

옮긴이 소개

안랩 기반기술팀

파일 시스템과 네트워크, 가상화, 매체 제어, 게임 보안 등의 여러 분야에 관련된 윈도우 보안 시스템 프로그램과 커널 프로그램을 개발하며, 보안 이슈에 관련된 선행적인 기술 연구와 기반 기술 개발을 수행하는 일에 애정을 갖고 열정적으로 함께 일하는 팀이다. 이 책의 번역에는 김성현 수석, 강경완, 박희안 책임, 홍성진, 김병훈 선임, 서동필, 배은아 주임연구원, 최바울 연구원, 그리고 김점갑 수석이 참여했다.

목차

목차
  • 8장 I/O 시스템
  • I/O 시스템 컴포넌트
  • ____I/O 관리자
  • ____전형적인 I/O 처리
  • 디바이스 드라이버
  • ____디바이스 드라이버의 유형
  • ____드라이버의 구조
  • ____드라이버 객체와 디바이스 객체
  • ____장치 열기
  • I/O 처리
  • ____I/O의 유형
  • ____단일 계층 드라이버의 I/O 요청
  • ____계층 드라이버에 대한 I/O 요청
  • ____I/O 취소
  • ____I/O 완료 포트
  • ____I/O 우선순위화
  • ____컨테이너 통지
  • ____드라이버 베리파이어
  • 커널 모드 드라이버 프레임워크(KMDF)
  • ____KMDF 드라이버의 구조와 동작
  • ____KMDF 데이터 모델
  • ____KMDF I/O 모델
  • 유저 모드 드라이버 프레임워크(UMDF)
  • 플러그앤플레이(PnP) 관리자
  • ____플러그앤플레이 지원 레벨
  • ____플러그앤플레이를 위한 드라이버 지원
  • ____드라이버 로딩, 초기화, 설치
  • ____드라이버 설치
  • 전원 관리자
  • ____전원 관리자의 동작
  • ____드라이버의 전원 동작
  • ____드라이버와 애플리케이션의 장치 전원 제어
  • ____전원 가용성 요청
  • ____프로세서 전원 관리(PPM)
  • 정리

  • 9장 스토리지 관리
  • 스토리지 용어
  • 디스크 디바이스
  • ____회전식 자기 디스크
  • ____SSD
  • 디스크 드라이버
  • ____WinLoad
  • ____디스크 클래스와 포트, 미니포트 드라이버
  • ____디스크 디바이스 객체
  • ____파티션 관리자
  • 볼륨 관리
  • ____기본 디스크
  • ____동적 디스크
  • ____멀티파티션 볼륨 관리
  • ____볼륨 네임스페이스
  • ____볼륨 I/O 동작
  • ____가상 디스크 서비스
  • 가상 하드 디스크 지원
  • ____VHD 연결
  • ____중첩된 파일 시스템
  • 비트락커 드라이브 암호화
  • ____암호화 키
  • ____신뢰된 플랫폼 모듈
  • ____비트락커 부트 과정
  • ____비트락커 키 복구
  • ____전체 볼륨 암호화 드라이버
  • ____비트락커 관리
  • ____휴대용 비트락커
  • 볼륨 셰도우 복사본 서비스
  • ____셰도우 복사본
  • ____VSS 아키텍처
  • ____VSS 동작
  • ____윈도우에서의 활용
  • 정리

  • 10장 메모리 관리
  • 메모리 관리자 소개
  • ____메모리 관리자 컴포넌트
  • ____내부 동기화
  • ____메모리 사용량 측정
  • 메모리 관리자가 제공하는 서비스
  • ____큰 페이지와 작은 페이지
  • ____페이지 예약과 커밋
  • ____커밋 제한
  • ____메모리 락킹
  • ____할당 단위
  • ____공유 메모리와 맵 파일
  • ____메모리 보호
  • ____실행 방지 페이지 보호
  • ____Copy-on-Write
  • ____주소 윈도우 확장
  • 커널 모드 힙(시스템 메모리 풀)
  • ____풀 크기
  • ____풀 사용량 모니터링
  • ____룩 어사이드 리스트
  • 힙 관리자
  • ____힙의 종류
  • ____힙 관리자 구조
  • ____힙 동기화
  • ____저단편화 힙(LFH)
  • ____힙 보안 특징
  • ____힙 디버깅 특징
  • ____페이지힙
  • ____폴트 톨러런트 힙
  • 가상 주소 공간 배치
  • ____x86 주소 공간 배치
  • ____x86 시스템 주소 공간 배치
  • ____x86 세션 공간
  • ____시스템 페이지 테이블 엔트리
  • ____64비트 주소 공간 배치
  • ____64비트 가상 주소 제약
  • ____동적인 시스템 가상 주소 관리
  • ____시스템 가상 주소 공간 할당량
  • ____사용자 주소 공간 배치
  • 주소 변환
  • ____x86 가상 주소 변환
  • ____변환 룩 어사이드 버퍼
  • ____물리 주소 확장(PAE)
  • ____x64 가상 주소 변환
  • ____IA64 가상 주소 변환
  • 페이지 폴트 핸들링
  • ____유효하지 않은 PTE
  • ____프로토타입 PTE
  • ____인 페이징 IO
  • ____페이지 폴트 충돌
  • ____클러스터 페이지 폴트
  • ____페이지 파일
  • ____커밋의 양과 시스템 커밋 제한
  • ____커밋의 양과 페이지 파일 크기
  • 스택
  • ____유저 스택
  • ____커널 스택
  • ____DPC 스택
  • 가상 주소 디스크립터
  • ____프로세스 VAD
  • ____VAD 회전
  • NUMA
  • 섹션 객체
  • 드라이버 베리파이어
  • 페이지 프레임 번호 데이터베이스
  • ____페이지 리스트 다이내믹스
  • ____페이지 우선순위
  • ____변경 페이지 기록자
  • ____PFN 데이터 구조
  • 물리 메모리 제한
  • ____윈도우 클라이언트 메모리 제한
  • 워킹셋
  • ____요구 페이징
  • ____논리적 프리패처
  • ____배치 정책
  • ____워킹셋 관리
  • ____밸런스 셋 관리자와 스와퍼
  • ____시스템 워킹셋
  • ____메모리 통지 이벤트
  • 선행적인 메모리 관리(슈퍼패치)
  • ____컴포넌트
  • ____트레이싱과 로깅
  • ____시나리오
  • ____페이지 우선순위와 리밸런싱
  • ____견고한 성능
  • ____레디부스트
  • ____레디드라이브
  • ____통합된 캐싱
  • ____프로세스 리플렉션
  • 정리

  • 11장 캐시 관리자
  • 캐시 관리자의 주요 특징
  • ____단일, 중앙 집중형 시스템 캐시
  • ____메모리 관리자
  • ____캐시 일관성
  • ____가상 블록 캐싱
  • ____스트림 기반 캐싱
  • ____복구 가능 파일 시스템 지원
  • 캐시의 가상 메모리 관리
  • 캐시 크기
  • ____캐시 가상 크기
  • ____캐시 워킹셋 크기
  • ____물리적인 캐시 크기
  • 캐시 데이터 구조
  • ____시스템 전역 캐시 데이터 구조
  • ____파일 단위 캐시 데이터 구조체
  • 파일 시스템 인터페이스
  • ____캐시로 복사/캐시로부터의 복사
  • ____매핑과 고정 인터페이스를 통한 캐싱
  • ____직접 메모리 액세스 인터페이스를 이용한 캐싱
  • 패스트 I/O
  • 미리 읽기와 이면 쓰기
  • ____지능형 미리 읽기
  • ____재기록 캐싱과 지연 쓰기
  • ____쓰기 조절
  • ____시스템 스레드
  • 정리

  • 12장 파일 시스템
  • 윈도우 파일 시스템 포맷
  • ____CDFS
  • ____UDF
  • ____FAT12와 FAT16, FAT32
  • ____exFAT
  • ____NTFS
  • 파일 시스템 드라이버 아키텍처
  • ____로컬 FSD
  • ____원격 FSD
  • ____파일 시스템 동작
  • ____파일 시스템 필터 드라이버
  • 파일 시스템 문제 해결
  • ____프로세스 모니터의 기본 모드와 고급 모드
  • ____프로세스 모니터를 이용한 문제 해결 기법
  • 공통 로그 파일 시스템
  • NTFS 설계 목표와 기능
  • ____하이엔드 파일 시스템 요구 사항
  • ____NTFS 고급 기능
  • NTFS 파일 시스템 드라이버
  • 디스크상의 NTFS 구조
  • ____볼륨
  • ____클러스터
  • ____마스터 파일 테이블
  • ____파일 레코드 번호
  • ____파일 레코드
  • ____파일명
  • ____상주 속성과 비상주 속성
  • ____데이터 압축과 희소 파일
  • ____변경 저널 파일
  • ____인덱싱
  • ____객체 ID
  • ____쿼터 추적
  • ____통합 보안
  • ____리파스 포인트
  • ____트랜잭션 지원
  • NTFS 복구 지원
  • ____설계
  • ____메타데이터 로깅
  • ____복구
  • ____NTFS 손상 클러스터 복구
  • ____자체 복구
  • 암호화 파일 시스템 보안
  • ____파일 최초 암호화
  • ____복호화 프로세스
  • ____암호화된 파일 백업
  • ____암호화된 파일 복사
  • 정리

  • 13장 시작과 종료
  • 부트 과정
  • ____BIOS 사전 부트
  • ____BIOS 부트 섹터와 Bootmgr
  • ____UEFI 부트 프로세스
  • ____iSCSI 부팅
  • ____커널 초기화와 익스큐티브 서브시스템
  • ____Smss, Csrss, Wininit
  • ____레디부트
  • ____자동 시작하는 이미지
  • 부팅 문제나 시작 문제 해결
  • ____마지막으로 성공한 구성
  • ____안전 모드
  • ____윈도우 복구 환경(WinRE)
  • ____일반적인 부트 문제 해결
  • 셧다운
  • 정리

  • 14장 크래시 덤프 분석
  • 윈도우 크래시의 이유
  • 블루 스크린
  • ____윈도우 크래시의 원인
  • 크래시 문제 해결
  • 크래시 덤프 파일
  • ____크래시 덤프 생성
  • 윈도우 에러 보고
  • 온라인 크래시 분석
  • 기본 크래시 덤프 분석
  • ____Notmyfault
  • ____기본 크래시 덤프 분석
  • ____심층 분석
  • 크래시 문제 해결 도구 사용
  • ____버퍼 오버런과 메모리 손상, 특수 풀
  • ____코드 덮어쓰기와 시스템 코드 쓰기 방지
  • 고급 크래시 덤프 분석
  • ____스택 파괴
  • ____행이나 응답 없는 시스템
  • ____크래시 덤프가 없을 때
  • 일반적인 스톱 코드 분석
  • ___0xD1: DRIVERIRQLNOTLESSOREQUAL
  • ___0x8E: KERNELMODEEXCEPTIONNOT_HANDLED
  • ___0x7F: UNEXPECTEDKERNELMODETRAP
  • ___0xC5: DRIVERCORRUPTED_EXPOOL
  • ____하드웨어 장애
  • 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안