5 ms·
What it really should, and does, look like is: Hardware | OS | Software | User Your OS is there to provide protection
by shaddi 17y ago
What it really should, and does, look like is:
Hardware
|
OS
|
Software
|
User
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.
- stcredzero 17y agoYour 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.
- ori_b 17y ago> Why can't the language provide those? It can. But when it does, it stops getting called a language, and starts getting called an OS that only supports one language. Or it gets called programming the bare metal.
- stcredzero 17y agoIt 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.
- ori_b 17y ago> 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. And it has. When this happened, the result was dubbed an OS.