树莓派3 및 ARMv8-AArch64 아키텍처를 기반으로 마이크로 운영 체제 커널이 구현됩니다.
이 프로젝트는 overview + subprojects 형태로 구성됩니다. overview 모든 코드를 저장합니다. 각 subproject 불필요한 파일을 필터링하는 (컴파일에서 제외)를 포함하여 자체 요구에 따라 이러한 코드를 사용합니다.
이 프로젝트는 최신 C++ 언어를 사용하여 개발되었으며 주요 대상 아키텍처는 ARMv8 입니다. 프로젝트에서 사용하는 컴파일러는 g++ 이므로 코드에는 __attribute__ , __asm__ 와 같은 g++ 의 구문 확장이 포함됩니다.
또한 컴파일하십시오
이 프로젝트는 eclipse ( version > = 4.6.3 )를 기반으로합니다. 컴파일 할 때는 적절한 eclipse 버전을 사용해야합니다. Windows , Linux 또는 MacOS 에서 File 선택 -> Open Projects from File System -> Directory 클릭하고 프로젝트가있는 디렉토리를 선택하고 열기 -> Finish
이 프로젝트에는 주로 host , qemu_virt , raspi3 및 user_space 여러 하위 프로젝트가 있습니다.
이러한 구성의 해당 목표 (아키텍처)는 다음과 같습니다. 호스트 호스트 운영 체제 (주로 메모리 관리 및 기타 아키텍처 독립적 기능을 테스트하는 데 사용), QEMU 시뮬레이션 (가상 메모리, 인터럽트 등을 테스트하는 데 사용), Raspberry PI 3 (포괄적 인 검증에 사용) 및 사용자 공간의 프로그램을 기반으로 한 개발 및 개발.
모든 하위 프로젝트는 하위 프로젝트 아래에 있습니다.
이 프로젝트는 몇 가지 특별한 건설 목표를 구성했습니다. 프로젝트의 Build Targets 참조하십시오.
커널에서 글로벌 변수의 사용을 피하는 것은 실제로 정의 해야하는 모든 글로벌 변수를 초기화하기 위해 특별히 사용될 수 있습니다. 이러한 변수는 컴파일 기간 동안 이미 공간을 할당했기 때문에 사용하기 편리합니다. 사용해야하는 경우 정의에서 한 번 정의하고 초기화 기능에서 한 번 재정의하십시오.
프로젝트 구성이 변경되면 모든 Eclipse 환경이 내보내므로 새 명령 줄을 다시 시작해야합니다.
프로젝트 진행 개요 참조 진행 상황 _current.md
프로젝트 레코드 참조 recording_note.md
하위 프로젝트의 구조 및 구성, 하위 프로젝트/readme.md를 참조하십시오.
진행중인 (아마도 미트 라이센스, 그러나 다시 닫힐 수 있습니다. 이제는 반쯤 열리고 반쯤 닫았습니다).
아니요, 대신 posix로 만드십시오.
나중에 여기에서 참조 될 수있는 일부 코딩 규칙을 따르십시오.
나중에 게시 될 수있는 문서를 읽으십시오
QEMU를 사용하여 일부 데모 스트레이트 프로그램을 디버그합니다
커널 코드를 변경하십시오.
그런 다음 git add -a && git commit && git 푸시!
여기를 참조하십시오. 외부 문서도 참조하십시오.
RSP3-ARMV8-BAREMITAL, 원래 프로젝트.
Linux, Linux, 공식적으로.
QEMU, 많은 도움이되는 에뮬레이터.
GVER의 GVISOR, GOEL의 사용자 공간 커널.
이름이 말한 것처럼 사용자 모드 Linux (UML).
X2, Bochs의 고대 커널.
BZT의 RASPI3 튜토리얼은 초보자에게 매우 유용합니다.
ARMV8 Hello World, QEMU를 기반으로 ARMV8의 Hello World 예제, 초보자에게 유용합니다.