You can find more about the Pip protokernel at its website.
The source code is covered by CeCILL-A licence.
The Pip Development Team:
You can generate the "Getting Started" tutorial by invoking make
gettingstarted
. The full documentation is generated by invoking make doc
.
Pip is known to build correctly with this toolchain:
You can pass several arguments to make to compile the Pip.
all
: Build targetproofs
: Proofs targetqemu-elf
| qemu-iso
: QEMU targetsdoc
| doc-c
| doc-coq
| gettingstarted
: Documentation targetstoolchain.mk
: Configure script targetclean
| realclean
: Clean targetsEach partition is located into src/arch/{architecture}/partitions/{partition}
src/partitions/{architecture}/toolchain.mk.template
to
src/partitions/{architecture}/toolchain.mk
, then edit the latter to your
needs.minimal
partition as a base to develop more elaborated
software.make
in the partition's
directory.The kernel is divided into three parts.
_CoqProject
is a mandatory configuration file for Coq.src/
contains the source base directory.src/core
contains the Pip source folder.src/extraction
contains the code to extract Coq services.src/interface
contains the interface between Coq and C.src/model
contains the Coq code.src/arch/x86_multiboot/MAL
contains the Memory Abstraction Layer source.src/arch/x86_multiboot/boot
contains the "cbits", i.e the required C and
assembly code required to boot the coq kernel.src/arch/x86_multiboot/partitions
contains the top-level partitions.tools/
contains some scripts and tools that may be useful.proof/
contains the Coq proof.Pip can already boot on real hardware. If available, the first serial output (COM1) should be used for debugging output.
The required configuration is 38400 bauds, 8 bits, no parity, one stop bit. You can also enable automatic line feed and carriage return in Minicom (2.7+) for user-friendly output.
The compilation on Linux should be as easy as to install the i386-elf toolchain as well as the other requirements, and use the Makefile to generate a binary image.
Use your favourite package manager to install Coq, Doxygen, GCC, GDB, GNU Make, GRUB, haskell-stack, NASM, QEMU and Texlive.