1. 7

There are some very cool projects already using Ultibo, such as a Z80 emulator capable of running CP/M, and an Oberon RISC emulator capable of running Oberon Project Oberon, with low-level access to the hardware.


  2. 2

    Not really any reason here why you would choose Ultibo, from the FAQ:

    Why would I use Ultibo instead of Linux or Windows IoT?

    That’s up to you but sometimes it makes sense for a particular project to not have the extra overhead of a full operating system. Just as both Linux and Windows have their place, so does Ultibo

    I am familiar with the problems of a ‘full fat’ OS can be (e.g. real-time and memory issues, though memory on a pi is plentiful) but this does not exclude Ultibo from not being similarly limited, right? I could solve these problems with RTOS/etc too.

    Bothers me when someone obviously does a good deal of no doubt quality work, but then forces anyone stumbling into their project to do a pile of work just to figure out what it is and why you would use it.

    1. 2

      I think the authors assume familiarity with the concept of and use case for a unikernel OS. If you’re a pascal programmer who wants a simple way to package your app without the overhead of a full OS, this is your package.

      1. 1

        There are also some POSIX-ish unikernel systems (OSv and Rumpkernels (which are based on the NetBSD kernel and drivers), come to find), along with some from scratch designs, such as the OCaml-based Mirage and some fall in-between like IncludeOS, all of which include documentation and papers that are worth investigating, if you want to read the pros of the unikernel concept. There are also a whole bunch of negative things and papers denouncing the approach as well, which should be easy enough to find.

        1. 1

          Did some reading and Unikernels: The Rise of the Virtual Library Operating System appears to be the seminal work, and http://unikernel.org/projects/ mentions a few interesting projects I wasn’t aware of that haven’t been mentioned, such the unikernel frameworks Clive for Go, HaLVM for Haskell, and Erlang on Xen.

          1. 1

            I would say that Ultibo unikernel is unique and can be recommended because of the same reasons why one might recommend Modern Pascal/Object Pascal over C. In this use case, Pascal has all the modern trimmings like classes, units, interfaces, generics, but it is also a very safe language; type-safety, including safe pointers, and an impossibility to shoot yourself easily, for example, with format-string errors, which makes it easier to write better code (or at least harder to write terrible and vulnerable, exploitable code). All this, while still letting you get down to the hardware at a level comparable to developing in C make Ultibo preferable to using a C-based RTOS.

            Edit: Saw this over on HN - http://castle-engine.io/modern_pascal_introduction.html