mirage
oberon-riscv
Our great sponsors
mirage | oberon-riscv | |
---|---|---|
32 | 5 | |
2,425 | 71 | |
0.9% | - | |
8.7 | 0.0 | |
14 days ago | over 3 years ago | |
OCaml | Modula-2 | |
ISC License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mirage
-
Gokrazy – Go Appliances
Interesting, and thanks.
I didn't know about those. I kind of thought you may have used MirageOS, which I had read about earlier. It is done in OCaml.
https://mirage.io/
- Mirage – A programming framework for building type-safe, modular systems
-
What's Zig got that C, Rust and Go don't have? [video]
Unix system programming in OCaml (2014)
https://ocaml.github.io/ocamlunix/
"MirageOS is a library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms."
https://mirage.io/
-
PostgreSQL reconsiders its process-based model
That was/is part of the promise of the whole unikernel thing, no?
https://mirage.io/ or similar could then let you boot your database. That said, it's not really taken off from what I can tell, so I'm guessing there's more to it than that.
-
Writing an OS in Rust to run on RISC-V
MirageOS is not Rust, but in the ballpark!
https://mirage.io/
-
Container runtime as a static binary?
OCaml MirageOS? https://mirage.io/
- OCaml 5.0 Multicore is out
- Ask HN: Operating Systems built with functional languages?
-
Is there an operating systems that is a runtime of a programming language?
MirageOS is a runtime for OCaml to create unikernels. They describe themselves as "library operating system". Probably not quite what you were asking for, but I think it's quite interesting for certain use cases (e.g. running services as standalone unikernels in VMs or embedded devices instead of "traditional" programs on top of a general purpose OS).
oberon-riscv
-
Project Oberon
This project is still a great example of a complete computer design, starting from Niklaus Wirth's own RISC5 CPU (not a RISC-V) and very simple peripherals over the OS, runtime/garbage collector, compiler, GUI and simple example applications.
One problem of the original implementation is that it was based on an old Xilinx Spartan 3 development board. This is not only no longer available, but it is one of the few FPGA boards that used 32 bit wide fast (12 ns IIRC) asynchronous SRAM chips. Wirth's hardware design relies heavily on this.
Some years ago, there was a compatible board, the OberonStation. However, it seems this is no longer manufactures: https://pcper.com/2015/12/meet-the-oberonstation-kid-friendl...
However, some modified designs exist that implement a cache in FPGA block RAM and an SDRAM controller. These can be used one more recent FPGA boards:
- FleaFPGA "Ohm" board with a Lattice ECP5 FPGA and 32 MB RAM (https://fleasystems.com/fleaFPGA_Ohm.html) - https://github.com/Basman74/Oberon_SDRAM
- Radiona ulx3s, another ECP5 in an open source design (https://github.com/emard/oberon) - https://github.com/emard/oberon
- PapilioPro using a Xilinx Spartan 6 LX, another open source PCB design (https://papilio.cc/index.php?n=Papilio.PapilioPro) - https://opencores.org/projects/oberon_sdram
Shameless plug: my student Rikke's port of Project Oberon to RV32I (this is a real RISC-V), however, we still need to find some time to build an FPGA-based SoC. Currently, it runs in emulation: https://github.com/solbjorg/oberon-riscv
-
New Oberon+ programming language with IDE and source-level debugger (Win, Mac, Linux)
You might want to have a look at https://github.com/solbjorg/oberon-riscv.
-
Ultiboberon – Oberon on bare metal Raspberry Pi
Thanks for the link!
Adapting the Project Oberon compiler code generation isn't that difficult, but the devil is in the details :). My student Rikke described some of the challenges porting Project Oberon to RISC-V in her project report (https://github.com/solbjorg/oberon-riscv/blob/master/report....).
I assume that the most time-consuming task to get Project Oberon to run on ARM/Raspberry Pi would be to write device drivers for more complex devices, e.g. USB and Ethernet. These could be written in Oberon (which would be a considerable effort) or possibly be abstracted by using a bare-metal hypervisor that supports VirtIO device abstractions, e.g. Vmware ESXI. This way, one would only have to implement VirtIO drivers in Oberon, which is considerably less complex.
Connecting a PS/2 keyboard and mouse instead of USB might also be an alternative, since drivers for PS/2 are far less complex: http://www.deater.net/weave/vmwprod/hardware/pi-ps2/
- Project Oberon 2013 on RISC-V
What are some alternatives?
unikraft - A next-generation cloud native kernel designed to unlock best-in-class performance, security primitives and efficiency savings.
Oberon - Oberon parser, code model & browser, compiler and IDE with debugger
Carp - A statically typed lisp, without a GC, for real-time applications.
ultiboberon
linuxkit - A toolkit for building secure, portable and lean operating systems for containers
A2OS - Unofficial mirror of the ETH A2 repository
Mezzano - An operating system written in Common Lisp
THM-Oberon
Lupine-Linux - Linux in Unikernel Clothing
fynedesk - A full desktop environment for Linux/Unix using Fyne
console - a debugger for async rust!
oberonc - An Oberon-07 compiler for the JVM