I started u-root in 2011 because I did not want to do a yocto or onei or
buildroot ever again. u-root has found wide application in firmware. U-root
runs on anything Go runs on. Andrea Barisini has even targeted Go to bare
metal with Tamago, and u-root runs there too. Tinygo can compile much of it
to its 200 bare metal targets as well.
The late Andrey Mirtchovski, known to many of you, contributed a lot to the
early going.
I should not digress too much from TUHS here, so I'll leave it at that.
On Fri, Feb 28, 2025 at 7:41 PM Warner Losh <imp(a)bsdimp.com> wrote:
On Fri, Feb 28, 2025, 7:11 PM Dan Cross <crossd(a)gmail.com> wrote:
On Fri, Feb 28, 2025 at 7:26 PM segaloco via TUHS
<tuhs(a)tuhs.org> wrote:
Given that anything that obeys the ABI and has
assembler entries to the
kernel
can request services, it seems to me it would be
possible to stand up a
user-land without C being present. Have any UNIXen ever done this
after the
advent of C?
Kind of. u-root is a userland in Go, but is more targeted towards
embedded applications (Ron will correct me if I am mistaken there)
Yea. It's reason to exist is for LinuxBoot scripting, though lots of other
uses are possible. I know it from LinuxBoot...
uutils is a Rust reimplementation of most of the GNU coreutils tools,
but not (I don't think) the C library.
Correct. Rust uses it's own library for system calls. This is a never
ending series of problems for FreeBSD since the C API sometimes differs
slightly with what's passed to the kernel and those seemingly trivial
differences cause bugs. Also, new system calls can take a while (years) to
appear. FreeBSD moved inodes to 64 bits 10 years ago and it was only in the
last years that rust stopped using the old 32bit inode system calls.
Warner
- Dan C.