[squeak-dev] [RE] seL4 Microkernel: How small can the shim be?

ken.dickey at whidbey.com ken.dickey at whidbey.com
Sun Feb 28 16:16:21 UTC 2021


Liam wrote:

> I was not merely looking for a lightweight OS. I had a demanding list
of criteria.

> I looked for:
• a clean, simple OS, with SMP support, that supported pre-emption,
memory management etc.
• in a type-safe language, with a native-object-code compiler — not
JITTed, not using a VM or runtime
• and a readable language, not something far outside the Algol family
of imperative HLLs
• that was portable across different architectures
• that was FOSS and could be forked
• that was documented and had a user community who knew it
• that can be built with FOSS tools (which RISC OS fails, for instance)
• which is or was used by non-specialists for general purpose computing
• which can usefully access the Internet
• which runs on commodity hardware
• which does not have a strongly filesystem-centric design that would
not fit a PMEM-only computer (i.e. not an xNix)


I think you have specified a null set.

Alan Kay said: "The best way to predict the future is to invent it."

You have described the world you want to move into.

My only suggestion here is to look at OSs which are easily ported.  I 
would look at RISC-V because the kind of solution you are looking for 
will probably appear there first.

Within "type-strict", you might consider a Rust or Haskell oSs.  [I 
think Smalltalk is "type-safe", every object knows its class and trying 
to access element 41 of a 10 element array gives DNU, but I suspect this 
is not your definition].

For small, FreeRTOS and PharOS 
(https://sourceforge.net/projects/rtospharos/) look interesting.

 From Wikipedia entry on RISC-V:

"Available RISC-V software tools include a GNU Compiler Collection (GCC) 
toolchain (with GDB, the debugger), an LLVM toolchain, the OVPsim 
simulator (and library of RISC-V Fast Processor Models), the Spike 
simulator, and a simulator in QEMU (RV32GC/RV64GC).

Operating system support exists for the Linux kernel, FreeBSD, and 
NetBSD, but the supervisor-mode instructions were unstandardized prior 
to June 2019,[14] so this support is provisional. The preliminary 
FreeBSD port to the RISC-V architecture was upstreamed in February 2016, 
and shipped in FreeBSD 11.0.[96][74] Ports of Debian[97] and Fedora[98] 
are stabilizing (both only support 64-bit RISC-V, with no plans to 
support 32-bit version). A port of Das U-Boot exists.[99] UEFI Spec v2.7 
has defined the RISC-V binding and a TianoCore port has been done by HPE 
engineers[100] and is expected to be upstreamed. There is a preliminary 
port of the seL4 microkernel.[101][102] Hex Five released the first 
Secure IoT Stack for RISC-V with FreeRTOS support.[103] Also xv6, a 
modern reimplementation of Sixth Edition Unix in ANSI C used for 
pedagogical purposes in MIT, was ported. Pharos RTOS has been ported to 
64-bit RISC-V[104] (including time and memory protection). Also see 
Comparison of real-time operating systems.
"

Note also OSDev.org.

Good on ya,
-KenD



More information about the Squeak-dev mailing list