- 본 장에서는 운영체제 개발 방법에 대해서 이야기 한다. 운영체제를 직접 개발하면서 겪게 되는 현장 중심의 문제들을 하나씩 해결하면서, 그 과정부터 샅샅이 설명할 것이다. 단계별로 필요한 부가적인 정보들도 상세히 기술 할 것이다. 운영체제를 개발하고자 하는 사람이 보면 모든 것을 이해할 수 있는 그런 문서가 될 것이다. 필자가 직접 운영체제를 개발하면서 단계별로 겪은 문제들을 과정마다 모두 기록했기 때문에 가능해질 수 있었다.
- 운영체제를 개발하기 위한 에뮬레이터로는 Bochs 와 VMWare 를 추천한다. 부트로더를 개발하는 단계에서 많은 문제에 부딪혔던 필자는 OS 개발을 위한 디버거가 필요했다. “디버거가 있다면 보다 쉽게 해결할 수 있을 텐데” 하는 아쉬움이 많았기 때문이다. 한 동안 수많은 사이트를 찾고 뒤지면서 ARM 관련 에뮬레이터를 포함하여, ARM 프로세서를 에뮬레트하면서 디버깅 기능을 제공하는 도구들을 쉽게 찾을 수 있었다. 분명 X86 에뮬레이터와 보다 막강한 디버거가 있을 거라는 생각에 더 많은 사이트를 돌아 다녔고, 드디어 bochs 라는 Pentium(x86) emulator 를 찾을 수 있었다.
- Bochs 라는 emulator 을 찾다 보니, 의외로 많은 사람들이 x86 운영체제 개발에 관심을 갖고 있다는 것을 알 수 있었고, 수 많은 자작 운영체제와 구현 기법들이 공개된 것을 발견했다. 하지만 국내에서는 쉽게 찾기 힘들었다. 이에 필자는 국내에서도 운영체제 개발을 활성화 시키고, 시스템 이해를 위한 자료를 보다 쉽게 정리해야 겠다는 생각을 하게 되었고, 그 결과 이 문서가 탄생했다.
- Bochs 는 디버깅 기능을 아주 훌륭하게 제공해 주고 있다. 디버깅 기능을 이용해 한 단계 한 단계 운영체제를 개발해 보고, vmware 는 상용으로 판매되는 프로그램인 만큼 신뢰도가 높기 때문에 bochs 를 이용한 정상동작이 확인된 경우라면 vmware 에서 한 번 더 확인했다. 물론 실제 장비에서 실행해 보는 것만큼 좋은 확인 방법은 없을 것이다.