Top

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

  • 원서명Windows Internals, Part 1: Covering Windows Server 2008 R2 and Windows 7 (ISBN 9780735648739)
  • 지은이마크 러시노비치, 데이비드 솔로몬, 알렉스 이오네스쿠
  • 옮긴이안랩 기반기술팀
  • ISBN : 9788960773547
  • 45,000원
  • 2012년 10월 31일 펴냄
  • 페이퍼백 | 980쪽 | 188*250mm
  • 시리즈 : 윈도우 시스템 프로그래밍

책 소개

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


[ 소개 ]

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

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

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


[ 이 책에서 다루는 내용 ]

■ 객체 관리자, 동기화, Wow64, 하이퍼-V, 레지스트리 등의 핵심 시스템과 관리 메커니즘의 동작 방식을 이해한다.
■ 프로세스와 스레드, 잡(job) 이면의 데이터 구조체와 행위를 살펴본다.
■ 윈도우 보안 모델이 접근과 감사, 권한 부여 등을 관리하는 방식을 알아본다.
■ API와 브랜치캐시(BranchCache), 프로토콜, NDIS 드라이버, 계층적 서비스 등의 윈도우 네트워킹 스택을 처음부터 끝까지 살펴본다.
■ 커널 디버거와 성능 모니터, 기타 툴을 사용해 윈도우 내부를 조사한다.


[ 이 책의 구성 ]

처음으로 『Windows Internals』를 두 권으로 나눠 엮었다. 각 윈도우의 출시에 맞춰 책을 업데이트하는 작업에 시간이 많이 소요됐다. 책을 두 권으로 나눔으로써 Vol. 1을 좀 더 빨리 출판할 수 있었다.

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

2012년 가을에 출간 예정인 Vol. 2는 나머지 핵심 서브시스템(I/O, 스토리지, 메모리 관리, 캐시 관리자, 파일 시스템)을 다룬다. Vol. 2는 프로세스의 시작과 종료를 다루며, 크래시 덤프 분석 설명으로 마무리한다.


