Steady Seller

Windows Internals 7/e Vol.1 [마이크로소프트 윈도우 커널 공식 가이드]

  • 원서명Windows Internals, Part 1: System architecture, processes, threads, memory management, and more (7th Edition) (ISBN 9780735684188)
  • 지은이파벨 요시포비치(Pavel Yosifovich), 알렉스 이오네스쿠(Alex Inoescu), 마크 러시노비치(Mark Russinovich), 데이비드 솔로몬(David Solomon)
  • 옮긴이김점갑
  • ISBN : 9791161750941
  • 60,000원
  • 2018년 01월 19일 펴냄
  • 페이퍼백 | 1,232쪽 | 188*235mm
  • 시리즈 : 윈도우 시스템 프로그래밍

책 소개

요약

모바일 플랫폼을 포괄하는 마이크로소프트 윈도우 10과 윈도우 서버 2016 운영체제를 완벽하게 반영한 필수 가이드다. 핵심 구성 요소인 프로세스와 스레드, 메모리 관리를 다룬다. 그리고 더욱 관심이 높아지고 있는 보안 분야를 다루는 시스템 아키텍처의 내부 동작 방법을 이해할 수 있다. 고급 컴퓨터 개발자와 보안 연구가, 시스템 관리자를 위한 윈도우 운영체제의 설계 철학을 엿볼 수 있는 바이블이다.

이 책에서 다루는 내용

■ 프로세스와 스레드 같이 가장 중요한 개체와 윈도우 아키텍처의 이해
■ 프로세스의 자원 관리 방법과 프로세스 내에서 스레드가 스케줄되는 방법
■ 윈도우가 가상 메모리와 물리 메모리를 관리하는 방법
■ 윈도우 I/O 시스템, 디바이스 드라이버가 동작하는 방식, 디바이스 드라이버가 시스템과 연동하는 방법
■ 윈도우 보안 모델의 접근과 감사, 권한 부여 등을 관리하는 방법
■ 윈도우 10과 윈도우 서버 2016에서의 새로운 메커니즘

이 책의 대상 독자

이 책은 독자가 파워유저 수준의 윈도우 작업에 익숙하며, CPU 레지스터와 메모리, 프로세스, 스레드와 같은 운영체제 및 하드웨어 개념을 기본적으로 이해하고 있다고 가정한다. 함수와 포인터, C 프로그래밍 언어 구문에 대한 이해는 일부 절에서 유용하다.

이 책의 구성

제6판과 동일하게 2권으로 나뉘어 있으며, 이 책이 첫 번째 권이다.
1장, '개념과 툴'에서는 윈도우 내부 개념에 대한 일반적인 소개를 하고, 책 전반에 걸쳐 사용되는 주요 툴을 소개한다. 책의 나머지 부분에 필요한 배경 지식을 제공하기 때문에 1장을 먼저 읽는 것이 중요하다.
2,장, '시스템 아키텍처'에서는 윈도우를 구성하는 아키텍처와 주요 구성 요소를 보여주고, 이들을 심도 있게 알아본다. 이들 개념 중 일부는 후속 장에서 좀 더 세부적으로 다룬다.
3장, '프로세스와 잡'에서는 윈도우에서 프로세스가 구현되는 방법과 이를 처리하는 다양한 방법을 자세히 설명한다. 또한 잡은 프로세스 집합을 제어하고 윈도우 컨테이너 지원을 활성화하는 수단임을 설명한다.
4장, '스레드'에서는 윈도우에서 스레드를 관리하고 스케줄하며 조작하는 방법을 세부적으로 설명한다.
5장, '메모리 관리'에서는 메모리 관리자가 물리적 메모리와 가상 메모리를 사용하는 방법과 프로세스와 드라이버가 비슷하게 메모리를 조작하고 사용할 수 있는 다양한 방법을 보여준다.
6장, 'I/O 시스템'에서는 윈도우의 I/O 시스템이 어떻게 작동하고 I/O 주변 장치와 작업하기 위한 메커니즘을 제공하는 디바이스 드라이버와 어떻게 통합되는지 살펴본다.
7장, '보안'에서는 익스플로잇에 대처하기 위해 시스템의 일부가 된 완화책을 비롯해 윈도우에 내장된 다양한 보안 메커니즘을 상세히 설명한다.

