Skip to content

KFS-1

Compare
Choose a tag to compare
@Orycterope Orycterope released this 24 Aug 21:54
· 1360 commits to master since this release

Introducing KFS

This is the first release of KFS, a soon-to-be glorious micro-kernel based on the designs of HOS/NX.

Features

Screenshot_20190824_234730

Currently doesn't do much, beside printing a hello world to the screen.

The printing is done by writing to the VGA compatible text mode memory. The logger supports colors and line-wrapping. That's pretty much it.

Boot

We use grub as our bootloader for KFS. The Makefile.toml will generate an iso image that you can directly burn onto a CD / USB stick, and boot from. Or it pass to qemu, cause nobody's got time for that.

How to build

This release is pretty outdated, so we provide a roadmap on how to build it.

reveal build instructions

First, make sure to to checkout the kfs1 tag.

git switch --detach kfs1

Xargo

You need to downgrade your version of xargo to v0.3.11. You must do this outside of your repo as the rust-toolchain file would try to compile it with a non-working rustc.

cd ~
cargo install xargo --force --version 0.3.11
cd -

Cargo.lock and Cargo.toml

Because sunrise developers were so young and innocent at that time, they didn't fully realize the crucial importance of a Cargo.lock in a published project. So they didn't think about including it, and it remained that way for quite a while, until they once tried to checkout an old tag and spent half a day just trying to compile it.

Unfortunately history only goes in one way, and commit logs too ( 👀 ), so we provide a patched Cargo.toml as well as its Cargo.lock as DLC in the release files.

Copy them at the root of your repository, and cargo will now fetch the right versions of our dependencies.

grub-mkrescue

Because sunrise developers were lazy-ass monkeys, busy being high on smoking rolled-up intel-specs pretending it's some kind of psychotrope, they used to let all the hard work of creating an iso image be done by grub-mkrescue, while taking all the credit.

This means that depending on your distro, you might need to install:

  • grub
  • mtools

This went on until Thog joined them and created mkisofs-rs, and effectively rescued them, before they fall victim to 8042 withdrawal, and OD trying to snort an A20 line, while attempting to relieve the crave.

nigthly version

Using rust nightly but not specifying which version was a stupid idea in retrospective. Fix that:

echo "nightly-2018-03-15" > rust-toolchain

Building

Now you should finally be able to build and create the boot iso:

cargo make iso

that was easy ...