The triad diagram with the OS between the user, the hardware, and the software is especially informative.
H S
\ /
OS
|
U
Why is OS there in the diagram? The OS is just software! Make a compiler target and programming environment the OS!
This has been done before. Symbolics Lisp machines demonstrate many of the technical advantages of this level of integration. Unfortunately, they also show the disadvantageous economics of special-purpose hardware. Most Smalltalk environments have a very good abstraction of the underlying hardware, which is the way one can have this level of integration without the special hardware trap. In fact, you can mostly just treat the VM like it's the CPU. That triad diagram should really be:
Your OS is there to provide protection between programs and provide an interface to system resources. The OS is "software", I suppose, but it /is/ fundamentally different than, say, your web browser, in that OS code runs in kernel mode and your web browser runs in user mode. That's a huge difference in access to system resources, etc.
Your OS is there to provide protection between programs and provide an interface to system resources.
Why can't the language provide those?
fundamentally different than, say, your web browser, in that OS code runs in kernel mode and your web browser runs in user mode
Having Kernel/User modes is just one way of providing security. There is nothing really fundamental about it. It just so happens that machines are mostly organized this way. One could do away with the kernel mode distinction with a mechanism like capabilities and arguably wind up with better security.
It can. But when it does, it stops getting called a language, and starts getting called an OS that only supports one language.
You're either not familiar with some of the technologies I'm discussing, or you're not getting the point I'm trying to make.
Smalltalk started out as an OS, and even back then, it was fully capable of supporting any number of languages running on top of it.
Or it gets called programming the bare metal.
My point is that this is just a fixed idea without a fundamental basis. That's just how it has been as opposed to how it has to be. Basically, it's that way because the field settled in on a particular way of doing things that fit the limited hardware of the time.
Also, there's no reason why a VM, JIT or otherwise even has to be involved. Haiku/BeOS is another such creature. It's highly responsive, even on ancient hardware, and it's highly compact. (Entire OS + apps in well under 200M.)
The OS is a set of abstractions. A High Level Language is another. There's no universal reason why the latter can't subsume the former.
The article never proposes specialized hardware at any point - indeed, a central idea is that a Forth-based OS would port well to a multitude of architectures.
Interesting that Bill Gates said, "Microsoft is rewriting all its' application offerings to use an advanced HTML interface and no longer the current windows based system," in 1998.
Why are we still not there, 11 years later? Coincidentally, I just wrote a blog post about this last night:
This has been done before. Symbolics Lisp machines demonstrate many of the technical advantages of this level of integration. Unfortunately, they also show the disadvantageous economics of special-purpose hardware. Most Smalltalk environments have a very good abstraction of the underlying hardware, which is the way one can have this level of integration without the special hardware trap. In fact, you can mostly just treat the VM like it's the CPU. That triad diagram should really be: