Cleanups and fixes

This commit is contained in:
August 2025-07-06 22:04:47 -04:00
parent 100d1336da
commit ed139f9d0f
Signed by: shibedrill
GPG Key ID: 5FE0CB25945EFAA2
2 changed files with 15 additions and 4 deletions

View File

@ -11,13 +11,13 @@ flagset = "0.4.7"
intbits = "0.2.0"
lazy_static = { version = "1.5.0", default-features = false, features = ["spin_no_std"] }
limine = "0.5.0"
lzma-rs = { git = "https://github.com/glaeqen/lzma-no-std-rs/", version = "0.2.0", default-features = false }
lzma-rs = { git = "https://github.com/glaeqen/lzma-no-std-rs/", version = "0.2.0", default-features = false, optional = true }
num-derive = "0.4.2"
num-traits = { version = "0.2.19", default-features = false }
once_cell = { version = "1.21.3", default-features = false, features = ["alloc", "critical-section"] }
spin = "0.10.0"
talc = "4.4.3"
tar-no-std = { version = "0.3.4", optional = true }
tar-no-std = "0.3.4"
[target.'cfg(target_arch = "x86_64")'.dependencies]
x86_64 = "0.15.2"
@ -38,5 +38,5 @@ default = ["acpi", "dtb", "uefi", "compression"]
acpi = ["dep:acpi"] # Support ACPI
dtb = ["dep:fdt"] # Support device tree blobs
uefi = [] # Enable UEFI dependent features
compression = ["dep:tar-no-std"] # Enable compressed initramfs
compression = ["dep:lzma-rs"] # Enable compressed initramfs

View File

@ -1,5 +1,5 @@
# Gila v0.3.0 - a Rust Microkernel
# Gila v0.3.1 - a Rust Microkernel
Gila is a Rust microkernel OS, inspired by the Xinu embedded OS, as well as Linux. I aim to implement multitasking and different users for processes, and eventually a filesystem. I do not aim to make it POSIX-compatible, but it will likely end up sharing many features with POSIX operating systems.
@ -104,6 +104,15 @@ You do not need to clean any files after making changes. The `lib`, `kernel`, an
> [!NOTE]
> The `-p {profile}` argument must go between `cargo make` and the task argument.
### Features
Gila has four optional features, which I made optional in anticipation of a potential future port to older systems like i686 which might not support modern standards like UEFI or ACPI. They are all enabled by default. Disabling them reduces kernel size and forces the kernel to fall back to other implementations for some functionality like device discovery.
- `acpi`: Advanced Configuration and Power Interface, for device discovery & power management
- `dtb`: Device Tree Blob, for device discovery in embedded systems
- `compression`: Compressed initramfs archive
- `uefi`: UEFI-specific bootloader features
## Kernel Parameters
Kernel parameters are passed as part of the `cmdline` through [limine.conf](limine.conf). The parameters are passed as a space-delimited list of keys and values. Keys begin with a hyphen (`-`), and keys are separated from their values with equals signs (`=`). Keys can have a set of multiple values, separated by a comma (`,`). Gila does not currently support parameter values with spaces. That would require an *actual* parser.
@ -118,6 +127,8 @@ The default behavior for each parameter, when not supplied, is:
`-loglevel=Info -initramfs=/boot/initramfs.tar.lzma`
The `.lzma` extension is removed from the default initramfs name when compression is disabled.
## Credits
The linker script stuff is from [limine-rust-template](https://github.com/jasondyoungberg/limine-rust-template),