
하나의 지점을 유지하십시오!
Windows의 직접 디버깅을 지원합니다!
- 녹 환경 및 Windows QEMU를 설치해야합니다
- 물론 Linux도 지원합니다. 실제로 크로스 플랫폼입니다.
이 프로젝트의 목표는 별도의 저장소와 별도의 지점에 존재하는 완전한 운영 체제 자습서를 달성하는 것입니다.
"One Operating System Tutorial"은 운영 체제의 텍스트 및 코드 자료를 배우는 데 사용되는 일련의 장으로 정의됩니다. 사용자는이 장을 자연스럽게 읽을 수있어 운영 체제의 개발 이력과 원칙의 기술적 세부 사항을 점차적으로 이해할 수 있습니다. 따라서이 기사의 후속 섹션에서 사용자는 학생이라고하며 사용 프로세스를 학습이라고합니다.
나는이 튜토리얼을 공부하기 전에 학생들이 Rust Language를 잘 이해하고 있다고 가정합니다. 청중에 의해 제약을받지 않고 글을 쓸 때 Rust가 가져온 편리함을 사용하려고 노력하기 때문입니다.
이 튜토리얼을 공부할 때 학생들이 Rust와 운영 체제 자체에 집중할 수 있기를 바랍니다. 따라서 튜토리얼은 사용자가 GIT를 운영하는 데 능숙하지 않아야합니다. git clone 자습서를 얻는 수단 중 하나 일뿐입니다. zip 다운로드 나 다른 사람의 복사 사이에는 필수적인 차이가 없습니다 (물론 버전 관리는 항상 유익합니다). 그리고 그것은 교차 플랫폼을 시도 할 것입니다. 이러한 이유로 빌드 시스템에 추가하려면 일부 플랫폼 관련 작업이 필요할 수 있습니다.
이 튜토리얼은 장 설정이나 컨텐츠에서 혁신을 기대하지 않으며 새로운 커널 기술을 실험하기위한 것도 아니며 Rcore-Tutorial-V3는 충분히 우수합니다. 이 프로젝트는 튜토리얼 구성 과정과 학생들의 학습 경험 에만 중점을 둡니다 (즉,이 두 가지 점을 만들려면 장 설정 및 컨텐츠를 수정하는 것이 허용됩니다). 이를 바탕으로 Rust 메커니즘을 사용하여 "운영 체제 구성"의 코드 양을 줄이고 도서관 구성을 표준화하고 신뢰할 수 있기를 바랍니다.
Rcore-Tutorial-V3의 교과서는 각 장에 일종의 고생물 이름을 부여하여 운영 체제 개발의 역사를 동물의 역사와 연결하여 종종 지루한 교과서에 소설과 흥미를 가져 왔습니다. 각 장에서 학생들은 현대 커널이 무지 시대부터 단계별로 어떻게 발전했는지 배울 수 있습니다.
교과서를 읽는 것은 행복을 가져다 줄 것입니다 - 지식과 진보를 얻는 기쁨; 독서 역사는 또한 행복을 가져다 줄 것입니다 - 천재와 이야기의 기쁨. 그러나 교과서가 실제 역사 책과 비교되면 우리는 무언가를 놓치고있는 것 같습니다. 고대부터 현재까지, 단순에서 전통까지 - 이것은 연대기입니다. 연대기는 간단하고 명확하며 개념을 구축하는 데 도움이되지만 복잡한 성격을 이해하는 데 도움이되지는 않습니다. 운영 체제의 경우 진정한 현대 커널 하위 시스템의 세부 사항을 이해하는 데 도움이되지 않습니다. 서브 시스템의 기능은 종종 존재하지 않고 완전히 도입 할 수없는 다른 관련 서브 시스템으로 제한됩니다. 서브 시스템을 추가 할 때는 새로운 구성 요소의 함수에 적응하기 위해 이전 서브 시스템을 수정해야합니다. 복잡한 시스템은 여러 번 수정해야하거나 다음 장에만 배치 할 수 있으며, 이는 훌륭한 소개가 될 수 있지만 자주 읽을 수 없으며 지속적으로 새로운 튜토리얼로 이어집니다.
다행히도 역사는 다른 선택에 대해 우리에게 말했습니다. 연대기는 역사적 연구를위한 중요한 도구이지만 "역사가의 걸작"이라고 불리는 것은 여전히 경전의 스타일입니다. 중요한 사람에 대한 관점에 집중하고 그의 경험을 단서로 사용할 때마다 종종 역사를 더욱 풍부하게 만듭니다. 아마도 우리는 커널의 다양한 서브 모듈을 무질서하게 소개하는 또 다른 전기 작업이 필요하며, 유아를 떠난 커널 연구원들에게보다 효과적인 참조 책을 가져옵니다. 이러한 참조 북은 자연스럽게 모듈성을 요구해야합니다. 모듈은 장 자체입니다.
이 프로젝트는 여전히 더 나은 튜토리얼에 중점을 둡니다. 그러나 모듈 식 경험은 다른 작품에 도움이됩니다. 이러한 프로젝트가있는 경우, 운영 체제 연구원이 언제든지 읽을 수있는 매뉴얼 인 Rcore-Manual이라고 할 수 있습니다. Rcore-Tutorial이 원래 Rcore를 소개 할 필요가없는 것처럼 Rcore의 영적 속편입니다.
이 프로젝트는 관련 작업 모델이 아니며 의도하지 않습니다 . 당신은 :
따라서이 프로젝트는 WTFPL 오픈 소스를 사용합니다. 마음에 들지 않으면 이름을 변경하거나 포크에서 직접 삭제할 수 있습니다.
또한이 프로젝트는 실험적입니다. 이는 언제든지 디자인 변경, 파괴적인 리팩토링, 이동, 포기 또는 삭제 대상이 있음을 의미합니다.
cargo qemu --ch <n>
QEMU의 n 장에서 운영 체제를 운영하십시오.
선택적 매개 변수 :
--lab CH1에만 유효하며 CH1-LAB를 실행합니다--features <features> CH3, Pass Feature = COOP에만 유효합니다