mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-21 10:40:00 +00:00
42159d1af86a2c8bae32443f8fb76bfe274b5787
CLeonOS
Experimental x86_64 operating system project with a C kernel, Rust-assisted runtime pieces, user-space ELF apps, and a stage-based development history.
Highlights
- x86_64 kernel booted by Limine
- RAM-disk VFS layout (
/system,/shell,/temp,/driver) - Virtual TTY subsystem (multi TTY, ANSI handling, cursor, PSF font support)
- Keyboard and mouse input stack, plus desktop mode on TTY2
- User-space ELF app model with syscall ABI (
int 0x80) - User shell with external command apps (
ls,cat,grep,mkdir,cp,mv,rm, etc.) - Pipe and redirection support in user shell (
|,>,>>) - Optional host-side CLeonOS-Wine runner (Python + Unicorn) in
wine/
Repository Layout
.
|- clks/ # Kernel sources (arch, drivers, scheduler, tty, syscall, ...)
|- cleonos/ # Userland runtime, libc-like layer, user apps, Rust user library
|- ramdisk/ # Static files copied into runtime ramdisk
|- configs/ # Boot configuration (Limine)
|- cmake/ # Shared CMake scripts (tool checks, logging, limine setup)
|- docs/ # Stage documents and syscall reference
|- wine/ # Host runner for CLeonOS user ELF (no full VM required)
|- CMakeLists.txt # Main build definition
|- Makefile # Developer-friendly wrapper around CMake targets
Build Requirements
Minimum required tools:
cmake(>= 3.20)makegittarxorrisosh(POSIX shell)rustc- Kernel/user toolchain (resolved automatically with fallback):
- kernel:
x86_64-elf-gcc/x86_64-elf-ld(or fallbackgcc/clang+ld.lld) - user:
cc+ld
- kernel:
For building Limine from source, install extras such as autoconf, automake, libtool, pkg-config, mtools, and nasm.
For runtime:
qemu-system-x86_64(formake run/make debug)
Quick Start
git clone <your-repo-url>
cd cleonos
git submodule update --init --recursive
make run
If you already have Limine artifacts and want to skip configure:
make run LIMINE_SKIP_CONFIGURE=1
Common Targets
make setup- check tools and prepare Liminemake kernel- build kernel ELFmake userapps- build user-space ELF appsmake ramdisk- package runtime ramdiskmake iso- build bootable ISOmake run- launch QEMUmake debug- launch QEMU with-s -Sfor GDBmake clean- cleanbuild/x86_64make clean-all- clean all build output
Debugging (GDB)
Start debug VM:
make debug
Attach in another terminal:
gdb build/x86_64/clks_kernel.elf
(gdb) target remote :1234
User Shell Examples
help
ls /shell
cat /shell/init.cmd
grep -n exec /shell/init.cmd
cat /shell/init.cmd | grep -n exec
ls /shell > /temp/shell_list.txt
Documentation
- Stage index:
docs/README.md - Syscall ABI reference:
docs/syscall.md
CI
GitHub Actions workflow build-os.yml builds the OS ISO on push and pull request, and uploads the ISO as an artifact.
Contributing
- Fork and create a feature branch.
- Keep changes stage-oriented and update docs when behavior changes.
- Run at least
make isobefore opening a PR. - Include boot log snippets or screenshots for kernel/user visible changes.
License
Apache-2.0. See License.
Languages
C
80.1%
Python
14.4%
CMake
4.3%
PowerShell
0.5%
Makefile
0.4%
Other
0.2%