PharoNOS for Pharo40

I successfully ported SqueakNOS to Pharo, and want to share it with you!
It works with Pharo 4.0 image, networking included, ping works!!/~JanStruz/PharoNOS/

What is different:
– I use my own CMake build file, with “out-of-tree” build support, instead of “” directories inside source tree + some template scripts to build any VM type, but it is not complete…
– I use MUSL instead of GlibC, cross-compiling GlibC statically on 64bit for 32bit seems impossible, but anyway I use 32bit environment to build it
– It works with pre-opensmalltalk-vm migration directory structure, so the “sync” with latest trunk remains #TODO, or maybe start a new branch again from the latest upstream commit should work too
– freetype is included, but will not load any fonts, since the filesystem driver is image-side… so you will need to make new fonts embedded, if you want them
– known issues: image snapshot and fileout are not working, current date+time hacked to make fat32 timestamps work
– revision needed: timer (heartbeat) vs. GC vs. interrupts enable/disable
– there are even some hacks to image-side methods

PharoNOS platform directory sources: [pharonos branch]

VM sources: [dev branch]
– added platform directory, build scripts and CMake templates
– added VMMaker configs

Build Environment (32bit) – Docker image repository, with CI:

PharoNOS CI (uses previous Docker image):

How to run it:
You can download fresh disk image from CI and then run:
(sudo) kvm -hda build/NOS.img -enable-kvm -cpu kvm32 -vga qxl -m 256 -netdev tap,id=user.3,ifname=tap2,vhost=on -net nic,model=rtl8139,netdev=user.3 -global isa-fdc.driveA= -serial stdio

One more thing:
Statically linked Pharo Spur32 (headless) VM, with only one dependency – Linux kernel:
Size: 2,4MB (too big?, but Freetype included too!)





Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: