| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A hobby x86-64 operating system written in C and Assembly. Doom runs in userland today; the long-term target is reliable boots on real hardware.
| Platform | Requirements |
|---|---|
| Linux | gcc, make, ld, qemu-system-x86_64 |
| macOS | docker, make, qemu-system-x86_64, optional x86_64-elf toolchain via Homebrew |
An x86_64-elf cross-compiler is preferred; the build falls back to the host compiler when unavailable.
make binutils # build the native binutils toolchain into build/bin/
make userland # build libc and user programs only
make build # build kernel + disk image (runs userland build when needed)
make run # launch meniOS in QEMU
make check # run cppcheck against kernel sourcesTo point at a custom toolchain:
export MENIOS_HOST_CC=/opt/cross/bin/x86_64-elf-gcc
export MENIOS_CROSS_PREFIX=x86_64-elf # default prefixMeniOS ships with a growing collection of userland utilities in /bin:
All binutils tools fully operational on meniOS!
# In meniOS shell (/bin/mosh)
cd /HOME
# Assemble, link, and inspect a binary
as --64 -o hello.o HELLO.S
ld -o hello hello.o
objdump -d hello
nm hello
# Create a static library
ar rcs libhello.a hello.o
ranlib libhello.a
nm libhello.a
# Analyze binaries
size hello
readelf -h hello
strings helloThe complete binutils 2.45 suite is fully operational on meniOS with native metadata support on tmpfs and FAT32. Core tools, including ar and ranlib, now preserve permissions when working in /tmp or FAT-based paths; read-only pseudo filesystems (/dev, /proc) continue to refuse metadata changes by design.
Implementation Details:
Verification: Complete native validation sweep performed on 2025-10-29 confirmed all 11 tools working correctly.
See issue #191 (CLOSED) for the complete binutils integration documentation.
app/ user programs (doom helpers, shell utilities, demos) build/ generated artifacts (kernel, userland, disk images, SDK) docs/ architecture notes, roadmaps, design references include/ exported kernel/libc headers (mirrors source hierarchy) src/ kernel and shared libc sources test/ Unity-based host tests and stubs user/ libc runtime pieces (crt0, stdio glue) shared by apps vendor/ third-party dependencies (uACPI, doomgeneric, binutils) tools/ build helpers and automation scripts
Bug reports, documentation updates, and code patches are welcome. Start with the issues tagged good first issue or nice to have, and check tasks.json because it is the source of truth for tracked work. Keep C and assembly changes on the existing two-space, brace-on-same-line style, and update tests or docs when behavior changes. The full workflow lives in CONTRIBUTING.md and CODING.md. Please also review the Code of Conduct and Security Policy before submitting changes.
MeniOS is released under the MIT License. See LICENSE for details.
Key third-party components:
Special thanks to the broader OSDev community and everyone sharing documentation and tooling that make projects like this possible.
| Back | FazBrowse Home | New Git URL |