저자/역자 소개

지은이의 말

이 책은 마이크로소프트 윈도우 10과 윈도우 서버 2016 운영체제의 핵심 구성 요소가 내부적으로 동작하는 방법을 이해하고자 하는 고급 컴퓨터 전문가(개발자와 보안 연구가, 시스템 관리자)를 염두에 두고 썼다. 개발자는 윈도우 플랫폼 특정적인 애플리케이션을 작성할 때 여기서 제시하는 지식으로 설계 이면에 감춰진 철학을 좀 더 잘 이해할 수 있을 것이며, 난해한 문제를 디버깅하는 데 도움이 될 것이다.
운영체제가 이면에서 동작하는 방식을 이해하면 문제가 발생할 때 시스템의 성능 행위를 쉽게 이해할 수 있다. 시스템 문제를 좀 더 쉽게 해결할 수 있기 때문에 시스템 관리자도 여기서 제시하는 정보로 도움을 받을 수 있으며, 최신 윈도우가 제공하는 보안 기능과 완화책을 이해할 수 있다. 그리고 보안 연구가는 소프트웨어 애플리케이션과 운영체제가 어떻게 오작동하고 오용돼 바람직하지 않은 행위를 유발하는지를 이해할 수 있다. 이 책을 숙지한다면 윈도우의 동작 방식과 그렇게 동작하는 이유를 좀 더 잘 이해하게 될 것이다.

지은이 소개

파벨 요시포비치(Pavel Yosifovich)

마이크로소프트 기술과 툴에 전통한 개발자이고 교육자, 저자이며, 마이크로소프트 MVP이고, Pluralsight 저자로서 소프트웨어에 대한 무한한 사랑이 있다. 8비트 머신 시절부터 이 분야에 계속 종사하고 있으며, 코모도64(Commodore64)에서 프로그래밍하던 시절을 애정 어린 시선으로 회상하곤 한다.

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

크라우드스트라이크(CrowdStrike)에서 EDR Strategy의 부회장을 역임하고 있으며, 로우레벨 시스템 소프트웨어와 운영체제 연구, 커널 개발, 보안 교육, 리버스 엔지니어링 분야에서 국제적으로 인정받는 전문가다. 전 세계적으로 윈도우 내부 구조 강연을 하기도 하며, 콘퍼런스 연사나 버그 현상금 프로그램을 통해 보안 연구 커뮤니티에서도 활동 중이다.

마크 러시노비치(Mark Russinovich)

마이크로소프트의 글로벌 엔터프라이즈급의 클라우드 플랫폼인 마이크로소프트 애저(Azure)의 CTO다. 분산 시스템과 운영체제 분야에서 잘 알려진 전문가이다. Winternals Software를 공동 창업했으며, 이 회사를 그만두고 2006년 마이크로소프트에 합류했다. 인기가 있는 다수의 윈도우 관리 및 진단 유틸리티를 보유한 Sysinternals 툴과 웹사이트의 주 저자이기도 하다.

데이비드 솔로몬(David Solomon)

지난 20년간, 전 세계에 걸쳐 수많은 개발자와 IT 전문가, 마이크로소프트 직원에게 윈도우 커널 인터널에 대한 강의를 진행했으며 현재 은퇴했다. 첫 번째 책은 『Windows NT for OpenVMS Professionals』다. 그리고 『Inside Windows NT, 2nd Edition』(Microsoft Press, 1997)을 저술했으며, 그 후에 마크 러시노비치와 함께 『Windows Internals』 시리즈의 4, 5, 6판을 공동으로 집필했다. 수많은 마이크로소프트 강연을 했으며, 1993년과 2005년 두 번에 걸쳐 마이크로소프트 지원 MVP 상을 받았다.