[ 『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판은 윈도우 비스타와 윈도우 서버 2008에서의 변경된 사항을 다뤘다. 이미지 로더와 유저 모드 디버깅 기능, 하이퍼V에 관한 내용이 새롭게 추가됐다.


[ 6판에서 변경된 내용 ]

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

저자/역자 소개

[ 저자 서문 ]

『Windows Internals』 6판은 마이크로소프트 윈도우 7과 윈도우 서버 2008 R2 운영체제의 핵심 구성 요소가 내부적으로 동작하는 방법을 이해하고자 하는 고급 컴퓨터 전문가(개발자와 시스템 관리자 모두)를 염두에 둔 책이다. 여기서 제시하는 지식으로 개발자는 윈도우 플랫폼 특정적인 애플리케이션을 작성할 때 설계 이면에 감춰진 철학을 좀 더 잘 이해할 수 있을 것이며, 난해한 문제를 디버깅하는 데 도움이 될 것이다. 운영체제가 이면에서 동작하는 방식을 이해하면 문제가 발생할 때 시스템의 성능 행위를 쉽게 이해할 수 있으며, 시스템 문제를 좀 더 쉽게 해결할 수 있기 때문에 시스템 관리자도 여기서 제시하는 정보 덕택에 도움을 받을 수 있다. 이 책을 숙지한다면 윈도우의 동작 방식과 그렇게 동작하는 이유를 좀 더 잘 이해하게 될 것이다.


[ 저자 소개 ]

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

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

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


[ 옮긴이의 말 ]

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

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

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


[ 옮긴이 소개 ]

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

목차

목차
  • 1장 개념과 도구
    • 윈도우 운영체제 버전
    • 기본 개념과 용어
      • 윈도우 API
      • 서비스, 함수, 루틴
      • 프로세스, 스레드, 잡
      • 가상 메모리
      • 커널 모드와 유저 모드
      • 터미널 서비스와 다중 세션
      • 객체와 핸들
      • 보안
      • 레지스트리
      • 유니코드
    • 윈도우 내부 들여다보기
      • 성능 모니터
      • 커널 디버깅
      • 윈도우 소프트웨어 개발 킷
      • 윈도우 드라이버 킷
      • Sysinternals 툴
    • 정리
  • 2장 시스템 아키텍처
    • 요구 사항과 설계 목표
    • 운영체제 모델
    • 아키텍처 개요
      • 이식성
      • 대칭형 멀티프로세싱
      • 확장성
      • 클라이언트와 서버 버전의 차이
      • 체크드 빌드
    • 핵심 시스템 컴포넌트
      • 환경 서브시스템과 서브시스템 DLL
      • Ntdll.dll
      • 익스큐티브
      • 커널
      • 하드웨어 추상화 계층
      • 디바이스 드라이버
      • 시스템 프로세스
    • 정리
  • 3장 시스템 메커니즘
    • 트랩 디스패칭
      • 인터럽트 디스패칭
      • 타이머 프로세싱
      • 예외 디스패칭
      • 시스템 서비스 디스패칭
    • 객체 관리자
      • 익스큐티브 객체
      • 객체 구조
    • 동기화
      • High-IRQL 동기화
      • Low_IRQL 동기화
    • 시스템 작업자 스레드
    • 윈도우 전역 플래그
    • 고급 로컬 프로시저 호출
      • 접속 모델
      • 메시지 모델
      • 비동기 동작
      • 뷰와 영역, 섹션
      • 속성
      • 블랍, 핸들, 자원
      • 보안
      • 성능
      • 디버깅과 추적
    • 커널 이벤트 트레이싱
    • Wow64
      • Wow64 프로세스 주소 공간 배치
      • 시스템 호출
      • 예외 전달
      • 유저 APC 디스패칭
      • 콘솔 지원
      • 사용자 콜백
      • 파일 시스템 리다이렉션
      • 레지스트리 리다이렉션
      • I/O 제어 요청
      • 16비트 인스톨러 애플리케이션
      • 프린팅
      • 제약 사항
    • 유저 모드 디버깅
      • 커널 지원
      • 네이티브 지원
      • 윈도우 서브시스템 지원
    • 이미지 로더
      • 이른 시점의 프로세스 초기화
      • DLL 이름 변환과 리다이렉션
      • 로드된 모듈의 데이터베이스
      • 임포트 파싱
      • 포스트 임포트 프로세스 초기화
      • 스위치백
      • API 셋
    • 하이퍼바이저(Hyper-V)
      • 파티션
      • 부모 파티션
      • 자식 파티션
      • 하드웨어 에뮬레이션과 지원
    • 커널 트랜잭션 관리자
    • 핫패치 지원
    • 커널 패치 보호
    • 코드 무결성
    • 정리
  • 4장 관리 메커니즘
    • 레지스트리
      • 레지스트리 보기와 변경
      • 레지스트리 사용
      • 레지스트리 데이터 유형
      • 레지스트리의 논리적 구조
      • 트랜잭션 레지스트리(TxR)
      • 레지스트리 행위 감시
      • 프로세스 모니터의 내부 구조
      • 레지스트리 내부
    • 서비스
      • 서비스 애플리케이션
      • 서비스 제어 관리자
      • 서비스 시작
      • 시작 에러
      • 마지막으로 성공한 구성으로 부팅
      • 서비스 실패
      • 서비스 셧다운
      • 공유 서비스 프로세스
      • 서비스 태그
    • 통합 백그라운드 프로세스 관리자
      • 초기화
      • UBPM API
      • 공급자 등록
      • 소비자 등록
      • 작업 호스트
      • 서비스 제어 프로그램
    • 윈도우 관리 도구
      • WMI 아키텍처
      • 공급자
      • CIM과 MOF 언어
      • 클래스 연관화
      • WMI 구현
      • WMI 보안
    • 윈도우 진단 인프라
      • WDI 조율
      • 진단 정책 서비스
      • 진단 기능
    • 정리
  • 5장 프로세스, 스레드, 잡
    • 프로세스 내부 구조
      • 데이터 구조체
    • 보호 프로세스
    • CreateProcess 흐름
      • 1단계: 매개 변수와 플래그의 유효성 검사와 변환
      • 2단계: 실행할 이미지 열기
      • 3단계: 윈도우 익스큐티브 프로세스 객체(PspAllocateProcess) 생성
      • 4단계: 초기 스레드와 스택 및 컨텍스트 생성
      • 5단계: 윈도우 서브시스템에 특화된 후반부 초기화
      • 6단계: 초기 스레드의 실행 시작
      • 7단계: 새 프로세스의 컨텍스트에서 프로세스 초기화 수행
    • 스레드 내부 구조
      • 데이터 구조체
      • 스레드의 탄생
    • 스레드 활동성 검사
      • 보호 프로세스 스레드의 제약
    • 작업자 팩토리(스레드 풀)
    • 스레드 스케줄링
      • 윈도우 스케줄링의 개요
      • 우선순위 수준
      • 스레드 상태
      • 디스패처 데이터베이스
      • 퀀텀
      • 우선순위 상승
      • 컨텍스트 전환
      • 스케줄링 시나리오
      • 유휴 스레드
      • 스레드 선택
      • 멀티프로세서 시스템
      • 멀티프로세서 시스템에서의 스레드 선정
      • 프로세서 선택
    • 프로세서 공유 기반 스케줄링
      • 분산된 공정한 공유 스케줄링
      • CPU 속도 제한
    • 동적 프로세서 추가와 교체
    • 잡 객체
      • 잡 제약
      • 잡 셋
    • 정리
  • 6장 보안
    • 보안 등급
      • 신뢰성 있는 컴퓨터 시스템 평가 지침(TCSEC)
      • 공용 평가 기준
    • 보안 시스템 구성 요소
    • 객체 보호
      • 접근 검사
      • 보안 식별자
      • 가상 서비스 계정
      • 보안 디스크립터와 접근 제어
    • AuthZ API
      • 조건부 ACE
    • 계정 권한과 특권
      • 계정 권한
      • 특권
      • 슈퍼 특권
    • 프로세스와 스레드의 접근 토큰
    • 보안 감사
      • 객체 접근 감사
      • 전역 감사 정책
      • 고급 감사 정책 설정
    • 로그온
      • Winlogon 초기화
      • 사용자 로그온 과정
      • 보장된 인증
      • 사용자 인증을 위한 생체 인식 프레임워크
    • 사용자 계정 컨트롤과 가상화
      • 파일 시스템과 레지스트리 가상화
      • 상승
    • 애플리케이션 인증(AppID)
    • AppLocker
    • 소프트웨어 제한 정책
    • 정리
  • 7장 네트워킹
    • 윈도우 네트워킹 아키텍처
      • OSI 참조 모델
      • 윈도우 네트워크 구성 요소
    • 네트워킹 API
      • 윈도우 소켓
      • 윈속 커널(WSK)
      • 프로시저 호출
      • 웹 액세스 API
      • 네임드 파이프와 메일슬롯
      • NetBIOS
      • 기타 네트워킹 API
    • 다중 리다이렉터 지원
      • 다중 공급자 라우터
      • 다중 UNC 공급자
      • 대리 공급자
      • 리다이렉터
      • 미니 리다이렉터
      • 서버 메시지 블록과 서브 리다이렉터
    • 분산 파일 시스템 네임스페이스
    • 분산 파일 시스템 복제
    • 오프라인 파일
      • 캐싱 모드
      • 고스트
      • 데이터 보안
      • 캐시 구조
    • 브랜치캐시
      • 캐싱 모드
      • 애플리케이션 탐색 최적화된 브랜치캐시: SMB 시퀀스
      • 애플리케이션 탐색 최적화된 브랜치캐시 : HTTP 시퀀스
    • 이름 변환
      • 도메인 이름 시스템
      • 피어 이름 변환 프로토콜
    • 위치와 토폴로지
      • 네트워크 위치 인식
      • 네트워크 연결 상태 표시기
      • 링크 계층 토폴로지 검색
    • 프로토콜 드라이버
      • 윈도우 필터링 플랫폼
    • NDIS 드라이버
      • NDIS 미니포트의 변형
      • 연결 지향형 NDIS
      • 원격 NDIS
      • QoS
    • 바인딩
    • 계층화된 네트워크 서비스
      • 원격 액세스
      • 액티브 디렉터리
      • 네트워크 로드 밸런싱
      • 네트워크 액세스 프로텍션
      • 다이렉트 액세스

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[ p.131 밑에서 2번째 행 ]

Vol 2. 7장 → 14장

2015-03-09

p308, 5행

고유한 파일 식별자를 지정하지 않거나 하지 못하는 상황에서 시스템이PE 형식의 바이너리 이름을 물리 파일로 변환하는 과정이다.

->

고유한 파일 식별자(절대 경로)를 지정하지 않거나 하지 못하는 상황에서 PE 형식의 바이너리 이름을 실제 파일 경로로 변환하는 과정이다.