https://github.com/denver-code/sspos
Small os for pet-project
https://github.com/denver-code/sspos
bootimage os osdev rust x86-64
Last synced: 10 months ago
JSON representation
Small os for pet-project
- Host: GitHub
- URL: https://github.com/denver-code/sspos
- Owner: denver-code
- License: mit
- Created: 2022-10-18T21:03:52.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-24T04:49:39.000Z (over 2 years ago)
- Last Synced: 2025-02-11T18:14:16.990Z (about 1 year ago)
- Topics: bootimage, os, osdev, rust, x86-64
- Language: Rust
- Homepage:
- Size: 339 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
git clone https://github.com/denver-code/sspos
cd sspos
Install the required tools with `make setup` or the following commands:
curl https://sh.rustup.rs -sSf | sh
rustup install nightly
rustup default nightly
cargo install bootimage
## Usage
Build the image to `disk.img`:
make image output=video keyboard=qwerty
Run sspos in QEMU:
make qemu output=video nic=rtl8139
Run natively on a x86 computer by copying the bootloader and the kernel to a
hard drive or USB stick (but there is currently no USB driver so the filesystem
will not be available in that case):
sudo dd if=target/x86_64-sspos/release/bootimage-sspos.bin of=/dev/sdx && sync
sspos will open a console in diskless mode after boot if no filesystem is
detected. The following command will setup the filesystem on a hard drive,
allowing you to exit the diskless mode and log in as a normal user:
> install
**Be careful not to overwrite the hard drive of your OS when using `dd` inside
your OS, and `install` or `disk format` inside sspos if you don't use an
emulator.**
## How to build module
cargo build --package sspos --bin --release
## Tests
Run the test suite in QEMU:
make test
## License
sspos is released under MIT.