From 6c9ed0994bae323e6629922ed9a251c48a700664 Mon Sep 17 00:00:00 2001 From: fatmeat Date: Sun, 11 May 2025 22:37:47 +0200 Subject: [PATCH] created roadmap, need some polish and change some of the things, as i am not able to use wayland for my workflow (bad under vm) --- README.md | 164 ++++++++++++++++++++++++++++++++++++++++++- sleepee_sdk/Makefile | 0 source/init.c | 3 + 3 files changed, 166 insertions(+), 1 deletion(-) create mode 100644 sleepee_sdk/Makefile create mode 100644 source/init.c diff --git a/README.md b/README.md index b5499e8..02b4497 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,165 @@ # SleepeeLinux -User Friendly Linux distro tight and complient \ No newline at end of file +User Friendly Linux distro tight and complient + +## link + + - https://www.youtube.com/watch?v=Pzl1B7nB9Kc + - https://www.youtube.com/watch?v=qHGTs1NSB1s + +# Full OS Project Roadmap + +## PHASE 1 – Base OS Foundation + +### Objective + + - Build a minimal Linux-based OS with tight ABI, musl, static core, and dynamic userland. + +___ + - Custom kernel build + - musl-based root filesystem + - Static init system (e.g., s6 or custom shell) + - BusyBox shell environment + - Filesystem layout (/core, /etc, /usr/lib/abi, /home, etc.) + - Nightly build system (Make or Nix) +___ + +### Tasks + + - Patch and build mainline kernel with minimal config + - Build static BusyBox with musl + - Create a shell-based or s6 init system + - Write build scripts to generate bootable ISO or rootfs + - Implement basic bootloader (GRUB or syslinux) + +## PHASE 2 – ABI Layer + Developer SDK + +### Objective + + - Freeze a minimal ABI for app developers to build and ship binaries. + +___ + - /usr/lib/abi with versioned .so files + - /opt/os-sdk/ toolchain with musl-gcc wrapper + - Developer docs and examples + - First binary built and validated +___ + +### ABI Libs to Include + +``` +| Library | Use Case | Notes +| musl libc | C runtime | static or dynamic +| SDL2 | window/input/audio | required for Raylib +| libGL / EGL | OpenGL context creation | Mesa or minimal GL loader +| libm | math | part of musl +| libX11 (opt.) | legacy apps | optional, only if needed(for vm or nvidia) +| Vulkan loader | futureproof graphics | optional, can be added later +``` + +### Tasks + - Package musl, SDL2, libGL as .so into /usr/lib/abi + - Create musl-gcc and pkg-config wrappers + - Write validation tool (ldscan) to check ABI compliance + - Provide example apps + Makefiles + +## PHASE 3 – Graphical Stack and DE Base + +### Objective + + - Lightweight graphical shell environment for average users. + +___ + - Compositer + - Power Menu + - Bar + - Launcher + - Settings GUI (network, user, appearance) +___ + +### Tasks + + - Integrate X11 and/or wayland + - Write graphical session launcher + - Build GUI apps from scratch (with raylib/sdl) + - Start design of your desktop shell (tcsh ?) + +## PHASE 4 – Packaging System + Updates + +### Objective + + - Simple, isolated, non-breaking packaging system for apps. + +___ + - /usr/opt/pkgname-version/ layout + - pkg CLI tool to install/remove + - App registry / manifest format + - Nightly rootfs + rollback support +___ + +### Tasks + + - Write pkg.sh script + - Design atomic rootfs layout (/os/prev, /os/next) + - Nightly rootfs builder with validation + - Add fallback boot logic in bootloader + +## PHASE 5 – Developer-Facing UX + +### Objective + + - Allow devs to easily write and ship apps, especially games. + +___ + - Full dev toolchain + - Dev GUI for building/debugging + - Raylib support +___ + +### Toolchain Stack + +``` +| Tool | Purpose | Info +| musl-gcc | core compiler wrapper | in SDK +| nasm/as | assembler | if writing low-level code +| ld | linker | via toolchain +| make | build system | in SDK +| pkg-config | dependency resolution | with SDK +| qemu | test builds | for CI & VM testing +| strace | syscall inspection | debugging ABI use +| ldscan | custom ELF ABI validator | write your own +| sdl2, raylib | graphics/audio/input | include in ABI +| wlroots | Wayland compositor base | needed for GUI stack +| x11 | gui | needed for GUI stack +``` + +### Raylib Integration Plan + + - Raylib is an ideal match: + - Lightweight + - No external dependencies beyond OpenGL and audio + - Compatible with musl + +#### Tasks: + + - Build Raylib against musl with dynamic SDL2 / OpenGL + - Ship as /usr/lib/abi/libraylib.so + - Provide raylib.pc for pkg-config + - Include raylib examples in SDK + +## Bonus Features (Future Phases) + + - Dev sandboxing with bwrap + - App profiles for permissions (network, fs access) + - Web runtime (WebView2 or Wry) if desired + +## Summary Roadmap Phases + +``` +| Phase | Name | Focus +| 1 | Minimal OS Core | kernel, init, musl, static tools +| 2 | ABI Freeze + Dev SDK | /usr/lib/abi, SDK, build pipeline +| 3 | GUI Stack + Desktop Shell | Wayland, bar, launcher, GUI apps +| 4 | Packaging + Updates | nightly builds, rollback, pkg tool +| 5 | Dev UX + Raylib Support | raylib, graphical dev tools, CI +``` diff --git a/sleepee_sdk/Makefile b/sleepee_sdk/Makefile new file mode 100644 index 0000000..e69de29 diff --git a/source/init.c b/source/init.c new file mode 100644 index 0000000..0eb6e89 --- /dev/null +++ b/source/init.c @@ -0,0 +1,3 @@ +int main(void) { + +}