YUZA OS Hello World 프로젝트
산자부 감사 기간이 끝나고 옆의 상사와 거하게 한잔 하고 하루 달리느라 실패했던 기본 프로젝트 빌드를 마무리 짓지 못했다. 오늘부로 두 번째 피아노 레슨을 받고 와서, 실패했던 화면을 책의 저자가 운영하는 카페에 링크 걸어서 질문했는데 오늘 실패의 원인을 확인할 수 있었다.
문제는 아래 runtime 솔루션 파일을 실행했을 때 4개의 프로젝트 중 libcrt가 로드되지 않았던 거였다. 화면 캡처를 일일이 한뒤 블로그에 업로드해서 리뷰했던 블로그를 공유했고 저자로부터 정확한 피드백을 받을 수 있었다. 모두 재빌드한 결과 두 가지의 솔루션의 프로젝트에서 여전히 실패가 발생했지만, 콘솔 커널의 시작 엔트리인 YuzaOSConsole 함수가 실행되었고(디버깅 모드) 'Hello, world!!'라는 실행결과를 출력하도록 프로젝트를 빌드시키는 것까지는 문제 없었다. 이제 다음 실습차부터 이론과 함께 차근차근 커널 코어로 접근해 볼 수 있겠다.
runtime 폴더로 이동해서 runtime.sln 솔루션을 실행한 다음 빌드한다.
runtime.sln의 프로젝트를 제대로 로딩하고 재빌드 한 다음, corelib.sln을 실행하고 빌드한 결과 실패가 없다.
thirdparty 폴더로 이동해서 ThirdParty.sln을 실행한 다음 빌드해도 기존 20개 실패에서 1개 빼고 모두 성공된다. 일단 무시하고 다음 솔루션 파일들을 실행시켰고 재빌드했다.
support.sln을 실행하고 빌드한다.
device.sln을 실행하고 빌드한다.
thirdParty/SDL/SDL2 폴더로 이동해서 SDL2.sln을 실행한 다음 빌드한다.
thirdParty/SDL/SDL1CL 폴더로 이동해서 sdlcl.sln을 실행한 다음 빌드한다.
thirdparty2 폴더로 이동해서 ThirdParty2.sln을 실행한 다음 빌드한다.
kernel.sln 솔루션을 실행한 다음 빌드한다.
YUZA OS 1권에서 설명하는 샘플 프로젝트다. 역시 소스코드 내에 포함되어 있다.
01_console.sln : 콘솔 프로젝트에서 HelloWorld 문자열 출력