Hacker News new | ask | show | jobs
by wila 1249 days ago
The FAQ says it runs on pretty much all RPI's. So you can also use it on an old Raspberry Pi you might have laying around. It doesn't have to be a RPi 4.
1 comments

RP2 is quad-core, 900MHz and 1000000kB of RAM, a behemoth compared to the single-core 20 MHz and 2kB of RAM chips (ATMega328p aka Arduino Uno, which actually runs at 16MHz) I was comparing it to in the embedded world.

My point stands: Raspberry Pi is huge. Even old models like RP2 give you 6-orders-of-magnitude more RAM and 2-orders-of-magnitude more Compute power. Its just not the kind of processor I think of that needs to be run "bare-metal", or even "something more efficient than Linux needs to be installed on here".

Its interesting that Ultibo is aiming for the Rasp. Pi. I'm curious what kinds of use cases people will find for it.

RPi2 is pokey enough that you really feel the limitations of the platform when you put Linux on it. Sure, you can run the kernel, but you are going to want to stop short of, say, any web browser that can function well on today’s web. Even a RPi4 isn’t a good daily driver for web browsing.

Part of the magic of these bare metal language environments is that you run against your own limits before you reach the limits of the hardware, especially in a hobby coding context. Linux makes it much easier to outstrip the CPU and RAM available in RPis.

> Its just not the kind of processor I think of that needs to be run "bare-metal", or even "something more efficient than Linux needs to be installed on here".

People do run RTOS'es on these size of processors, mainly for latency control but you still want beefier processors / RAM. An RPi4 (normally) is cheaper than some Arduino / MCU kits.

Also, RTOS'es can be easier to build and keep stable for years which helps with embedded projects where you don't want to update your linux kernel and drivers every 6 months.

Baremetal makes less sense though. Well other than for hobbyist reasons IMHO since you tend to need lots of drivers to make them functional which isn't true for many MCUs. I'd guess this is a hobby project for the fun/joy/masochism of running baremetal.

I'm looking through the Wiki, and calling Ultibo "bare metal" seems like a misnomer.

I see threads, filesystems, networking (Ethernet) and even graphics drivers here. I dare say that Ultibo is more feature complete than an OS like FreeRTOS.

Its a weird marketing choice. Maybe Ultibo's developers aren't very familiar with the language of embedded programs, but I'd call Ultibo a Pascal oriented Operating System for the Raspberry Pi. Just my personal opinion on this matter.

"operating system" is not super well defined term, and the distinction is definitely bit blurry when it comes to unikernels like this.

To me maybe useful distinction is if the thing is able to function by itself, so is it a system by itself, or does it need additional pieces to become a whole system. Going by this categorization for example Linux is not an operating system by itself because you also need userland to function.

That being said, wikipedia does categorize unikernels as "library operating systems" https://en.wikipedia.org/wiki/Operating_system#Library

But if we accept that unikernels are operating systems, then the obvious question is what set services push something from library/framework to operating system. Is a disk/file-system driver an operating system? Its not like DOS did provide much more than that afterall.

I don't see Ultibo calling itself a "bare metal" environment anywhere on the site, really. It's pretty clear that it kind of provides an operating system. The title of the link seems to have been editorialized by the submitter.
The wiki starts with:

> What is Ultibo?

> Ultibo core is a full featured environment for embedded or bare metal (without an operating system) development on Raspberry Pi (all models except Pico). It is not an operating system itself but provides many of the same services as an OS such as memory management, threading, networking and file systems.

https://ultibo.org/wiki/Main_Page#What_is_Ultibo.3F

sounds like they made an OS without noticing that they did that :D
I believe as per this link they actually support VideoCore IV and the associated libraries (not ported to Pascal though) and that allows access to the camera module as well:

https://forums.raspberrypi.com/viewtopic.php?t=193560