코드 적응을 지원하는 "30 일 수제 운영 체제"(Kikaru Kawasaki가 작성). 저자는 자신이 쓴 비표준 도구 세트를 사용했으며 비 창문 플랫폼에서 실행할 수 없었기 때문에이 프로젝트는 NASM, GCC, QEMU 및 기타 도구를 사용하여 원래 코드를 기반으로 컴파일하고 실행합니다.
이 프로젝트는 0 일에서 28 일의 내용을 완료했으며 (28 일 일본의 일본 디스플레이 부품 제외) 프로젝트의 주요 구현이 완료되었습니다. 이 책의 마지막 두 장의 내용은 더 응용 프로그램 지향적 이므로이 프로젝트에서는 구현되지 않습니다. 관심있는 친구는 이전 기준에 따라 계속 완료 할 수 있습니다.
nasmgccbinutilsqemu-system-i386mtoolsgdb (디버그 사용)기본 Xcode 명령 줄 도구는 GCC를 MACOS에서 Clang의 별칭으로 사용합니다. 이 프로젝트 구현에서는 Clang이 테스트되지 않았으며 문제가있을 수 있습니다.
Mac에서 컴파일에 x86_64-elf-gcc 툴체인을 사용하는 것이 좋습니다. brew install x86_64-elf-gcc x86_64-elf-binutils x86_64-elf-gdb 를 설치할 수 있습니다.
해당 폴더를 입력하고 다음 명령으로 실행하십시오.
$ make qemu
# 若使用工具链包含前缀,如x86_64-elf-,可以使用GCCPREFIX
$ make qemu GCCPREFIX=x86_64-elf- GDB를 사용하여 디버그하려면 DEBUG 설정하십시오.
$ make qemu DEBUG=1app : 응용 프로그램 소스 코드include : 시스템 커널 헤더 파일kernel : 시스템 커널 코드libc : 간단한 C 표준 라이브러리 부분 구현 strcmpstrncmpXV6 구현을 참조하십시오.
vsprintfsprintf"C 프로그래밍 언어"에서 :
rand이 프로젝트는 29 일과 30 일부터 계속 콘텐츠를 추가하지 않을 것입니다. 관심있는 친구들은 다음 장을 계속 읽을 수 있습니다.
io_stihlt 대신 io_sti 를 사용하면 타이머 실행이 고정됩니다. __alloca 는 28 일에 유효하지 않으며 sosu2 실행할 수 없습니다 프로젝트에서 코드의 저작권은 주로 원래 저자에 속합니다. 직접 실행할 수없는 부분에 대한 코드를 부분 수정 만합니다.