[64비트 멀티코어 OS]4장 부트로더 제작하기
64비트 멀티코어 OS 만들기 - 4장 부트로더 만들기
교재 : 64비트 멀티코어 OS 원리와 구조, 한빛미디어
목차
멀티코어 교재가 윈도우 환경에서 프로젝트를 진행하는 데 반해 저는 유닉스 환경에서 그리고 이클립스가 아닌 Clion을 통해서 프로젝트를 진행할 계획입니다. 유닉스 환경에서 진행하지만 리눅스 환경과 크게 다를 점은 없을 걸로 예상합니다. 그래서 혹시 리눅스 환경으로 진행하는 분이 있다면 포스팅 참고하셔도 괜찮을 것 같습니다.
- 교재에 나온 모든 내용을 옮겨 정리하지는 않을 겁니다. 혼자서 쉽게 진행할 수 있었거나 교재를 참고하면 되는 부분은 되도록 제외하고 정리하려고 합니다. 교재를 온라인으로 참고하고 싶으면 교재 내용이 잘 옮겨져 있는 곳이 몇 곳 있는 것 같습니다.
- 앞 부분 정리하신 분이 있어 필요할 때 참고했습니다. https://github.com/HIPERCUBE/64bit-Multicore-OS/tree/master/book
- 다소 시행착오가 있겠지만 앞으로도 윈도우보다는 리눅스, 유닉스 환경을 많이 쓸 것기 때문에 삽질을 해가며 공부한 내용을 정리해 나가려고 합니다.
- Clion에서 진행할 때 Terminal을 켜서 작업하면 편한데 option + F12 버튼을 누르면 터미널일 하단에 생깁니다.
Mint64 디렉토리 생성하기
- Clion에서 그림과 같이 디렉토리르 구성해주었습니다. 주의할 점은 딱히 없고 MINT64폴더를 오른쪽 클릭해서 Mark Directory as Source Tree로 지정해주었습니다.
Makefile 작성하기
- makefile은 build를 담당하는 make 라이브러리가 실행될 때 makefile에 있는 내용을 참조하기 때문에 작성이 필요합니다.
- makefile은 textfile을 *.o 확장자인 오브젝트 파일로 만들고 최종적으로는 바이너리 파일을 만드는데 필요한 의존사항들이 적혀져 있습니다.
- make에 대해서 더 자세한 내용은 다음 주소를 참고했습니다. (http://bowbowbow.tistory.com/12)
부트로더 제작하기
부트로더를 작성하기 위해서 .asm 확장자인 어셈블리 파일을 작성하게 됩니다.
Qemu 실행하기
- home brew를 통해서 qemu를 다운받았습니다.
brew install qemu
- qemu는 x86-64 환경을 실행할 수 있게 도와주는 virtual machine입니다. 여러가지 환경을 실행할 수 있기 때문에 터미널에서 qemu만 입력해서는 실행할 수 없습니다.
- 터미널에서 qemu를 작성하고 탭을 누르면 여러 환경들이 나옵니다. 여기에서 유닉스 환경에서 우리가 원하는 x86-64버전을 실행시키기 위해서는 qemu-system-x86-64를 실행하면 됩니다.
- qemu-system-x86-64.bat 파일을 찾아 수정하라고 교재에는 나와있지만 유닉스에서는 bat파일이 없습니다. 윈도우의 bat파일과 같은 역할을 하는 것이 .sh 파일인 쉘 스크립트 파일입니다.
삽질
- bat 파일의 실제 다음과 같습니다. 여러 드라이버를 설정해주는 것 같은데 정확하게 어떤 역할을 하는지는 아직 모르겠습니다.
https://github.com/mcandre/qemu-win/blob/master/dist/qemu-x86_64.bat - bat파일에 있는 나머지 코드들이 아직 필수적이지 않은 것 같아서 부트로더를 실행시키기 위해서는 다음 한 줄만 실행시키는 것만으로 충분하다고 중간 결론을 내렸습니다.
qemu-system-x86_64 -L . -m 64 -fda ~/CLionProjects/Os/MINT64/Disk.img -localtime -M pc
MINT64경로는 저와 다를 수 있으니 그 부분만 수정해서 실행하면 됩니다.- 실행결과 플로피 디스크를 부팅하고 있다는 창이 뜬다면 성공이빈다.
잘 보고 갑니다.
답글삭제네^^
삭제설명을 쉽게 잘 하시네요
답글삭제이해하셨다니 기분이 좋네요 ㅎㅎ
삭제