이 코드는 여러 곳에서는 그렇게 적합하지 않을 수 있으며 조만간 재현 할 수 있습니다. 새로운 창고 복구. 구덩이를 채우기 위해 돌아 오기를 기다리십시오. Refactored 버전 : https://github.com/yiezias/recover-os
이 프로젝트는 "운영 체제 진실 복원"에 의해 구현 된 운영 체제의 AMD64 아키텍처 (또는 x86_64 아키텍처) 버전을 기반으로합니다. 주요 아이디어와 코드는 원래 책과 일치합니다.
"운영 체제 진실 복원"에 의해 구현 된 운영 체제는 32 비트 X86 아키텍처 프로세서에서 실행되지만 이제는 이미 64 비트 시대에 들어 왔습니다. 그래서 나 복사 64 비트 버전을 구현하려면 "운영 체제 진실 복원"의 코드를 참조하십시오.
$ make run Bochs 에뮬레이터를 컴파일하고 시작할 수 있습니다.
이 운영 체제에는 2048 년, 뱀 및 기타 미니 게임이 내장되어 있습니다.
복구로 코드 쓰기 :
(터미널은 입력 및 출력 리디렉션을 구현하지 않으며 아래 고양이는 Linux의 고양이와 다릅니다)
(텍스트 파일 쓰기 기능을 보여주십시오)

2048 미니 게임 :

욕심 많은 뱀 (프레임 드롭은 심각하기 때문에 애니메이션을 놓아주지 않을 것입니다) :

내가 읽은 가장 이해하기 쉬운 관련 책은 내가 읽고, 상세하고 흥미롭게 든다. 조금 길어 보이더라도 저자는 여전히 독자들이 이해할 수 있도록 다양한 방법을 시도해야합니다 (어디에서 친근한 책을 찾을 수 있습니까?). 많은 운영 체제 관련 서적 중에서 나는 마침내이 책을 선택했습니다. 이해할 수있는 유일한 사람 운영 체제의 도서 구현.
주로 AMD64와 X86 아키텍처의 차이
AMD64 아키텍처에서 함수는 일반적으로 레지스터를 사용하여 매개 변수를 전달하고 X86의 함수 호출 규칙에는 참조 값이 없습니다. 그러나 스스로 이해하기 쉽습니다. C 함수를 자세히 작성하여 어셈블리로 컴파일 한 다음 GCC로 작성하여 이해하게됩니다. 이 지식은 개발 과정에서 여러 곳에서 필요합니다.
긴 모드는 64 비트로 이해할 수 있습니다 특징 보호 모드에서 프로세서는 실제 모드에서 보호 모드로 전환 한 다음 긴 모드로 전환해야합니다.
정보를 얻는 가장 편리한 방법은 물론 검색 엔진이지만 검색 엔진은 종종 원하는 콘텐츠를 찾을 수 없으며 진정한 권위있는 정보는 여전히 AMD 또는 Intel 문서입니다.
이 시스템은 시스템 호출의 구현을 방해하는 방법을 완전히 포기하고 Syscall Sysret Fast System Call 명령어를 사용하여 구현합니다. 자세한 내용은 AMD 또는 Intel 문서를 참조하십시오. 콘텐츠는 복잡하지 않습니다.
저자의 파일 시스템은 잘 쓰여지지 않습니다. 한편으로, 파일 시스템은 이미 상당히 복잡하지만 저자는 종종 수백 개의 함수 라인을 사용하며 일부 코드는 재사용 될 수 있지만 반복적으로 구현해야하므로 전체적으로 매우 혼란 스럽습니다. 이 시스템 파일 시스템은 저자의 주요 변화와 동일하지만 저자의 책과 코드를 기반으로 이해하기 어렵지 않아야합니다. 이 시스템의 파일 시스템은 디렉토리 수준 기능을 구현하지 않지만 시스템의 다른 기능의 구현에는 영향을 미치지 않으므로 생략됩니다.
저자의 쉘은 커널로 구현됩니다. 이 시스템은 쉘을 애플리케이션으로 사용하고 INT 프로세스는 EXECV 시스템 호출을 사용하여 루트 디렉토리 쉘을로드합니다. 저자 시스템의 많은 내장 명령 도이 시스템의 응용 프로그램으로 직접 구현됩니다. 그러나 코드 레벨은 비슷합니다. 또한 운영 체제 인터페이스를 호출하여 응용 프로그램을 독립적으로 구현할 수있는 특수 미니 게임도 있으며이 시스템은 기본적으로 완료됩니다.