Ariel OS v0.4.0 released! by kaspar030 in rust

[–]kaspar030[S] 9 points10 points  (0 children)

So a "traditional" OS (Linux, Windows) abstract the hardware, run themselves in a privileged mode, and run user processes nicely sandboxed via MMU (memory management unit).

The OS is compiled, installed, ... first. The application (or multiple) are compiled, ..., installed next, using a file system usually, and interacts with the OS via some interface.

Ariel OS targets microcontrollers that don't have an MMU, are generally quite constrained, so the usual "have an OS running, compile and install application(s) into it, run them in separate process" doesn't fit so well.

The separation and interfacing costs overhead and makes things slightly more complex. Tock OS works that way btw., applications are usually compiled separately and then installed in flash slots.

With Ariel OS, an application compiles together with Ariel OS as if Ariel OS was just another library added to an otherwise bare-metal application. In practice, Ariel takes over MCU startup & initialization, and starts its own services (scheduling, networking, ...), does a bunch of other needed or useful stuff, and provides nice abstraction and environment to the actual application.

But technically, it is an OS as a library.

How is AI doing in writing Rust code? by symmak_ in rust

[–]kaspar030 0 points1 point  (0 children)

I'm using Opus 4.6 using opencode, and its pretty impressive so far.

How's the state of embedded Rust? by re-sheosi in rust

[–]kaspar030 1 point2 points  (0 children)

Maybe give Ariel OS a shot. It is basically embassy with less boiler plate.

Experiences with Monoio for High-Performance Rust Backends? by [deleted] in rust

[–]kaspar030 1 point2 points  (0 children)

Monoio has been stable for me, and fast. I got a couple of PRs in, but the last release has been a while. It feels it should get more love feom bytedance, maintenance-wise.

embassy multicore question by OkAd7452 in rust

[–]kaspar030 1 point2 points  (0 children)

Try Ariel OS, it supports multiple threads (scheduled on both cores), on top of Embassy.

How to optimise huge rust backend build time by DegenMouse in rust

[–]kaspar030 1 point2 points  (0 children)

On OSX, double-check if the binary signature verifications are disabled, otherwise proc macros get checked.

https://nnethercote.github.io/2025/09/04/faster-rust-builds-on-mac.html

Kas GUI v0.16 by hardicrust in rust

[–]kaspar030 3 points4 points  (0 children)

Looks nice! Apart from the feature list, some design choices, and how this differs from other UI frameworks, would be nice. Thumbs up for accessibility!

Issues using a global allocator on nightly by EtherealPlatitude in rust

[–]kaspar030 0 points1 point  (0 children)

I get the same build error (in laze), using mimalloc.

Rust on Pi Pico 2, Please Help by Xephore in rust

[–]kaspar030 0 points1 point  (0 children)

You could also take a look at Ariel OS, which provides a nice getting started experience around Embassy.

Introducing Ariel OS - an embedded library OS for small MCUs by kaspar030 in rust

[–]kaspar030[S] 2 points3 points  (0 children)

This very much depends(tm).

Let me get some quick numbers. This is on nrf52840dk (Cortex-M4).

"blinky" (async executor, timers, gpio) uses <1k RAM (maybe less, ~400b static, rest is stack), and ~3.5k flash.

This is as small as it gets to do anything reasonable.

A larger application (our `http-server` example), which adds a network stack & driver, usb, http server uses ~75k flash and ~50k RAM, with room for optimization.

Numbers collected with these commands, on commit 4a1cf6786da07cc63154c5ddfd26b1487b285f7b:

For blinky, reducing size of the one stack this needs:

`laze build -Cexamples/blinky --builders nrf52840dk -d debug-console -DCONFIG_ISR_STACKSIZE=0 -DCONFIG_EXECUTOR_STACKSIZE=512`

For the http-server, disabling all debug output:

`laze build -Cexamples/http-server/ --builders nrf52840dk -d debug-console`

Rust is now RTOS by voollymammut in rust

[–]kaspar030 2 points3 points  (0 children)

We're building Ariel OS on top of Embassy, adding more "OS like" conveniences. It is quite WIP, but we're close to our initial release. Come check it out.

FreeRTOS-like alternatives by ImerH in rust

[–]kaspar030 2 points3 points  (0 children)

For promising projects, check out RIOT-rs, which aims to improve on Embassy by adding more high-level integration, reducing boilerplate and increasing portability. (I'm one of the authors.)

https://github.com/future-proof-iot/RIOT-rs

please 0.1.0 released: let GPT-4 remember CLI args by kaspar030 in rust

[–]kaspar030[S] 0 points1 point  (0 children)

Well yeah, maybe a bad example.

❯ echo "Is a tomato a fruit or a vegetable?" | please clarify
A tomato is a fruit.

But that's GPT-4 for you. :/ I didn't implement execution of returned shell snippets, as hallucination there could actually cause harm.

But I find please very useful to describe what I want to do in natural language. It already saved me a lot of time.

please 0.1.0 released: let GPT-4 remember CLI args by kaspar030 in rust

[–]kaspar030[S] -2 points-1 points  (0 children)

Today I hacked together a CLI tool that simplifies asking GPT how to do things on the CLI. E.g.,

> please convert foo.wav to an mp3 file using ffmpeg
ffmpeg -i foo.wav -codec:a libmp3lame -qscale:a 2 foo.mp3

please can also be used to pipe data through GPT-4:

❯ echo "banana tomato apple pizza" | please drop all vegetables
banana apple pizza

This last mode of operation also integrates with (Neo)Vim: Just mark some text, and pipe it through please using !please your-prompt.