Currently, on desktop our portability layer is the channel IO interface (cio) a
JVM (such as HotSpot).
There's no real reason for this, but ease of porting and implementation.
But this makes Squawk on the desktop use much more memory than it needs to, and
worse, means that we can't run Squawk on really small platforms that have an OS,
but not a JVM. These include:
- Random tiny linux boxes (used for robotics and many more things)
By directly implementing the channel IO capabilities for file io, sockets, etc.
using std C interfaces (posix, etc), we can make it much easier to port things
larger than "bare-metal" devices, but smaller than desktops.