summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandromeda <andromeda@lenovo>2026-03-06 16:53:18 +0100
committerandromeda <andromeda@lenovo>2026-03-06 16:53:18 +0100
commitd35463e1959cb64828c3166527b06e4a79cbea5e (patch)
tree65017b84447f63eaaac8326c6d18f5c5e34e6bac
parentfdf5bb9daf8574b7f993e2e38e400c35aedc3b96 (diff)
reorganise
-rw-r--r--README.md46
-rw-r--r--bootle/.cargo/config.toml (renamed from .cargo/config.toml)0
-rw-r--r--bootle/CHANGELOG.md (renamed from CHANGELOG.md)0
-rw-r--r--bootle/Cargo.lock (renamed from Cargo.lock)0
-rw-r--r--bootle/Cargo.toml (renamed from Cargo.toml)0
-rw-r--r--bootle/README.md28
-rw-r--r--bootle/package.nix (renamed from nix/pkgs/bootle.nix)4
-rw-r--r--bootle/rust-toolchain.toml (renamed from rust-toolchain.toml)0
-rw-r--r--bootle/src/lib.rs (renamed from src/lib.rs)0
-rw-r--r--bootle/src/linker.ld (renamed from src/linker.ld)0
-rw-r--r--bootler/CHANGELOG.md7
-rw-r--r--bootler/README.md43
-rw-r--r--bootler/asm/boot.asm (renamed from asm/boot.asm)0
-rw-r--r--bootler/asm/kernel.asm (renamed from asm/kernel.asm)0
-rw-r--r--bootler/package.nix (renamed from nix/pkgs/bootler.nix)2
-rw-r--r--flake.nix7
-rw-r--r--nix/package.nix47
17 files changed, 89 insertions, 95 deletions
diff --git a/README.md b/README.md
index e206ab9..3a9246b 100644
--- a/README.md
+++ b/README.md
@@ -2,53 +2,15 @@ Call me Terry Davis because... actually please don't. I have visions: aspiration
# bootle
-hobby kernel written in rust. It's just for playing around... for now :p
+hobby kernel
-run with `nix run git+https://git.mtgmonkey.net/andromeda/bootler#bootle`
+status: basically nothing, come back later
# bootler
-hobby bootloader written in asm. It's just for playing around... for now :p
+hobby 1-stage legacy mode bootloader
-run with `nix run git+https://git.mtgmonkey.net/andromeda/bootler#bootler`
-
-### memory map
-
-```
-+------ 0x00100000 ------+
-| hardware, bios stuff |
-+------ 0x00080000 ------+
-| |
-| |
-+------ 0x00010200 ------+
-| x86_64 kernel |
-+------ 0x00010000 ------+
-| |
-| |
-+------ 0x00009000 ------+
-| IDT |
-+------ 0x00008000 ------+
-| |
-| |
-+------ 0x00007E00 ------+
-| bootloader (boot.asm) |
-+------ 0x00007C00 ------+
-| stack | TODO get real stack
-+------ 0x00005000 ------+
-| PT |
-+------ 0x00004000 ------+
-| PDT |
-+------ 0x00003000 ------+
-| PDPT |
-+------ 0x00002000 ------+
-| PML4T |
-+------ 0x00001000 ------+
-| |
-| |
-+------ 0x00000500 ------+
-| bios stuff |
-+------ 0x00000000 ------+
-```
+status: gets to long mode, loads+jumps to kernel, starts idt and gdt... :)
---
diff --git a/.cargo/config.toml b/bootle/.cargo/config.toml
index 74cdc7b..74cdc7b 100644
--- a/.cargo/config.toml
+++ b/bootle/.cargo/config.toml
diff --git a/CHANGELOG.md b/bootle/CHANGELOG.md
index 53c30a7..53c30a7 100644
--- a/CHANGELOG.md
+++ b/bootle/CHANGELOG.md
diff --git a/Cargo.lock b/bootle/Cargo.lock
index f69efc7..f69efc7 100644
--- a/Cargo.lock
+++ b/bootle/Cargo.lock
diff --git a/Cargo.toml b/bootle/Cargo.toml
index c4d5b40..c4d5b40 100644
--- a/Cargo.toml
+++ b/bootle/Cargo.toml
diff --git a/bootle/README.md b/bootle/README.md
new file mode 100644
index 0000000..da47027
--- /dev/null
+++ b/bootle/README.md
@@ -0,0 +1,28 @@
+# bootle
+
+hobby kernel written in rust. It's just for playing around... for now :p
+
+run with `nix run git+https://git.mtgmonkey.net/andromeda/bootler#bootle`
+
+### memory map
+
+```
++------ 0x00100000 ------+
+| hardware, bios stuff |
++------ 0x00080000 ------+
+| |
+| |
++------ 0x00010200 ------+
+| kernel |
++------ 0x00010000 ------+
+| bootloader stuff |
+| includes stack, gdt, |
+| idt for the time being |
++------ 0x00000500 ------+
+| bios stuff |
++------ 0x00000000 ------+
+```
+
+---
+
+this project follows [Common Changelog](https://common-changelog.org) guidelines
diff --git a/nix/pkgs/bootle.nix b/bootle/package.nix
index 99bdb55..a5de5eb 100644
--- a/nix/pkgs/bootle.nix
+++ b/bootle/package.nix
@@ -6,14 +6,14 @@
qemu,
...
}: let
- rust-toolchain = rust-bin.fromRustupToolchainFile ../../rust-toolchain.toml;
+ rust-toolchain = rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
naersk' = callPackage naersk {
cargo = rust-toolchain;
rustc = rust-toolchain;
clippy = rust-toolchain;
};
in (naersk'.buildPackage {
- src = ../../.;
+ src = ./.;
# deps for rust-src
additionalCargoLock = "${rust-toolchain.availableComponents.rust-src}/lib/rustlib/src/rust/library/Cargo.lock";
diff --git a/rust-toolchain.toml b/bootle/rust-toolchain.toml
index 22068c5..22068c5 100644
--- a/rust-toolchain.toml
+++ b/bootle/rust-toolchain.toml
diff --git a/src/lib.rs b/bootle/src/lib.rs
index adc1aab..adc1aab 100644
--- a/src/lib.rs
+++ b/bootle/src/lib.rs
diff --git a/src/linker.ld b/bootle/src/linker.ld
index b523bc5..b523bc5 100644
--- a/src/linker.ld
+++ b/bootle/src/linker.ld
diff --git a/bootler/CHANGELOG.md b/bootler/CHANGELOG.md
new file mode 100644
index 0000000..eff4a62
--- /dev/null
+++ b/bootler/CHANGELOG.md
@@ -0,0 +1,7 @@
+# Changelog
+
+## [0.1.0] - 2026-03-06
+
+### Added
+
+- initialised CHANGELOG.md
diff --git a/bootler/README.md b/bootler/README.md
new file mode 100644
index 0000000..bf50ce2
--- /dev/null
+++ b/bootler/README.md
@@ -0,0 +1,43 @@
+# bootler
+
+hobby bootloader, 1-stage, legacy mode :p
+
+run with `nix run git+https://git.mtgmonkey.net/andromeda/bootler#bootler`
+
+### memory map
+
+```
+. .
+: :
+| longmode kernel |
++------ 0x00010000 ------+
+| |
+| |
++------ 0x00009000 ------+
+| IDT |
++------ 0x00008000 ------+
+| |
+| |
++------ 0x00007E00 ------+
+| bootloader (boot.asm) |
++------ 0x00007C00 ------+
+| stack |
++------ 0x00005000 ------+
+| PT |
++------ 0x00004000 ------+
+| PDT |
++------ 0x00003000 ------+
+| PDPT |
++------ 0x00002000 ------+
+| PML4T |
++------ 0x00001000 ------+
+| |
+| |
++------ 0x00000500 ------+
+| bios stuff |
++------ 0x00000000 ------+
+```
+
+---
+
+this project follows [Common Changelog](https://common-changelog.org) guidelines
diff --git a/asm/boot.asm b/bootler/asm/boot.asm
index 5291d58..5291d58 100644
--- a/asm/boot.asm
+++ b/bootler/asm/boot.asm
diff --git a/asm/kernel.asm b/bootler/asm/kernel.asm
index b4cbb30..b4cbb30 100644
--- a/asm/kernel.asm
+++ b/bootler/asm/kernel.asm
diff --git a/nix/pkgs/bootler.nix b/bootler/package.nix
index 3e5d2e4..4e18816 100644
--- a/nix/pkgs/bootler.nix
+++ b/bootler/package.nix
@@ -9,7 +9,7 @@ in
stdenv.mkDerivation {
pname = "bootler";
version = "0.1.0";
- src = ../../.;
+ src = ./.;
buildPhase = ''
${nasm}/bin/nasm asm/boot.asm -o boot.bin
${nasm}/bin/nasm asm/kernel.asm -o dummy.bin
diff --git a/flake.nix b/flake.nix
index 81b9289..a631534 100644
--- a/flake.nix
+++ b/flake.nix
@@ -18,14 +18,15 @@
...
}: let
system = "x86_64-linux";
- pkgs = import nixpkgs {
+ pkgs = nixpkgs.legacyPackages.${system};
+ pkgsWithRustOverlay = import nixpkgs {
inherit system;
overlays = [(import rust-overlay)];
};
in {
packages.${system} = {
- bootler = pkgs.callPackage ./nix/pkgs/bootler.nix {};
- bootle = pkgs.callPackage ./nix/pkgs/bootle.nix {
+ bootler = pkgs.callPackage ./bootler/package.nix {};
+ bootle = pkgsWithRustOverlay.callPackage ./bootle/package.nix {
naersk = naersk;
bootler = self.packages.${system}.bootler;
};
diff --git a/nix/package.nix b/nix/package.nix
deleted file mode 100644
index 3d56a51..0000000
--- a/nix/package.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- stdenv,
- nasm,
- qemu,
- ...
-}: let
- bootImg = "boot";
-in
- stdenv.mkDerivation {
- pname = "bootler";
- version = "0.1.0";
- src = ../.;
- buildPhase = ''
- ${nasm}/bin/nasm asm/boot.asm -o boot.bin
- ${nasm}/bin/nasm asm/kernel.asm -o kernel.bin
-
- dd if=/dev/zero of=${bootImg} bs=512 count=2
- dd if=boot.bin of=${bootImg} conv=notrunc
- dd if=kernel.bin of=${bootImg} bs=512 seek=1 conv=notrunc
- '';
- installPhase = ''
- mkdir -p $out/bin
- cp ${bootImg} $out/bin
-
- # create emulation binary
- cat<<EOF>$out/bin/bootler
- #!/usr/bin/env bash
-
- # create temp dir
- mkdir -p ./.bootler
- cp $(echo $out)/bin/${bootImg} ./.bootler/${bootImg}
- chmod a+w ./.bootler/${bootImg}
-
- # run image
- ${qemu}/bin/qemu-system-x86_64 \
- -nographic \
- -drive file=./.bootler/${bootImg},format=raw,index=0,media=disk
-
- # clean up
- rm ./.bootler -r
-
- EOF
-
- chmod +x $out/bin/${bootImg}
- chmod +x $out/bin/bootler
- '';
- }