잡학다식을꿈꾼다 2023. 12. 18. 16:01
반응형

 

 한창 OS 관련해 공부할 때 단순하게 이론적인 공부만 하고 싶지 않아서, 실습용으로 구매했었다. 한 Chapter 12 까지 하고 어느 순간 안하게 되었는데 이번에는 반드시 끝까지 실습을 마칠 생각이다.

 

실습 환경 :  Ubuntu 20.04 (WSL)

실습 환경 구성 : 

 처음에 실습 환경을 만드는데 애를 먹었던 기억이 있다. 특히 edk2 버전 관련한 문제를 해결하는 데 애를 먹었었다. 해결책은 어느정도 구버전의 edk2를 git branch 해 사용하는 것이었다. 그런데 굳이 그럴 필요가 없다는 것을 알게 되었다. 저자가 프로젝트를 위한 환경 빌드 파일들을 github에 올려 두었고, 별다른 수정 없이 잘 작동한다는 것을 확인했다. 링크는 다음과 같다.

 

https://github.com/uchan-nos/mikanos-build

 

GitHub - uchan-nos/mikanos-build: Build and run scripts for MikanOS

Build and run scripts for MikanOS. Contribute to uchan-nos/mikanos-build development by creating an account on GitHub.

github.com

 

*환경 빌드

sudo apt update
sudo apt install git
cd $HOME
git clone https://github.com/uchan-nos/mikanos-build.git osbook
sudo apt install ansible
cd $HOME/osbook/devenv
ansible-playbook -K -i ansible_inventory ansible_provision.yml



//완료 후 확인법(잘 뜨면 성공)
iasl -v

 

단 Ubuntu 20.04, 또는 18.04 버전의 경우 다음 branch로 checkout 해주어야한다.

 

git checkout 8d4882122ec548ef680b6b5a2ae841a0fd4d07a1

 

 OS란 무엇인가? OS는 일종의 메타 프로그램이다. (있는 단어인지는 모르겠지만...) 일반 어플리케이션 처럼 구체적인 기능을 하는 것은 아니지만, 일반 사용자들이 컴퓨터를 사용, 또는 OS 단 위에서의 개발에 용이하게 끔 여러 기능들을 제공한다. 예를 들어 모니터, 마우스 등 주변 장치들을 사용하기 위한 기능들을 OS는 제공하고, 여러 개의 어플리케이션이 동시에 작동하는 것처럼 보이게 하기 위해 멀티태스킹 기능을 제공한다. 그외에도 특정 영역의 메모리가 제멋대로 읽거나 쓰는 것을 막는 보안 기능 등 컴퓨터 전반에 필요한 기본적인 것들을 제공한다. 

 

EDK2

 OS를 바로 동작 시킬 수는 없다. 우선 부팅 프로그램을 실행하고 이를 통해 OS를 동작시켜야 한다. 부팅 프로그램은 대부분 ROM과 같은 비휘발성 메모리에 저장되어 있다. EDK2는 부팅 프로그램을 개발할 수 있도록, 정확히는 UEFI BIOS 상에서 동작하는 어플리케이션을 개발할 수 있도록 도와주는 SDK이다. 

빌드하기 위해서는 .inf, .dec, .dsc 파일이 필요하다.직접 적을 필요는 없고 그냥 복붙하면 된다. 이 파일들은 일종의 빌드를 하기 위한 레시피 정도로 생각하면 편하다. 

 

다음은 MikanOS 환경 구축, edk2 사용법 등을 기록한 사이트이다. 참고하기를 바란다.

https://wikidocs.net/164069

 

03 - MikanOS

[TOC] ## 개요 [사이트](https://github.com/uchan-nos/mikanos) | 항목 | 내용 | | -------- | -------- | |…

wikidocs.net

 

 글을 쓰다보니 두서없이 쓰게 되었다. 이번 글은 환경과 관련된 내용들을 주로 다루었다. 다음 글부터는 보다 개념적인 부분에 대해서도 다룰 예정이다.

반응형