Comment by vezzy-fnord
11 years ago
That's just revolting.
How large was the core Taos kernel and basic userland? What kind of effort do you estimate would be needed to bootstrap a libre clone? Have any people ever considered doing this before?
11 years ago
That's just revolting.
How large was the core Taos kernel and basic userland? What kind of effort do you estimate would be needed to bootstrap a libre clone? Have any people ever considered doing this before?
TAOS was tiny; but it had no features. It had the VP1 loader, memory allocator, filesystem interface, a really horrible shell, and that was about it. It may have had threads. It certainly didn't have TCP/IP. It'd fit comfortably inside a 64kB DOS .COM file, because that's how we booted it.
Elate/intent was way, way bigger. It was a proper filesystem, with device drivers (object-oriented and named and mounted in the VFS), and modules and components and a package manager (which was actually pretty awesome) and Posix and a huge standard library. Even the translator was big, by which I mean double-digit kilobytes of translated code.
I would say it's not worth cloning. State of the art in JITs has moved on so much that intent's fairly crude binary translation's not worth much. Instead I'd use something like LuaJIT as a JIT core, and build up from there; it's fast, tiny by modern standards (although still way bigger than the intent core), and you get binary portability by pushing Lua bytecode around instead. Compiling C into FFI-heavy LuaJIT shouldn't be too terrible and should give decent performance, while keeping portability.
...
Incidentally, despite my previous message, it may be possible that Amiga Anywhere still has an intent license. Which means they might have source code (because it's not like they're going to get builds from Tao any more). Does anyone know if Amiga Anywhere is still a thing?
You say it's not worth cloning, but what about the touchscreen phone UI running on an 11 MHz ARM processor? What was the secret sauce that made that work? Or was it just that a phone UI back then wasn't expected to do as much as one does today?
Partly lowered expectations; it was a monochrome stylus screen with about four pixels. Partly it was the hand-tooled and very lightweight libraries. We could run the translator in both online and offline mode, so most of the Java runtime was pretranslated into machine code and in ROM, which minimised startup time (although the generated code was the same, so there was no difference in performance). Partly it was an earlier, more^H^H^H^Hless elegant age of Java; this was the MIDP era.
Ah, here it is:
http://www.fano.co.uk/history/phone.html
Mmm. I don't remember it being quite that brick-like.
2 replies →