P1C0はM1 MACの遊び場と研究ツールとして始まりましたが、現在、2021 MacBook Pro 14 "をターゲットにしたシンプルなカーネルと将来の完全なOSに向かっています。
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-raspberrypi-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os-os tutorialに基づいていました。