On Sep 22, 2014, at 6:34 AM, Andriy Romanenko <bigral at hotmail.com> wrote:
So, basically multitasking/timesharing on the machine
without MMU would require some kind of soft-interpreter (forth, basic, etc.) to prevent
processes from direct access to memory locations (hence prevent system crashes).
Relying on the interpreter for protection is one way. That?s what RSTS-11 does. (You can
also rely on the compiler: that?s what Burroughs mainframes do. While they do have
virtual memory, user mode code has access to instructions that can cause trouble, but the
compiler refuses to generate them and there is no assembler.)
Forth is a threaded code machine, somewhat like an interpreter, but it?s the nature of the
language that it doesn?t provide protection (it?s like C in that respect, only slightly
more so). Forth multitasking systems rely on well behaved applications. In free for all
timesharing (as RSTS-11 was designed for) that won?t work. In embedded systems, it will
typically work fine, and that?s where Forth was first used.
paul