C++로 나만의 운영체제 만들기 pdf 다운로드를 무료로 제공합니다 운영체제를 제작할 때 친숙한 개발 환경은 개발속도를 배가시킨다. 이 책에서 설명하는 운영체제 SkyOS는 윈도우 운영체제 환경에서 비주얼 스튜디오를 통해 개발할 수 있다
관련 책 pdf 모음
책 소개
C++를 개발 언어로 채택했기 때문에 객체지향 프로그래밍이 가능하며, 표준 C 런타임 라이브러리를 활용함으로써 외부 라이브러리의 손쉬운 포팅 작업을 가능하게 했다. 궁극적으로는 WIN32 에뮬레이션을 통해 WIN32/SkyOS 두 플랫폼에서 동작하는 모듈의 작성이 가능하므로, 개발테스트는 WIN32 환경에서 진행하고 배포는 실기로 하는 구조를 정립했다. 이를 통해 개발자는 자신만의 운영체제를 손쉽게 제작할 수 있을 것이다. 이 책을 집필하기 전에 몇 권의 책을 집필했지만 이번만큼 힘든 적은 없었다. 어떻게 하면 독자들에게 내용을 잘 전달할 수 있을지 고민하면서 집필했으나 내용이 마음에 들지 않아 수없이 좌절했고, 프로그램에 버그가 발생하면 원인을 찾을 수 없어 며칠 밤낮을 새고 식음을 전폐하며 문제 해결에 몰두했었다.
C++로 나만의 운영체제 만들기 pdf
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 설치