처음부터 운영 체제 생성. 이 운영 체제는 i386+ 32 비트 인텔 X86 용으로 빌드됩니다. 다른 플랫폼은 작동하지 않을 수 있으며 테스트되지 않았습니다.
필요한 모든 파일을 생성하고 QEMU 에뮬레이터에서 실행되는 make run 입력하십시오. Makefile은 엉망이므로 더 나은 Makefiles에 대한 제안에 감사드립니다.
nasm 부트 로더 조립gcc 커널을 컴파일하고 C 포함 C 라이브러리ld 모든 커널 파일을 함께 연결합니다objcopy 엘프 파일에서 커널 바이너리 생성ar C 라이브러리 라이브러리 생성make Makefile을 실행합니다qemu OS를 실행하려면Windows Linux subsystem :cmd Linux 서브 시스템에서 Windows 명령 사용partcopy 부팅 섹터 생성을위한 Windows CMDimdisk -Floppy 이미지 생성 및 장착을위한 Windows CMDcopy - 플로피 이미지에 파일을 복사하기위한 Windows CMS 이것이 사람들이 Windows와 Linux를 함께 사용하는 것으로 보이게되어 유감입니다. 그래서 누군가 내가 사용할 수있는 제안 및/또는 더 나은 Makefile이 있으면 알려주십시오. Makefiles는 나에게 새로운 것이므로 어떤 변경이 이루어 졌는지, 당신은 그들에게 무슨 일이 일어나고 있는지 이해할 수 있도록 그들을 댓글을 달 수 있습니다. 특히 Linux 명령을 사용하는 Makefile이 가장 좋습니다. 부팅 섹터를 만들기 위해 dd 사용하려고 시도했지만 올바르게 작동 할 수 없었기 때문에 일부 Windows 명령을 타는 방법이 좋습니다. 변경 사항이 있으면 [email protected]로 이메일을 보내주십시오.
필요한 모든 파일을 생성하고 QEMU 에뮬레이터에서 실행할 수 make debug 실행할 수 있습니다. 그런 다음 라인을 .gdbinit에 추가하여 GDB 디버거를 연결하거나 명령을 직접 입력 할 수 있습니다.
set architecture i386
target remote localhost:1234
br *0x7c00
c
이로 인해 부트 로더가 코딩 된 것입니다. 그런 다음 포트 1234 (QEMU의 기본값)의 에뮬레이터에 연결합니다. 그런 다음 부트 로더의 시작 부분에서 중단 점을 설정합니다. OS를 시작하고 부트 로더의 시작 부분에서 멈 춥니 다.
커널의 시작 부분에서 깨지려면로드 된 주소는 0x100000입니다. 따라서 br *0x7c00 br *0x100000 으로 교체하십시오.
당신은 실제 하드웨어에 대한 자신의 위험으로 내 운영 체제를 운영합니다. OS를 실행하여 하드웨어가 손상되지 않을 것이라는 보장은 없습니다. 따라서 안전을 위해 가상 머신 또는 에뮬레이터에서 실행하십시오.