장바구니 담기 close

장바구니에 상품을 담았습니다.

C++로 나만의 운영체제 만들기

C++로 나만의 운영체제 만들기

  • 박주항
  • |
  • 에이콘출판
  • |
  • 2018-09-28 출간
  • |
  • 600페이지
  • |
  • 188 X 235 X 35 mm
  • |
  • ISBN 9791161752051
판매가

40,000원

즉시할인가

36,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
36,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 이 책에서 다루는 내용 ★

■ GRUB을 활용한 커널 부팅 프로세스 간소화
■ 비주얼 스튜디오 2017을 사용한 커널 빌드
■ C++ 커널 개발방법 설명과 C++ 언어에 대한 심화 주제 학습
■ 운영체제 메모리 관리 시스템 이해
■ 버그에 대처할 수 있는 디버깅 능력 배양
■ WIN32 시스템 구조를 커널에 반영
■ 다양한 GUI 시스템 샘플 예제 제공
■ WIN32와 SkyOS 두 플랫폼에서 모두 동작하는 모듈 개발 방법 설명

★ 이 책의 대상 독자 ★

프로그래머로서 프로그래밍의 꽃이자 로우레벨 개발의 근간을 이루는 운영체제를 개발하고 싶은 사람을 대상으로 한다. 또한 현대 운영체제의 내부 구조를 더 자세히 이해하고 싶거나, 운영체제를 제작해보고 싶은데 초기 진입에 실패한 프로그래머를 대상으로 한다. 따라서 다음과 같은 사항에 해당된다면 대상 독자라고 할 수 있겠다.

■ 자신만의 운영체제를 개발해 보고 싶은 일반 개발자
■ 운영체제론을 배우고 있는 학생
■ 현대 운영체제의 기본 개념을 이해하고 싶은 프로그래머
■ 이론보다는 구체적으로 실행되는 결과물을 원하는 개발자
■ 산이 있으면 정상에 오르고 싶은 자
■ 바닥부터 개발을 원하는 프로그래머
■ 상업적으로 운영체제를 개발하려는 프로그래머

또한 SkyOS는 C++로 제작됐기 때문에 C++ 관련 필요한 기능을 직접 구현했다. 예를 들면 new나 delete 연산자 등이 그것이다. C++라는 언어 자체에 관심이 있는 개발자라면 이 책이 지적 욕구를 만족시켜 줄 수 있을 것이다.


목차


1장. SkyOS 프로젝트

__예비지식
__SkyOS 콘셉트
__준비물
____비주얼 스튜디오 2017
____WinImage
____QEMU
____SkyOS 소스코드
__프로젝트 빌드
____프로젝트 구성
____프로젝트 빌드
____커널의 실행
__정리

2장. 운영체제 이론

__프로세스
__스레드
__스택
__호출 규약
__네임 맹글링
__정리

3장. 커널 로딩

__GRUB
____부팅
____설치
____실행
____GRUB이 전달하는 파라미터
____커널 엔트리 찾기
____제약사항
____글로벌 객체의 초기화
__환경 설정
____RTTI 기능 제거
____예외 기능 사용하지 않기
____기타 옵션
__정리

4장. 하드웨어 초기화

__CPU
____메모리 레이아웃
____GDT
____IDT
____정리
__PIC
__PIT
__실습
__FPU
__인터럽트 핸들러
____예외 인터럽트의 종류
____실습
__정리

5장. 메모리 가상화

__가상주소공간
__페이징
____주소 변환 과정
____세그멘테이션
____페이징
__정리

6장. 메모리 매니저

__물리 메모리 매니저
__가상 메모리 매니저
____페이징 구현
____가상주소와 물리주소 매핑
__정리

7장. 힙의 구현

__커널 힙 알고리즘
__할당과 해제 로직
____할당
____해제
__힙 인터페이스
__실습
__정리

8장. C++

__new, delete 연산자 구현
__예외 처리
____순수 가상함수 호출
____힙 손상
__클래스 상속
__C+ +11
____람다 함수
____constexpr
__실습
__정리

9장. 공통 라이브러리

__C 런타임 라이브러리 제작
__STL
____string
____vector
____맵
____리스트
____덱
____cout
__비표준 자료구조
____이중 연결 리스트
____큐
____스택
__정리

10장. 디바이스 구현

__키보드
____키보드 핸들러의 구현
__플로피 디스크
____플로피 디스크 초기화
__하드 디스크
____하드 디스크 초기화
____하드 디스크 읽기 / 쓰기
__정리

11장. VFS

__파일시스템
__StorageManager 클래스
__표준 입출력 함수와의 연계
__MINT64 램디스크
__메모리 리소스 디스크
__실습
__정리

12장. 디버깅

__맵 파일 익스플로러
__PDB
__WinDBG
__널 포인터 접근
__try / catch
__로그
__정리

13장. 커널 코어 구현

__프로세스 매니저
____프로세스의 생성
____파일로부터 프로세스 생성
____정리
__콘솔시스템
____시스템 프로세스의 생성
____콘솔 프로세스
____WatchDog
____Process Remover
__멀티태스킹
____태스크 스위칭 세부 구현
____정리
__실습

14장. 애플리케이션

__응용프로그램의 시스템 API 호출 원리
__EntryPoint 함수 구현
__SkyOS 시스템 API 호출
____유저 API
____커널 API
____시스템 API의 추가
__응용프로그램
____Hello World
____Sort
____Math
__정리

15장. 그래픽 시스템

__그래픽 모드 초기화
____RME
____GRUB을 활용한 GUI 전환
__GUI 환경구축
____GUI 콘솔
____SkyGUI
____SVGA 라이브러리
__정리

16장. 써드파티
__루아
__json 라이브러리
__easyzlib
__정리

17장. 동적 라이브러리

__DLL 로드
__SampleDll
__정리

18장. Advanced Debugging

__커널 디버깅은 원래 가능
__VirtualBox를 이용한 디버깅
__동적 라이브러리를 활용한 디버깅
____콜스택 출력
____심벌엔진
__정리

19장. SkyOS64

__32비트 부트 로더
__64비트 커널
__ELF 포맷
__주의사항
__정리

20장. Final

__개발사항
__GUI 콘솔 실습
__SVGA 라이브러리
__모듈 개발하기
__남은 과제

부록

__PE 파일
__덤프 테스트 모듈
____DumpTest Module
__주소 재배치
__동기화
____스레드와 동기화 객체
____멀티 스레드를 사용하는 이유
____동기화 객체 종류
____Recursive Lock
____SkyOS에서의 동기화
__어셈블러
__스크래치로부터 커널 부팅
____디스크에 부트섹터 쓰기
__USB에 GRUB 2.02 설치

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.