Building software from the ground up means questioning every dependency, every abstraction layer, every byte of bloat. uctils is my answer to the pervasive complexity in modern Unix utilities—a collection of hand-crafted assembly and C programs that do one thing well, with minimal overhead.
This project emerged from work on DuskOS, where every kilobyte matters. When you're building an operating system from scratch, you can't afford the luxury of GNU coreutils or even BusyBox. You need tools that are small, fast, and transparent.
Philosophy
Traditional Unix utilities have evolved over decades, accumulating features, compatibility layers, and dependencies. They're powerful but opaque. uctils strips everything back to the essentials—direct syscalls, minimal logic, maximum clarity.
Each utility is written in x86_64 assembly for Linux 3.0+, targeting raw performance. If you want to understand what echo or cp actually do at the kernel level, read the source. It's all there, unobscured by layers of abstraction.
Current Programs
-
shout
Echo text to stdout (like echo)
-
spew
Output file contents (like cat)
-
copy
Copy files (like cp)
-
move
Move/rename files (like mv)
-
destroy
Remove files (like rm)
-
affect
Change File timestamp, create file if it doesn't exist (like touch)
-
inhumate
Kill a process (like kill)
-
mussel
A minimal program-runner shell
Building
The build process is deliberately simple. Each utility can be assembled independently with NASM and linked with ld. No build systems, no autotools, no CMake—just direct invocation of the assembler.
The resulting binaries are tiny. Where a typical coreutils echo might be 30-40KB, shout compiles to under 1KB. This isn't just academic—it matters for embedded systems, minimal containers, and understanding system behavior.
What's Next
The roadmap includes essential utilities like goto (cd), contents (ls), and vte (a minimal visual text editor). Beyond core utilities, I'm exploring networking tools like get (wget/curl) and higher level apps like calc.
Ultimately, these will all make their way to my independent, ultra minimal distro, Dusk.
View source:
github.com/janmarkus-dev/uctils
Released under the Unlicense—truly public domain. Use it, modify it, learn from it.