YUZA OS Vol 1: 소프트웨어편 (WIN32 플랫폼에서 C++로 운영체제 제작하기 | 2022년도 대한민국학술원 선정 교육부 우수학술도서)

YUZA OS Vol 1: 소프트웨어편 (WIN32 플랫폼에서 C++로 운영체제 제작하기 | 2022년도 대한민국학술원 선정 교육부 우수학술도서)

$46.74
Description
『C++로 나만의 운영체제 만들기』의 후속편인 이 책은 저자가 직접 제작한 YUZA OS라는 OS를 파헤쳐 보면서 운영체제의 구조와 원리를 설명한다.
리눅스 같은 기존의 운영체제 개발환경에서 벗어나 윈도우 운영체제에서 OS를 개발하며 비주얼 스튜디오 2019와 C++로 운영체제 개발 방법을 설명하는 것이 특징이다. 아울러 저자가 게임 개발자 출신답게 다양한 게임을 자신만의 OS에서 쉽게 제작할 수 있는 방법을 설명하는 것에 심혈을 기울였다. 컴퓨터를 제어하는 모든 소스코드를 장악하고 싶은 개발자에게 큰 도움이 될 책이다.
선정 및 수상내역
2022년 대한민국학술원 우수학술도서 선정도서
저자

박주항

서강대학교에서컴퓨터공학과물리학을전공했으며,JCE(현조이시티)온라인게임서버프로그래머,라인의백엔드플랫폼프로그래머그리고모바일게임개발회사대표를거쳐현재프리랜서로활동중이다.
안되는걸되게하는것에관심이많으며,고전어드벤처게임을좋아해번역되지않은다수의명작어드벤처게임의한국어화패치를제작했다.
주요저서로는한빛미디어에서출간한『CGSF를활용한게임서버제작』(2014),『CGSF파헤쳐보기』(2014),『C++개발자를위한WIN32오픈소스라이브러리100』(2015),『SDL과C++를이용한크로스플랫폼프로그래밍』(2015),에이콘에서출간한『C++로나만의운영체제만들기』(2018)등이있다.번역서로는『데이터베이스첫걸음』(한빛미디어,2016)과『GameProgramminginC++』(에이콘,2019)가있다.

목차

0장들어가며
1YUZAOS
2개발전략
2.1개발규모
2.2듀얼플랫폼
2.3차별화
2.4행사비용최소화
2.5조건최소화
3정리
4대상독자
5책의구성

1장개발환경갖추기
1비주얼스튜디오2019
2VirtualBox
3ImDisk
4DLLExportViewer
5CMAKE-GUI
6QEMU
7기타
7.1PEExplorer
7.2StarUML
7.3HxD
7.4PEView
7.5WSL/WSL2
7.6MSYS2
7.7DJGPP
7.8TortoiseSVN
7.9GIT클라이언트
8정리

2장.비주얼스튜디오
1단축키
2디버깅
3프로젝트환경설정
3.1일반
3.2디버깅
3.3C/C++
3.4링커
3.5빌드이벤트
3.6사용자지정빌드단계.
4기타
4.1프로젝트구성관리자
4.2빌드종속성
5정리

3장.운영체제이론
1운영체제유형
1.1모놀리식커널
1.2마이크로커널
1.3하이브리드커널
1.4엑소커널
1.5YUZAOS
1.6정리
2운영체제개발요소
2.1아키텍처
2.2디바이스
2.3파일시스템
2.4GUI시스템
2.5커널서비스
2.6동기화인터페이스
2.7가상주소시스템
2.8프로그래밍인터페이스
2.9정리
3결론

4장.YUZAOS시작하기
1환경구축
2HelloWorld!!
__실습1-DLL디버깅모드
__실습2-DLL디버깅미지원모드
__실습3-실기(가상에뮬레이터)
3응용앱개발프로젝트설정
4실습
4.1sample프로젝트
4.2sum프로젝트
5결론

5장.콘솔앱살펴보기
1테스트앱
1.1파일읽기
1.2압축
1.3로그
1.4시간함수
1.5수학함수
1.6정규표현식
2응용앱
2.1grep
2.2sqlite3
2.3루아콘솔
2.4fonttosvg
3정리
쉬어가기1-플로피버드

6장.듀얼시스템
1커널핵심컴포넌트
2부팅시퀀스
2.1실기
3프로젝트구성
3.1링커-고급항목
3.2C/C++-전처리기
3.3링커-라이브러리
4파일시스템
5디버깅
6기타
6.1메모리할당
6.2키보드/마우스입력
6.3디스플레이
6.4스레드제어및스케줄링
6.5특권어셈블리명령어
6.6가상주소시스템.
7정리

