-
OS 개발일지 2. 개발환경 구축개발/Operating System 2024. 2. 1. 15:21
OS 개발을 시작하니 생각보다 내가 잘 몰랐던 부분이 너무나도 많았다. 어셈블리어의 경우 작년에 OS 수업을 들으면서 조금이나마 눈에 익었지만, 부트로더나 링커 파일을 오직 공룡책 하나 만으로 해결하기에는 너무나 어려웠다.
그래서 책과 유튜브를 참고해서 도움을 얻고자 한다.
대략적으로 Write your own Operating System 님의 강의와 한승훈 님의 64비트 멀티코어 OS 원리와 구조. 1 책을 참고할 예정이다.
개발환경 구축
윈도우 상에서 개발을 시도하려면 크로스 컴파일러를 만들거나, 따로 가상머신을 이용해 리눅스를 사용하는 방법이 있다. 가상머신의 경우 아무래도 속도가 조금 느린 면이 있지만, 크로스 컴파일러를 만드는 과정이 복잡하기 때문에 필자는 VirtualBox와 Ubuntu를 사용하여 빌드하기로 했다.
크로스 컴파일 가이드는 64비트 멀티코어 OS 원리와 구조의 저자이신 한승훈 님께서 올려주셨으니, 시간이 날 때 참고해서 만들어 보겠다.
https://github.com/kkamagui/mint64os-examples
GitHub - kkamagui/mint64os-examples: "64비트 멀티코어 OS 원리와 구조" 의 예제 소스 코드
"64비트 멀티코어 OS 원리와 구조" 의 예제 소스 코드. Contribute to kkamagui/mint64os-examples development by creating an account on GitHub.
github.com
리눅스 가상머신을 사용한다면 아래 3가지 패키지들을 터미널에서 다운로드 하자.
sudo apt-get install g++ sudo apt-get install binutils sudo apt-get install libc6-dev-i386더 어려운 운영체제를 만들기 위해서는 더 많은 패키지들이 필요할지 모르겠지만, 간단하고 기초적인 정도만 구현한다면 이 정도 패키지 만으로 커널 프로그램을 작성할 수 있다.
또한, Vim 과 make도 필수니 반드시 설치해야 한다. 추가적으로 더 필요한 패키지들은 필요시에 다운로드 하면 되겠다.
'개발 > Operating System' 카테고리의 다른 글
OS 개발일지 3. 부트로더와 커널 작성하기 (1) 2024.02.24 OS 개발일지 1. 코드의 재사용성에 대한 고민 (1) 2024.01.25