> Thatâs a âusersâ thing, not just a âwindows usersâ thing. People will take the easiest way out, and
when MYOB or whatever application doesnât work without admin privileges, guess what
the easiest and fastest way to resolve the problem is?
Run the app as root, of course. However, it does not mean that you should log on as a root and run all your programs as the one, right? After all, this is what âRunAsâ option is forâŚ
Itâs true under any operating system.
What makes Windows unique in this respect is that most programs assume root-level privileges, so that, as
you have pointed out yourself, it becomes just a nuisance - if you have to enter your Admin password every time you start a program it becomes quite annoying. Under the other OSes you have to do it once in a very while, because most programs donât expect to have root-level privilegesâŚ
I think you are suggesting it is just another layer on top of the per user and per process isolation ideas
that came before it - and itâs just another level of jail for the malware to break out of.
What I am speaking about is a different approach to these old ideas - I am not suggesting building anything new on top of them. For example, consider a âone-to-one user/personatily/etc - VMâ relationship implemented on top of microkernel.
Under this model, microkernel does nothing, apart from creating/destroying/scheduling runnable tasks upon guest kernelâs requests ( it can be made guest kernelâs responsibility to decide whether a given task is runnable, and to inform microkernel about the change of taskâs state via a hypercall - microkernel can be left blissfully ignorant of guestâs synchronization/notification/scheduling internals), modifying address spaces upon guest kernelâs requests (again, all actual decisions are made by the guest), and abstracting the physical hardware. Every guest has its own âlargeâ kernel with a filesystem, network stack and a view of hardware devices that can be either real or emulated. This âlargeâ kernel is unprivileged code that communicates with microkernel via hypercalls
If, for some reason, you donât trust some code, you can run it in one of these guests. The worst thing that it can do is to screw up this certain guest, but all other guests will remain intact. âŚ
Anton Bassov