7장.커널초기화
1커널엔트리
2커널코어
2.1커널초기화
2.2인터럽트벡터초기화
2.3PIT시작
2.4커널필수모듈로드
2.5커널가상주소재배치
2.6시스템콜등록
2.7저장장치초기화
2.8디버깅시스템초기화
2.9커널메인코드시작
3win32stub.dll
3.1타이머이벤트
3.2키보드/마우스이벤트
4정리

8장.DLL로더시스템
1기본로더이론
2DLL로딩방식
3DLL매핑
4커스텀DLL로더
5과제
5.1심벌로드
6정리

9장.시스템콜
1시스템콜설계
2시스템콜의구조
3시스템콜의추가
4결론

10장.독립형OS제작하기
1GUI콘솔
2루아운영체제
2.1루아스크립트
2.2루아콘솔
2.3루아팅커
2.4루아커널
__초기화
__메인엔트리-lua_main
__루아커널스크립트
2.5루아확장모듈
__루아스크립트를통한모듈등록
__DLL모듈을통한모듈등록
__몇가지확장모듈
3정리
쉬어가기2-YUZAOS콘셉트

11장.표준프로그래밍인터페이스
1프로그래밍인터페이스구축전략
2표준C라이브러리(ANSI)
2.1입출력함수
2.2문자열함수
2.3수학함수
2.4시간및날짜함수
2.5결론
3POSIXAPI
3.1파일조작
3.2디렉터리조작
3.3pthreads
3.4결론
4WIN32API
5내장함수
6골치아픈항목
7정리
8고급
8.1musl

12장.C++&STL
1STL
2개인제작STL
3SGISTL
4EASTL
5테스트
6정리

13장.데스크톱시스템
1기본데스크톱
1.1구동하기
1.2샘플앱
1.3GUI콘솔앱
1.4데스크톱구조
2GUI위젯
3Advanced
4정리

14장.SDL살펴보기
1SDL
1.1게임
1.2에뮬레이터
1.3GUI
1.4동영상
1.5정리
2SDL시스템
2.1SDL_mixer
2.2SDL_image
2.3SDL_gfx
2.4SDL_ttf
2.5정리
3SDL프로그래밍
3.1튜토리얼
__flip
__bmp
__loadpng
__TTF
__타이머
3.2게임
__소코반
__테트리스
__팩맨
__SDLBird
__로드파이터
__오픈타이리언
3.3GUI
__TinyGUI
__GuiChan
__Cairo
__SDL_GUI
__GWork
3.4LUASDL
3.5포팅해보기
4SDL통합시스템
5확장모듈
6정리
__레퍼런스

15장.SDL코어편
1안드로이드
1.1자바와C++
1.2액티비티&SDL연동
2WIN32
3YUZAOS포트
3.1프로젝트구성
3.2구현
4정리
쉬어가기3-알레그로엔진

16장.3D프로그래밍인터페이스
13DAPI
2OpenGL
3OpenGL과제
4소프트웨어렌더러
5정리

17장.오픈소스라이브러리
1리스트
1.1압축
1.2이미지
1.3폰트
1.4직렬화
1.5파싱
1.6멀티미디어
1.7마크업언어
1.8로컬라이제이션
1.9기타
2정리

18장.포팅하기
1라이브러리고르기
2포팅실전
2.1성공사례-ScummVM
2.2실패사례-wxWidgets
3정리

19장.실전응용앱편
1게임
1.1SDL봄버맨
1.2페르시아왕자
1.3울펜스타인3D
1.4둠
1.5지뢰게임
2에뮬레이터
2.1VBA
2.2fmsx
2.3GNUBoy
2.4DosBox
3GUI
3.1pdcurses
3.2kiss
3.3ImGui
3.4zgv
4기타
4.1Box2D.
4.2편집기
4.3Load81프로젝트
4.4장기
5정리

후기
YUZAOSVol.1-소프트웨어편의의의
독자분들의다음스텝
YUZAOSVol.2-하드웨어편

출판사 서평

★이책에서다루는내용★

■리눅스기반이아닌비주얼스튜디오2019및상위버전으로커널개발
■YUZAOS라는구체적인결과물로운영체제개념설명
■듀얼시스템을통한최강의디버깅시스템지원
■표준프로그래밍인터페이스를통한다양한앱및라이브러리의포팅방법
■추상화언어의마지노선인C++11로운영체제개발
■자신만의응용앱을손쉽게구현
■윈도우시스템프로그래밍노하우를운영체제개발에활용
■스크립트언어를활용한운영체제개발방법론
■SDL라이브러리를활용한게임제작방법

★이책의대상독자★

■OS를직접개발해보고싶은일반개발자
■운영체체론을공부하는학생
■이론보다구체적인결과물로학습을원하는개발자
■심화된윈도우시스템프로그래밍을공부하려는프로그래머
■C++언어의내부구현을이해하고싶은분
■직접만든OS에자신만의응용앱을손쉽게개발하고싶은분