Apiofirm is an operating system for IA32-compatible architectures, eventually AMD64, themed around bees.
Very few, however:
- Printing to screen, formatted.
- Interrupts & IRQS.
- Functional keyboard handler.
- Functional keyboard layout.
Apiofirm boots using the CRXBOOT1 & CRXBOOT bootloaders. Note: CRXBOOT1 may also be referred to as BOOT.
BOOT supports searching for a Stage-1 Executable File (common extension .kb
) in the root directory
of a FAT12 filesystem. It is a 512-byte boot sector, stage 1 boot loader.
Specifically, it searches for crxboot.kb
.
CRXBOOT supports searching for a Stage-2 Executable File (common extension .k
) in any directory
in a FAT12 filesystem. It is an ELF file and a Stage-1 Executable File, stage 2 boot loader.
Specifically, it searches for /Boot/system.k
.
Requires an i686 Cross Compiler with a system root in the toolchain/
directory of the project root.
To build apiofirm, simply run make
in the project root. This will build BOOT, CRXBOOT, the kernel,
and a floppy image which stores these files.
Alternatively, you may manually build each file, or run make
in the project root for each target separately,
or just make image
since that makes all of them, at the moment, or do whatever.
In order for Apiofirm to build correctly, a standard include file, located in toolchain/lib/gcc/i686-elf/11.1.0/include
named stddef.h
needs to be modified.
Specifically, you will need to replace definitions for uppercase NULL with lowercase null. Apiofirm uses lowercase null for consistency
with true and false. This can be done by navigating to the aforesaid directory and executing the command sed -i 's/#define NULL/#define null/g' stddef.h
.