옮긴이 소개

김점갑

삼성전자에서 GNU 컴파일러를 기반으로 ARM CORE 컴파일러 포팅/개발 프로젝트를 수행했다. 이후 보안 분야와 디바이스 드라이버에 관심을 두고 데브그루를 공동으로 창업해 다양한 장치/보안 드라이버를 개발했고, 다수의 드라이버 강의나 세미나, 교육을 진행했다. (주)안랩의 기반 기술 팀에서 보안 관련 시스템 프로그램 개발 업무를 수행했다. 현재는 여행 사진에 관심이 많다.

목차

목차
  • 1장. 개념과 툴
    • 윈도우 운영체제 버전
      • 윈도우 10과 향후 윈도우 버전
      • 윈도우 10과 원코어
    • 기본 개념과 용어
      • 윈도우 API
      • 서비스와 함수, 루틴
      • 프로세스
      • 스레드
      • 가상 메모리
      • 커널 모드와 유저 모드
      • 하이퍼바이저
      • 펌웨어
      • 터미널 서비스와 다중 세션
      • 객체와 핸들
      • 보안
      • 레지스트리
      • 유니코드
    • 윈도우 내부 들여다보기
      • 성능 모니터와 자원 모니터
      • 커널 디버깅
      • 윈도우 소프트웨어 개발 킷
      • 윈도우 드라이버 킷
      • Sysinternals 툴
    • 결론

  • 2장. 시스템 아키텍처
    • 요구 사항과 설계 목표
    • 운영체제 모델
    • 아키텍처 개요
      • 이식성
      • 대칭형 멀티프로세싱
      • 확장성
      • 클라이언트와 서버 버전의 차이
      • 체크드 빌드
    • 가상화 기반의 보안 아키텍처 개요
    • 핵심 시스템 컴포넌트
      • 환경 서브시스템과 서브시스템 DLL
      • 기타 서브시스템
      • 익스큐티브
      • 커널
      • 하드웨어 추상화 계층
      • 디바이스 드라이버
      • 시스템 프로세스
    • 결론

  • 3장. 프로세스와 잡
    • 프로세스 생성
      • CreateProcess* 함수 인자
      • 윈도우 최신 프로세스 생성
      • 다른 종류의 프로세스 생성
    • 프로세스 내부 구조
    • 보호 프로세스
      • 보호 프로세스 라이트(PPL)
      • 서드파티 PPL 지원
    • 최소 프로세스와 피코 프로세스
      • 최소 프로세스
      • 피코 프로세스
    • 트러스트릿(안전한 프로세스)
      • 트러스트릿 구조체
      • 트러스트릿 정책 메타데이터
      • 트러스트릿 속성
      • 시스템 내장 트러스트릿
      • 트러스트릿 신분
      • 격리된 유저 모드 서비스
      • 트러스트릿 접근 가능 시스템 호출
    • CreateProcess 흐름
      • 1단계: 매개변수와 플래그의 유효성 검사 및 변환
      • 2단계: 실행할 이미지 열기
      • 3단계: 윈도우 익스큐티브 프로세스 객체 생성
      • 4단계: 초기 스레드와 그 스택 및 컨텍스트 생성
      • 5단계: 윈도우 서브시스템 특정적인 초기화 수행
      • 6단계: 초기 스레드의 실행 시작
      • 7단계: 새 프로세스의 컨텍스트에서 프로세스 초기화 수행
    • 프로세스 종료
    • 이미지 로더
      • 이른 시점의 프로세스 초기화
      • DLL 이름 결정과 리디렉션
      • 로드된 모듈의 데이터베이스
      • 임포트 파싱
      • 포스트 임포트 프로세스 초기화
      • 스위치백
      • API 세트
      • 잡 제약
      • 잡과 작업
      • 중첩 잡
      • 윈도우 컨테이너(서버 실로)
    • 결론

  • 4장. 스레드
    • 스레드 생성
    • 스레드 내부 구조
      • 데이터 구조체
      • 스레드의 탄생
    • 스레드 활동성 검사
      • 보호 프로세스 스레드의 제약
    • 스레드 스케줄링
      • 윈도우 스케줄링의 개요
      • 우선순위 수준
      • 스레드 상태
      • 디스패처 데이터베이스
      • 퀀텀
      • 우선순위 상승
      • 컨텍스트 전환
      • 스케줄링 시나리오
      • 유휴 스레드
      • 스레드 일시 중지
      • (딥) 프리즈
      • 스레드 선정
      • 멀티프로세서 시스템
      • 멀티프로세서 시스템에서의 스레드 선정
      • 프로세서 선정
      • 이기종 스케줄링(big.LITTLE)
    • 그룹 기반의 스케줄링
      • 동적으로 공정한 공유 스케줄링
      • CPU 비율 제한
      • 동적 프로세서 추가와 교체
    • 작업자 팩토리(스레드 풀)
      • 작업자 팩토리 생성
    • 결론

  • 5장. 메모리 관리
    • 메모리 관리자 소개
      • 메모리 관리자 컴포넌트
      • 큰 페이지와 작은 페이지
      • 메모리 사용량 살펴보기
      • 내부 동기화
    • 메모리 관리자가 제공하는 서비스
      • 페이지 상태와 메모리 할당
      • 커밋양과 커밋 제한
      • 메모리 락킹
      • 할당 단위
      • 공유 메모리와 맵 파일
      • 메모리 보호
      • 데이터 실행 방지
      • Copy-on-Write
      • 주소 윈도우 확장
    • 커널 모드 힙(시스템 메모리 풀)
      • 풀 크기
      • 풀 사용량 모니터링
      • 룩 어사이드 리스트
    • 힙 관리자
      • 프로세스 힙
      • 힙 유형
      • NT 힙
      • 힙 동기화
      • 저단편화 힙
      • 세그먼트 힙
      • 힙 보안 특징
      • 힙 디버깅 특징
      • 페이지힙
      • 폴트 톨러런트 힙
    • 가상 주소 공간 배치
      • x86 주소 공간 배치
      • x86 시스템 주소 공간 배치
      • x86 세션 공간
      • 시스템 페이지 테이블 엔트리
      • ARM 주소 공간 배치
      • 64비트 주소 공간 배치
      • x64 가상 주소 제약
      • 동적 시스템의 가상 주소 관리
      • 시스템 가상 주소 공간 할당량
      • 사용자 주소 공간 배치
    • 주소 변환
      • x86 가상 주소 변환
      • 변환 룩 어사이드 버퍼(TLB)
      • x64 가상 주소 변환
      • ARM 가상 주소 변환
    • 페이지 폴트 핸들링
      • 유효하지 않은 PTE
      • 프로토타입 PTE
      • 인 페이징 I/O
      • 페이지 폴트 충돌
      • 클러스터 페이지 폴트
      • 페이지 파일
      • 커밋양과 시스템 커밋 제한
      • 커밋양과 페이지 파일 크기
    • 스택
      • 유저 스택
      • 커널 스택
      • DPC 스택
    • 가상 주소 디스크립터(VAD)
      • 프로세스 VAD
      • VAD 교체
    • NUMA
    • 섹션 객체
    • 워킹셋
      • 요구 페이징
      • 논리적 프리패처와 레디부트
      • 배치 정책
      • 워킹셋 관리
      • 밸런스 셋 관리자와 스와퍼
      • 시스템 워킹셋
      • 메모리 통지 이벤트
    • 페이지 프레임 번호 데이터베이스
      • 페이지 리스트 다이내믹스
      • 페이지 우선순위
      • 변경 페이지 기록자와 맵 페이지 기록자
      • PFN 데이터 구조
      • 페이지 파일 예약
    • 물리 메모리 제한
      • 윈도우 클라이언트 메모리 제한
    • 메모리 압축
      • 압축 예제
      • 압축 아키텍처
    • 메모리 파티션
    • 메모리 결합
      • 탐색 단계
      • 분류 단계
      • 페이지 결합 단계
      • 전용에서 공유 PTE로
      • 결합 페이지 해제
    • 메모리 엔클레이브
      • 프로그램 인터페이스
      • 메모리 엔클레이브 초기화
      • 엔클레이브 구축
      • 엔클레이브로 데이터 로드
      • 엔클레이브 초기화
    • 선행적 메모리 관리(슈퍼패치)
      • 컴포넌트
      • 트레이싱과 로깅
      • 시나리오
      • 페이지 우선순위와 균형 조절
      • 견고한 성능
      • 레디부스트
      • 레디드라이브
      • 프로세스 리플렉션
    • 결론

  • 6장. I/O 시스템
    • I/O 시스템 컴포넌트
      • I/O 관리자
      • 전형적인 I/O 처리
    • 인터럽트 요청 레벨과 지연된 프로시저 호출
      • 인터럽트 요청 레벨
      • 지연된 프로시저 호출
    • 디바이스 드라이버
      • 디바이스 드라이버의 유형
      • 드라이버의 구조
      • 드라이버 객체와 디바이스 객체
      • 장치 열기
    • I/O 처리
      • I/O의 유형
      • I/O 요청 패킷
      • 단일 계층 하드웨어 기반 드라이버로의 I/O 요청
      • 계층적 드라이버에 대한 I/O 요청
      • 스레드 비종속적 I/O
      • I/O 취소
      • I/O 완료 포트
      • I/O 우선순위화
    • 컨테이너 통지
      • 드라이버 베리파이어
      • I/O 관련 검증 옵션
    • 메모리 관련 검증 옵션
      • 플러그앤플레이 관리자
      • 플러그앤플레이 지원 수준
      • 장치 열거
      • 디바이스 스택
      • 플러그앤플레이를 위한 드라이버 지원
    • 플러그앤 플레이 드라이버 설치
      • 일반적인 드라이버 로드와 설치
      • 드라이버 로딩
    • 드라이버 설치
      • 윈도우 드라이버 파운데이션
      • 커널 모드 드라이버 프레임워크
    • 유저 모드 드라이버 프레임워크
      • 전원 관리자
      • 연결 스탠바이와 모던 스탠바이
      • 전원 관리자 동작
      • 드라이버의 전원 동작
      • 드라이버와 애플리케이션의 장치 전원 제어
      • 전원 관리 프레임워크
    • 전원 가용성 요청
  • 결론

  • 7장. 보안
    • 보안 등급
      • 신뢰성 있는 컴퓨터 시스템 평가 지침
      • 공통 평가 기준
    • 보안 시스템 구성 요소
    • 가상화 기반의 보안
      • 자격증명 가드
      • 장치 가드
    • 객체 보호
      • 접근 검사
      • 보안 식별자
      • 가상 서비스 계정
      • 보안 디스크립터와 접근 제어
      • 동적 접근 제어
    • AuthZ API
      • 조건부 ACE
    • 계정 권한과 특권
      • 계정 권한
      • 특권
      • 슈퍼 특권
    • 프로세스와 스레드의 접근 토큰
    • 보안 감사
      • 객체 접근 감사
      • 전역 감사 정책
      • 고급 감사 정책 설정
    • 앱컨테이너
      • UWP 앱의 개요
      • 앱컨테이너
    • 로그온
      • Winlogon 초기화
      • 사용자 로그온 과정
      • 보장된 인증
      • 윈도우 생체 인식 프레임워크
      • 윈도우 헬로
    • 사용자 계정 제어와 가상화
      • 파일 시스템과 레지스트리 가상화
      • 상승
    • 취약점 완화
      • 프로세스 완화 정책
      • 제어 흐름 무결성
      • 보안 보장
    • 애플리케이션 식별
    • 앱락커
    • 소프트웨어 제한 정책
    • 커널 패치 보호
    • 패치가드
    • 하이퍼가드
    • 결론

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p.18]
밸런스 셋 관리자와 스와퍼4
->
밸런스 셋 관리자와 스와퍼 675