Tiny fixes
This commit is contained in:
parent
d780a72358
commit
dad1b1b3cb
10
Dockerfile
10
Dockerfile
@ -1,10 +0,0 @@
|
||||
FROM rust:latest as builder
|
||||
WORKDIR /usr/src/gila
|
||||
COPY . .
|
||||
RUN rustup default nightly
|
||||
RUN rustup target add x86_64-unknown-none
|
||||
|
||||
FROM alpine:3.21
|
||||
RUN apk add bash xorriso make limine qemu-system-x86_64
|
||||
CMD ["/bin/bash"]
|
||||
|
38
README.md
38
README.md
@ -5,14 +5,35 @@ Gila is a Rust microkernel OS, inspired by the Xinu embedded OS, as well as Linu
|
||||
|
||||
## Features
|
||||
|
||||
### Complete
|
||||
|
||||
- Builds for multiple architectures
|
||||
- Valid Limine kernel
|
||||
- Boots on `x86_64`
|
||||
- Kernel command line parameters
|
||||
- Display console (work in progress)
|
||||
- Serial console (unstarted)
|
||||
- Multi-architecture support:
|
||||
- `aarch64`: in progress
|
||||
- `loongarch64`: in progress
|
||||
- `riscv64`: in progress
|
||||
- `x86_64`: mostly complete
|
||||
- Logging
|
||||
|
||||
### In-Progress
|
||||
|
||||
- Multi-architecture feature support
|
||||
- Display console
|
||||
- Serial console
|
||||
|
||||
### Future/Desired
|
||||
|
||||
- Code execution
|
||||
- Interrupts and timers
|
||||
- Context switching
|
||||
- Process scheduling
|
||||
- Shell and CLI
|
||||
- System calls (multi-convention?)
|
||||
- Multi-user support and access control
|
||||
- Simultaneous multiprocessing support
|
||||
- ACPI, USB, PCI(e), SATA
|
||||
- Filesystem support (FAT32)
|
||||
- Application sandboxing/permissions control
|
||||
- Graphical desktop environment
|
||||
- Networking support
|
||||
|
||||
## Licensing
|
||||
|
||||
@ -22,7 +43,6 @@ Licensed under the GNU Public License v3. See [LICENSE](LICENSE) for details.
|
||||
|
||||
- [arch/](src/arch/): Architecture specific features like the display, serial, and interrupts. Each architecture is a subfolder, containing a file or module for each feature.
|
||||
- [boot.rs](src/boot.rs): Handles bootloader-managed data structures. Gila uses Limine. Other bootloaders are NOT supported.
|
||||
- [lib.rs](src/lib.rs): Glue to make all files accessible from [main.rs](src/main.rs).
|
||||
- [log.rs](src/log.rs): Logging structures and singletons for logging to serial or the display.
|
||||
- [main.rs](src/main.rs): The entry point that gets called by the bootloader.
|
||||
- [memory.rs](src/memory.rs): Types relating to memory regions and allocation.
|
||||
@ -56,8 +76,6 @@ By supplying `TARGET=(rustc target triple)` as an additional argument, you can c
|
||||
You can install all these dependencies automatically by using `nix-shell` and
|
||||
supplying [shell.nix](shell.nix) as an argument.
|
||||
|
||||
TODO: The dockerfile is kinda broken and display forwarding does not work.
|
||||
|
||||
## 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.
|
||||
|
@ -2,7 +2,6 @@
|
||||
#![allow(unused_variables)]
|
||||
|
||||
use vga;
|
||||
pub use vga::writers::TextWriter;
|
||||
|
||||
pub struct TextDisplay {
|
||||
writer: vga::writers::Text80x25,
|
||||
|
@ -1,5 +1,3 @@
|
||||
#![allow(dead_code)]
|
||||
|
||||
use limine::{BaseRevision, request::*};
|
||||
|
||||
#[used]
|
||||
|
@ -1,7 +1,6 @@
|
||||
#![no_std]
|
||||
#![no_main]
|
||||
#![feature(allocator_api)]
|
||||
#![allow(unused_imports)]
|
||||
|
||||
mod arch;
|
||||
mod boot;
|
||||
@ -12,14 +11,11 @@ mod params;
|
||||
mod process;
|
||||
mod resources;
|
||||
|
||||
use crate::arch::current;
|
||||
use crate::boot::*;
|
||||
use crate::log::*;
|
||||
use crate::memory::alloc::{self, format, string::String, vec};
|
||||
use crate::memory::alloc::{format, string::String, vec};
|
||||
use crate::params::*;
|
||||
|
||||
use acpi::{AcpiResult, AcpiTable};
|
||||
|
||||
#[unsafe(no_mangle)]
|
||||
unsafe extern "C" fn main() -> ! {
|
||||
// Assert supported bootloader version
|
||||
|
Loading…
Reference in New Issue
Block a user