HyperVisor에 대해 공부를 하려고 마음 먹었는데 OS에 대해 뭔가 막연하게 알고 있어서 찝찝했다.

그래서 CodeEngn에 참가했을 때 hakbaby님께 어떤 식으로 접근해야 할지 

지금 이미 공부해본 사람의 입장에서말해달라고 했다. 그러니 


"제가 Hypervisor한다고 했을 때 OS 만들어보라는 이야기를 많이 들었는데, 

그렇게 하지 않아서 후회했다. OS를 만들어 보는 것이 좋다"


라고 하셨다. 그래서 OS를 이해하기 위해 조언을 받았던 OS를 만드는 것을 해야겠다는 결심했다. 

그래서 찾은 책은 [만들면서 배우는 OS 커널의 구조와 원리],

[OS 구조와 원리: OS 개발 30일 프로젝트]이라는 두 권의 책이다. 'OS 만드는 것'에 대해 검색해보니 

먼저 이 부분을 공부한 사람들의 블로그가 있어서 참고 할 예정이다.

http://blog.naver.com/hyuga777/80125531022

http://comcs.tistory.com/29


처음에는 필요한 프로그램을 설치하여 딱 첫 실행되는 화면까지 포스팅하려고 한다.

이에 필요한 프로그램은 아래와 같다.

필요 프로그램

nasm, VM ware, notepad++(있어도 되고 없어도 됨)


이 OS는 NASM으로 만든 img플로피디스크에 넣어서 실행하는 구조인데 이를 가상머신의 플로피디스크

에 넣어야 한다. 나는 Virtual box와 VM ware를 모두 쓰는데 Virtual Box에서 플로피디스크 설정부분을 쉽게 

찾기가 힘들고 이미 VM ware로 OS를 올린 사람이 있어서 VM ware를 사용했다.


원래 NASM과 VM ware 2개만 필요하지만 편의상  notepad++를 추가하였고

이에 따른 설치 및 환경설정 순서는 NASM -> notepad++ -> VM ware 순이다.



1. NASM 설치하기

http://www.nasm.us/

위의 링크에서 NASM을 다운로드 할 수 있는데 최신버전 폴더에 win32에서 nasm파일을 찾으면 된다.

그리고 환경설정을 해줘야 하는데 이 부분은 nasm을 압축을 푼 경로를 복사하여

컴퓨터 환경변수 창에 넣어주면 된다.

▲환경변수 설정

2. VM ware 설정하기

위에서 말했다시피 플로디스크에서 OS의 이미지를 가져오므로 VM Ware에서 Floppy Disk를 추가해야한다.

아래 그림에 따라 setting 부분으로 가서 add를 하여 floppy disk를 추가하면서 만들어진 .img 파일을 선택한다.


▲플로피 디스크 추가

▲플로피 이미지 사용

▲ .img 파일을 추가

▲마무리( Connect at power on 체크!)


3. notepad++사용

지속적으로 nasm을 사용할 건데 편집하고 cmd 창에서 명령어를 실행하는 것이 불편하므로 이를 해결하기

위해 notepad++을 이용하기로 했다. notepad++은 무료 툴이므로 쉽게 다운 받을 수 있다.

www.notepad-plus-plus.org/

noptpad++에서는 유용한 플러그인이 많은데 그중에서 손쉽게 실행 시킬 수 있는 npp exec를 

사용할 것이다. 설치에 관한 내용은 여러 블로그에 나와 있으니 참조하면 된다. 

▲notepad++의 nppexec

Execute를 누르거나 [F6] 누르면 대화상자가 하나 뜨면서 입력할 수 있다. 

이 부분에 내가 편집한 프로그래밍 언어(python, c 등등 여기서는 asm)들을 실행 할 수 있도록 경로를 설정

해두고 빠르게 단축키로 실행할 수 있도록 하여 편리함을 제공한다. 여기서 내가 겪었던 어려움은

notepad++에서 자체적으로 제공하는 변수들에 대해 잘 몰라서 (FULL_CURRENT_PATH)만을 알았다.

그래서 .asm을 .img로 컴파일 할 때 [파일명.asm.img]가 되는 황당스러운 일이 발생했다. 

물론 실행에는 전혀 문제가 없지만 그냥 기분이 안좋다. 그래서 알아보니

$CURRENT_DIRECTORY)$(NAME_PART)가 있다는 것을 알았고 SET을 통해 변수를 하나 만들어서

적용하였다. 

▲nppexec의 실행시 나타나는 대화상자


SET obj =  $(CURRENT_DIRECTORY)\$(NAME_PART)

C:\Users\kcats\Desktop\Tools\nasm-2.11.05-win32\nasm-2.11.05\nasm.exe -f bin -o $(obj).img  $(FULL_CURRENT_PATH)

UNSET obj


드디어 끝이 났다. NASM으로 컴파일을 하고 난뒤에 나온 결과물인 .img파일을  VM ware 의 Floppy disk에 

넣어서 실행하면 아래와 같이 나온다.!

 

▲실행 성공!





  1. her. 2014.08.12 14:32 신고

    우왕~~~되게 자세하고 이해가 잘되요!! 감사합니다~~~~~!!!

  2. her.2 2014.08.12 15:26 신고

    이거 보고 차근히 다시 공부해야게써요ㅋㅋㅋㅋㅋ

  3. her.2 2014.08.12 15:26 신고

    이거 보고 차근히 다시 공부해야게써요ㅋㅋㅋㅋㅋ

  4. firehack 2014.09.29 15:28 신고

    안녕하세요 검색하다 우연히 들려서 좋은 글 잘 보고 갑니다. 설명을 이해하기 편하게 적어주셔서 머리에 쏙쏙 들어오네요 감사합니다^^

    • kcats kcats 2014.10.04 20:06 신고

      오!! 감사합니다
      이해가 잘 된다고 하니 다행이네요

      사실 제가 설명을 정말 못하거든요 흙흙

  5. wowwow 2014.11.01 17:41 신고

    정말 큰도움되었습니다.

  6. 감사합니다. 2015.06.22 20:47 신고

    어셈블리 맹이라서 일단 어셈블리부터 배우고 와야겠군요... 잉... @_@...
    하도 어렵고 더럽고 귀찮아서 안 배우려고 했는데... 역시 OS 만들려면 어쩔 수가 없는 거군요.
    잘 읽고 있습니다!

+ Recent posts