TLDR: Ultibo is a bare-metal environment written completely in Free Pascal. Because it supports multi-threading you can see it as Unikernel Operating System. You develop your bare-metal program in Lazarus IDE in Free Pascal and use Ultibo as (unikernel) library for your application. After compilation you get the Raspberry Pi image file which you put on your SD-card and run the program on RPI - baremetal. It has support for USB, Ethernet, FAT, NTFS, ...
I knew holding on to my Pascal textbook since the 80s would come in handy one day. :)
In all seriousness though, I would like to understand this a bit better as I have not heard of this project before. Is Ultibo actually written in assembler, and then when you compile your Pascal program the assembler boot modules along with the compiled program code are merged together? To me, bare-metal means assembler, or if you're really hardcore, binary.
It doesn't necessarily mean assembly, just the absence of a separate operating system. It looks like Ultibo is mostly written in Pascal, with a small amount of inline assembly to initialize the hardware, etc.
I think the line there is blurry. If someone said "bare metal Smalltalk" I'd probably assume they were referring to a Smalltalk VM running directly on the hardware.
Bare metal Java exists, because Java-oriented CPUs were and are a thing.
Have you realized that every smart card you have, like a bank card, or a SIM card in your phone, runs Java code inside, using such a Java-optimized CPU? https://en.wikipedia.org/wiki/Java_Card