p1c0
1.0.0
P1C0은 M1 MAC의 놀이터 및 연구 도구로 시작했지만 현재 2021 MacBook Pro 14 "를 목표로 향후 간단한 커널을 향해 향하고 있습니다.
OS는 주로 녹음으로 작성되며 여기 저기 어셈블리 비트가있어 하드웨어와 상호 작용합니다. 현재 EL1의 기본 스레딩을 지원하고 일부 드라이버는 하드웨어와 상호 작용할 수 있습니다 (SPI 전송 프로토콜을 통해 키보드의 HID 드라이버와 같이).
GitHub에서 소스를 가져옵니다.
git clone https://github.com/javier-varez/p1c0시스템에화물이 설치되어 있다고 가정하면 프로젝트를 구축하고 테스트하려면 몇 가지 종속성이 필요합니다.
# Install cargo-binutils, used to generate a binary/Mach-o file out of the compiled ELF.
cargo install cargo-binutils
# Assuming you are building this in Ubuntu-20.04. Otherwise check your package manager
# On an m1 mac with macOS p1c0 will just use the built-in clang version
sudo apt update
sudo apt install -y gcc-aarch64-linux-gnu시뮬레이터를 실행하려면 Apple M1 Pro를 지원하는 QEMU 버전이 필요합니다. 여기 에서이 버전과 최신 릴리스를 찾을 수 있습니다.
INSTALL_DIR= ${YOUR_DESIRED_INSTALL_PATH}
OS= $( uname | tr ' [:upper:] ' ' [:lower:] ' )
ARCH= $( uname -m )
curl -OL https://github.com/Javier-varez/qemu-apple-m1/releases/download/Apple_M1_Pro_0.1.3/0.1.3_M1_Pro_ ${OS} _ ${ARCH} .zip
unzip -d ${INSTALL_DIR} /qemu-apple-m1 0.1.3_M1_Pro_ ${OS} _ ${ARCH} .zip
# And finally make it available in your path. You can add this to your .bashrc or .bash_profile
export PATH= ${INSTALL_DIR} /qemu-apple-m1/bin: $PATHcargo rrcargo br fw/p1c0.macho 에서 .macho 파일을 생성합니다. 이 객체를 컴퓨터에 설치하려면 여기에서 지침을 따라갈 수 있습니다.
$ cargo t이 프로젝트에 자유롭게 기여하고 개방적인 문제에 기여하십시오. 감사의 기여에는 다음이 포함되지만 이에 국한되지는 않습니다.
코드 기여와 관련하여 모든 코드를 rust-fmt 로 포맷하십시오.
이 코드 중 일부는 Marcan과 Asahi Linux 프로젝트의 좋은 사람들이 수행 한 환상적인 연구를 기반으로합니다.
또한 일부 초기 코드 (예외와 예 : RS 파일)는 Rust-embedded 조직의 Rust-Raspberrypi-os-Tutorial을 기반으로합니다.