본 포스트를 시작하기 전, VM과 윈도우 간의 공유폴더가 설정되어있다는 하에 진행합니다.
* 전 안돼서 그냥 복붙머신 했어요 클립보드 공유 최고
우선 다음과 같은 C 코드를 짭니다.
해당 코드는 간단하게 비디오 세그먼트 부분에 HelloWorld를 쓰는 코드이다. 컴파일은 gcc를 이용하여 다음과 같이 진행한다.
첫번째 명령어는, gcc를 이용하여 main.c 코드를 obj 코드로 바꾸는 코드이다.
두번째 명령어를 이용하여 main.img를 얻는데, 해당 코드를 메모리의 0x10200에 올리겠다는 의미이다.
마지막 명령어는 main.img에서 필요한 부분만 추출하여 disk.img를 만들어 낸다.
여기까지 하면, disk.img를 읽기 위해 기존에 짰던 코드에 수정이 필요하다.
기존의 al은 1을 넣었는데, 이번에는 섹터 두개를 읽어야 하므로 al에 2를 넣는다.
기존에는 jmp $ 로 같은 구간을 반복했는데, jmp 0x10200을 이용하여 main.img쪽으로 넘어가준다.
마지막으로 boot.asm과 kernel.asm을 다시 컴파일 한 후, 해당 명령어를 이용하여 기존에 asm으로 짰던 파일들과 디스크 파일을 합친다.
* 결론 : 윈도우에 gcc 깔면 우분투가 필요하지 않습니다
** 2차 결론 : 세그먼트 에러떠서 (^^) 코드 수정 필요합니다 전 자러감
'Project > OStrial in AMAZON' 카테고리의 다른 글
#n+1 이제 키보드 입력을 통한 쉘을 만들어봅시다. (0) | 2019.11.24 |
---|---|
#n 중간 건너뛰고 키보드 드라이버 처리 (0) | 2019.11.24 |
#4 어셈블리_함수 (0) | 2019.10.16 |
#3 Protected Mode (0) | 2019.10.09 |
#2 이제 하드디스크를 읽어봅시다 (커널 로드) (0) | 2019.09.18 |