diff --git a/Cargo.lock b/Cargo.lock index 4f47b1e..9532f46 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -55,7 +55,7 @@ checksum = "875488b8711a968268c7cf5d139578713097ca4635a76044e8fe8eedf831d07e" [[package]] name = "gila" -version = "0.1.1" +version = "0.2.0" dependencies = [ "flagset", "lazy_static", diff --git a/Cargo.toml b/Cargo.toml index eb61549..3d07adc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "gila" -version = "0.1.1" +version = "0.2.0" edition = "2024" [dependencies] diff --git a/README.md b/README.md index 272eaf6..ee687ed 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# Gila v0.1.1 - a Rust Microkernel +# Gila v0.2.0 - a Rust Microkernel Gila is a Rust microkernel OS, inspired by the Xinu embedded OS. It will hopefully be capable of multitasking some day. I do not intend for Gila to @@ -33,7 +33,7 @@ To build an ISO image that you can boot, there are several prerequisites: Then run the [build_iso.sh](build_iso.sh) script. It will generate `gila.iso`. -Running the kernel requires qemu. +Running the kernel requires `qemu-system-{ARCH}`. You can install all these dependencies automatically by using `nix-shell` and supplying [shell.nix](shell.nix) as an argument. diff --git a/build_iso.sh b/build_iso.sh index 6cef3dd..ff26208 100755 --- a/build_iso.sh +++ b/build_iso.sh @@ -12,6 +12,8 @@ rm -rf ./iso/ rm ./gila.iso #cargo clean +set -euxo pipefail + mkdir -p ./iso/limine/ cp ./limine.conf ./iso/ cp /usr/share/limine/limine-bios.sys ./iso/limine/ diff --git a/gila.iso b/gila.iso new file mode 100644 index 0000000..82f1517 Binary files /dev/null and b/gila.iso differ diff --git a/iso/gila b/iso/gila new file mode 100755 index 0000000..de215a3 Binary files /dev/null and b/iso/gila differ diff --git a/iso/limine.conf b/iso/limine.conf new file mode 100644 index 0000000..87c02e8 --- /dev/null +++ b/iso/limine.conf @@ -0,0 +1,5 @@ +timeout: 5 + +/Gila + protocol: limine + kernel_path: boot():/gila \ No newline at end of file diff --git a/iso/limine/limine-bios-cd.bin b/iso/limine/limine-bios-cd.bin new file mode 100644 index 0000000..863ef01 Binary files /dev/null and b/iso/limine/limine-bios-cd.bin differ diff --git a/iso/limine/limine-bios.sys b/iso/limine/limine-bios.sys new file mode 100644 index 0000000..1aa8b60 Binary files /dev/null and b/iso/limine/limine-bios.sys differ diff --git a/iso/limine/limine-uefi-cd.bin b/iso/limine/limine-uefi-cd.bin new file mode 100644 index 0000000..a418565 Binary files /dev/null and b/iso/limine/limine-uefi-cd.bin differ diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..271800c --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "nightly" \ No newline at end of file diff --git a/shell.nix b/shell.nix index 858fed4..3f24af2 100644 --- a/shell.nix +++ b/shell.nix @@ -20,7 +20,7 @@ pkgs.mkShell { ]; shellHook = '' - rustup default stable; + rustup default nightly; rustup target add x86_64-unknown-none '';