Ⅰ. 개요
- 본 내용은 "64비트 멀티코어 OS 개발" 에 대한 내용이다.
- 큰 순서는 부트로더 -> 32bit OS -> 64bit OS 로 개발을 진행한다.
- 64bit OS 개발 이후,멀티코어 관련 기능을 추가해서 최대 16개의 코어를 지원하게 확장하고 GUI시스템까지 구현될 예정이다.
Ⅱ. OS 개발 시, 필요한 지식
1. 하드웨어 지식
- 32bit에서 64bit로 바꾸는 작성이나 PC주변장치를 다루는 작업은 하드웨어에 대한 지식이 없으면 불가능하다.
- 다행히, 대부분의 내용은 하드웨어와 함께 제공되는 스펙문서에 존재한다.
- 스펙문서만 잘 구하면, 하드웨어를 모른다 하여도, 큰 문제가 발생하지 않는다.
2. 어셈블리어
- 사람보다는 기계어에 가까운 프로그래밍 언어이다.
- OS 개발 시, 어셈블리어가 필요한 경우는OS처음 부팅할 때, 프로세서에 동작 모드 설정할 때, 멀티태스킹의 일부분, 응용프로그램을 위한 시스템콜 등이다.
3. C 언어
- OS코드의 대부분은 C언어로 작성되므로, C언어를 모르면 OS개발이 불가능하다.
- 기본 개념, 배열과 포인터의 관계, 타입 캐스팅에 약하다면, C언어 기초 먼저 다지는 것을 추천한다.
4. OS 이론
- OS 개발 초기 단계에는 거의 필요없지만, 개발 중반에는 OS전체의 방향 설계에 큰 역할을 차지한다.
5. 컴파일러, 링커, 도구 사용법
- '컴파일러'와 '링커'의 경우, 작성한 소스코드를 부팅 가능한 이미지로 만들어주는 프로그램이다.
- '도구'는 개발을 도와주는 통합개발환경(IDE) 프로그램부터 생성된 OS이미지를 실행할 가상머신 프로그램에 이르기까지 다양한 종류의 프로그램을 의미한다.