Obwohl P1C0 als Spielplatz und Forschungsinstrument für M1 -Macs begann, geht es derzeit in Richtung eines einfachen Kernels und möglicherweise zu einem vollständigen Betriebssystem in der Zukunft auf den 2021 MacBook Pro 14 ".
Das Betriebssystem ist hauptsächlich in Rost geschrieben, wobei hier und da einige Montage -Teile mit der Hardware interagieren. Derzeit unterstützt es eine Basisfaden in EL1 und einige Treiber, um mit der Hardware zu interagieren (wie ein versteckter Treiber für die Tastatur über das SPI -Transportprotokoll).
Holen Sie sich die Quellen von GitHub mit:
git clone https://github.com/javier-varez/p1c0Angenommen, Sie haben eine Fracht in Ihrem System installiert, benötigen Sie ein paar weitere Abhängigkeiten, um das Projekt zu erstellen und zu testen:
# 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-gnuUm den Simulator auszuführen, benötigen Sie eine Version von QEMU mit Unterstützung für den Apple M1 Pro. Sie finden diese Version hier und die neueste Version hier.
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 Dadurch wird eine .macho -Datei in fw/p1c0.macho erstellt. Um dieses Objekt in Ihrem Computer zu installieren, können Sie hier die Anweisungen befolgen.
$ cargo tFühlen Sie sich frei, zu diesem Projekt und offenen Problemen beizutragen. Zu den geschätzten Beiträgen gehören, sind aber nicht beschränkt auf:
Stellen Sie in Bezug auf Codebeiträge sicher, dass Sie alle Code mit rust-fmt formatieren.
Einige dieser Code basieren auf den fantastischen Forschungen von Marcan und den guten Leuten hinter dem Asahi Linux -Projekt.
Darüber hinaus basierte ein früher Code (wie die Datei der Ausnahmen.rs) auf dem Rust-RaspberryPi-OS-Tutorial aus der Rost-in-Betten-Organisation.