Initial commit

This commit is contained in:
nora 2024-09-15 21:02:23 +02:00
commit f0ffa77500
24 changed files with 802 additions and 0 deletions

1
quarterdeck/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/target

7
quarterdeck/Cargo.lock generated Normal file
View file

@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "quarterdeck"
version = "0.1.0"

10
quarterdeck/Cargo.toml Normal file
View file

@ -0,0 +1,10 @@
[package]
name = "quarterdeck"
version = "0.1.0"
edition = "2021"
[dependencies]
eyre.workspace = true
rustix = { version = "0.38.37", features = ["process", "thread"] }
tracing = "0.1.40"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }

3
quarterdeck/README.md Normal file
View file

@ -0,0 +1,3 @@
# quarterdeck
The init system, PID 1.

26
quarterdeck/src/main.rs Normal file
View file

@ -0,0 +1,26 @@
use eyre::Result;
use tracing::{error, info, warn};
fn main() {
tracing_subscriber::fmt().init();
info!("Booting up system");
if let Err(err) = run() {
error!(?err, "Failed to boot system");
}
// uh.. i dont think we should exit?
}
fn run() -> Result<()> {
if let Err(err) = rustix::thread::set_no_new_privs(true) {
warn!(?err, "Failed to set PR_SET_NO_NEW_PRIVS");
}
std::process::Command::new("/bin/cog")
.env("PATH", "/bin")
.spawn()?
.wait()?;
loop {}
}