Meskipun P1C0 dimulai sebagai alat taman bermain dan penelitian untuk Mac M1, saat ini menuju kernel sederhana dan mungkin OS lengkap di masa depan yang menargetkan 2021 MacBook Pro 14 ".
OS sebagian besar ditulis dalam karat, dengan beberapa bit perakitan di sana -sini untuk berinteraksi dengan perangkat keras. Saat ini memiliki dukungan untuk threading dasar di EL1 dan beberapa driver untuk berinteraksi dengan perangkat keras (seperti driver HID untuk keyboard melalui protokol transport SPI).
Dapatkan sumber dari GitHub dengan:
git clone https://github.com/javier-varez/p1c0Dengan asumsi Anda memiliki kargo yang diinstal di sistem Anda, Anda akan membutuhkan beberapa ketergantungan untuk membangun dan menguji proyek:
# 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-gnuUntuk menjalankan simulator, Anda akan memerlukan versi QEMU dengan dukungan untuk Apple M1 Pro. Anda dapat menemukan versi ini di sini, dan rilis terbaru di sini.
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 Ini akan membuat file .macho di fw/p1c0.macho . Untuk menginstal objek ini ke komputer Anda, Anda dapat mengikuti instruksi di sini.
$ cargo tJangan ragu untuk berkontribusi pada proyek ini dan membuka masalah. Kontribusi yang dihargai termasuk, tetapi tidak terbatas pada:
Mengenai kontribusi kode, pastikan untuk memformat semua kode dengan rust-fmt .
Beberapa kode ini didasarkan pada penelitian fantastis yang dilakukan oleh Marcan dan orang -orang baik di balik proyek Asahi Linux.
Selain itu, beberapa kode awal (seperti file Exceptions.RS) didasarkan pada rust-raspberrypi-os-Tutorial dari organisasi yang ditanamkan karat.