티스토리 뷰
가상의 OS 이미지를 생성해서 부트로더가 이미지를 읽을 수 있게 하려고 한다. 순간 floppy 디스크 를 읽는 방법 설명이 나오며 BIOS 를 사용하여 디스크를 읽는 소스가 나왔을 때 어떻게 진행을 해야할 지 고민을 했다.
지금은 읽기위해서 테스트용 소스를 사용하니까 뒤에 가서 해결 할 까도 고민했지만 QEMU 메뉴얼을 보니 img 파일을 floppy 에 연결해서 기동할 수 있다는 사실을 알았다. (qemu 사랑합니다..ㅠ)
전에 사용하던 명령어: qemu-system-x86_64 -L . -m 64 -hda ./Disk.img -localtime -display curses
변경 된 명령어 : qemu-system-x86_64 -L . -m 64 -fda ./Disk.img -localtime -display curses
(-fda 가 첫 번째 floppy disk 에 마운트해서 기동해 준다.)
이제 전에 작성한 BootLoader.asm 소스에 인터럽트를 사용하여 읽는 소스를 추가한다.
https://github.com/KNero/os-study/blob/master/00.BootLoader/BootLoader.asm
그리고 가상의 이미지 소스를 추가한다.
https://github.com/KNero/os-study/blob/master/01.Kernel32/Source/VirtualOS.asm
새로만든 VirtualOS 를 빌드하는 make 파일을 추가하고 root 의 make 파일도 수정한다.
추가 : https://github.com/KNero/os-study/blob/master/01.Kernel32/makefile
수정 : https://github.com/KNero/os-study/blob/master/makefile
그리고 실행하면 책에서 나온 것과 같이 읽은 데이터 만큼 숫자가 출력되는 것을 볼 수 있다.
지금 환경에 맞게 도커에서 OS 공부를 할 수 있다는 사실에 너무 감동스러웠다...
'OS 개발' 카테고리의 다른 글
#4 보호 모드 커널로 진입 (0) | 2019.02.07 |
---|---|
#2 makefile 생성, BootLoader.asm 작성, qemu 실행 (0) | 2018.12.22 |
#1 개발환경 세팅 1 (0) | 2018.12.21 |