Twilight OS is a lightweight operating system designed for general-purpose computing, embedded systems & learning purpose. It is written in Rust programming language. It currently supports x86_64 architecture. future plans include support for ARM/RISC-V architecture.
- Lightweight and efficient
- Terminal support (kernel built-in)
- RTC
- ACPI - power off
- VFS, MinixFS V2
- basic unix commands (kernel built-in)
- asynchronous I/O
- memory management
- frame buffer (/dev/fb0)
- ATA
- basic shell with shell history
- SMP detection (no multi-threading yet)
- VFS & RamFS
- Better user friendly Terminal
- asynchronous I/O
- memory management
- PCI device detection
- TFS Filesystem (in heavy development)
- Network Stack
- Userspace utilities (In progress)
- Kernel Level NES Emulator
- DOOM (because why not?)
Twilight OS builds require:
- Rust (nightly, with
x86_64-unknown-none
target) llvm-tools-preview
componentcargo build
with build-stdnasm
(for assembly boot code)ld
(GNU binutils linker)xorriso
(for ISO creation)qemu
(for virtualization)
- Debian / Ubuntu
sudo apt update
sudo apt install build-essential nasm qemu-system-x86 xorriso
rustup target add x86_64-unknown-none
rustup component add llvm-tools-preview
- Fedora
sudo dnf install make nasm qemu-system-x86 xorriso
rustup target add x86_64-unknown-none
rustup component add llvm-tools-preview
- Arch Linux
sudo pacman -S base-devel nasm qemu xorriso
rustup target add x86_64-unknown-none
rustup component add llvm-tools-preview
You can use Homebrew:
brew install nasm qemu xorriso
rustup target add x86_64-unknown-none
rustup component add llvm-tools-preview
We recommend using WSL2 with Ubuntu/Fedora:
- Install WSL2 following Microsoft’s guide
- Inside WSL, follow the same instructions as Linux above
In the workspace directory, run:
make run
On first boot, you must initialize the filesystem:
install
inside the VM shell to format your disk.
Twilight OS documentation is available at https://twilight-os.vercel.app.
Twilight OS is licensed under the BSD-3 Clause License. See the LICENSE file for details.
Contributions to Twilight OS are welcome!