Runs ARM bFLT executables compiled with -fPIC linked against
included "vlibc" C library.
romfs running on top of ramdisk
Screenshots and News
12 April 2018
Work in progress on multicore support. It actually can start all four
CPUs, but I don't have locks in the console so the output gets all run
6 April 2018
Have framebuffer support mostly working again (though still slow).
Amazingly works on pi3, despite the fact I can't get the temperature/mailbox
to work still.
27 March 2018
Pi-3B+ support added.
25 March 2018
Have MMU memory protection (kernel vs user) finally working, at least on
Pi3. Having issues with enabling cache on the Pi3 though.
23 March 2018
Have bflt binary support finally working.
7 March 2018
Code should now work on both Pi2 and Pi3 models now. You might need
recent firmware on all models, as it assumes a 48MHz UART clock now.
A huge host of changes had to be made to get it to run on the newer machines
and firmware. The biggest was writing a device-tree parser.
There was also a really tricky to debug issue where the aplus DRAM was
initializing to zero but the pi3 was initializing to 555555 and some
code was accidentally being setup properly due to this.
20 May 2016
Finally have blocking I/O working! Look at this sysinfo update,
notice that the system is spending most of its time in the idle thread.
This is because console_read() and sleep() both block, putting processes
to sleep and the idle thread finally gets to run.
Here's a before shot showing that it didn't idle previously.
Also note that we leak memory and processes (i.e. processes aren't
freed after an exit() ). Need to fix that.
17 May 2016
Finally implemented enough syscalls (and subdirectory support) that
ll now runs under my OS. Had to manually
generate PIC assembly code, which wasn't fun.
13 May 2016
Demo of the 0.13 release in action:
Relive the 1990s: the framebuffer console has been extensively tested
and supports enough ANSI control characters to display
most BBS ANSI art.
Version 0.10 showing classic AB multitasking support:
An EeePC acting as a terminal for a Raspberry Pi Model A+
The local royalty was unimpressed by the A/B multitasking demo:
Some results when trying to get maximum memset() performance.
Raspberry Pi A+/B BCM2835 700MHz LPDDR2 RAM
Each test is 16 repititions of a 1MB memset()
1-byte is just a simple loop, one byte at a time.
4-byte is a simple loop, writing an int at a time.
64-byte uses the arm "stm" instruction to write 64B at a time.