Having been flitting about the net, I can't help but stumble on the almost spam like posting of reports of Windows Vista. One thing did particularly catch my eye and that was that Vista's drivers are all run in user mode, the benefit for this (they claim) is that when a driver malfunctions it can be restarted without the need to restart the Kernel, they also note that this actually improves performance for things like the audio stack as there is no tedious switching for apps and games between user and kernel mode. What really gets me about this "revolutionary" idea is that its pretty much exactly what we used to do back in the days of DOS.
So my question is this... Is the past really the future for OS's? Should we be looking to go totally microkernel and remove everything but the very very most basic interface between the hardware and the Kernel? Any views?
(Incidentally I notice MS now have a prototype for using a dance mat to control your e-mails... I don't think I'll be looking to steal all their ideas. http://seattlepi.com/audio/bishop/checkemail_s.wmv)
Vista's Approach to Drivers
Re:Vista's Approach to Drivers
Microkernel. That benefit is only true if the malfunctioning driver was not related to file access. Or user interface, unless you implemented an automatic restart. Microkernel enables this kind of driver-restart, but only if you put additional effort in it.elaverick wrote: ...the benefit for this (they claim) is that when a driver malfunctions it can be restarted without the need to restart the Kernel...
So-so. At some point, you either have to switch to kernel mode to do the magic, or you expose the hardware to user space. The first eats performance, the second kills security....they also note that this actually improves performance for things like the audio stack as there is no tedious switching for apps and games between user and kernel mode.
Ahem. DOS didn't have user mode IIRC. (Dunno really, I was a happy Amiga camper at that time. )What really gets me about this "revolutionary" idea is that its pretty much exactly what we used to do back in the days of DOS.
Lots, and lengthy, all to be found here in the forum. Search for "microkernel".So my question is this... Is the past really the future for OS's? Should we be looking to go totally microkernel and remove everything but the very very most basic interface between the hardware and the Kernel? Any views?
Every good solution is obvious once you've found it.
Re:Vista's Approach to Drivers
I have been cracking on about this for a long time, big software company, will tell you that this is the best way to do something and 99% of people will follow.
When most of the time, its just that it's in there interest, to do things that way.
Big example of this, is multi-tasking, what a joke, this was a get round, for when CPU were very expensive, this is no longer the case, give it 10 years and you will see 1000 multi cores CPU.
Then these same software co, will tell you that multitasking is slow and giving each program a CPU or 2 or 4 etc, is the way to go.
That why when designing my OS, i looked back to the past, to see the future.
When most of the time, its just that it's in there interest, to do things that way.
Big example of this, is multi-tasking, what a joke, this was a get round, for when CPU were very expensive, this is no longer the case, give it 10 years and you will see 1000 multi cores CPU.
Then these same software co, will tell you that multitasking is slow and giving each program a CPU or 2 or 4 etc, is the way to go.
That why when designing my OS, i looked back to the past, to see the future.
Re:Vista's Approach to Drivers
DOS didn't have user mode, everything ran in Ring 0.elaverick wrote: What really gets me about this "revolutionary" idea is that its pretty much exactly what we used to do back in the days of DOS.
I actually think this idea is very good, the minor performance penalty (ping-pong between the user mode driver and the kernel Redirector) is definitely worth not crashing the system when something gets seriously messed up.
Re:Vista's Approach to Drivers
I haven't got this yet: Which drivers (or classes of drivers) are they going to push into userspace exactly? I've always read that 'drivers are going to be executed it user space', but I doubt that they are suddenly heading for a _pure_ microkernel.elaverick wrote: One thing did particularly catch my eye and that was that Vista's drivers are all run in user mode, the benefit for this (they claim) is that when a driver malfunctions it can be restarted without the need to restart the Kernel,
...
Well, running drivers in user mode doesn't really prevent this - you have to go to kernel mode anyway to do IPC to the driver's server process, unless you are using a really smart, asynchronous communication way over shared memory OR are executing the driver's logic in-process directly (like directX), but that mostly sacrifices security (as Solar stated before)... all in all I think it's always a compromise.elaverick wrote: ...
they also note that this actually improves performance for things like the audio stack as there is no tedious switching for apps and games between user and kernel mode.
Well, DOS decided not to use memory protection, so there were no costly ring transitions or address space switches anyway, but also no secure sandboxing of applications. As I said before - it's a compromise.elaverick wrote: What really gets me about this "revolutionary" idea is that its pretty much exactly what we used to do back in the days of DOS.
cheers Joe
-
- Member
- Posts: 1600
- Joined: Wed Oct 18, 2006 11:59 am
- Location: Vienna/Austria
- Contact:
Re:Vista's Approach to Drivers
@Dex4U: 50% ACK, else NACK
well, I could rant on, but ... yeah, I hope I've made myself clear. And btw, my workstation has four cpu's for the kernel to deal tasks to. Kinda busy thing, eh?
Stay safe
ps: ere someone asks: peeble-shifting stuff == calculating. Stems from latin meaning of calculus: to shift small stones (==peebles) around
Yeah, up to this I ACK.Dex4u wrote: I have been cracking on about this for a long time, big software company, will tell you that this is the best way to do something and 99% of people will follow.
When most of the time, its just that it's in there interest, to do things that way.
Here, my opinion diverges from yours, and my hankering to ack converges absolutely to zero. Multitasking isn't crap and cpu's be as many as there might be, they will always have stuff to do. What do you think is inside those big Cray machines, eh? Loads of cpu's doing the peeble-shifting stuff - there, multitasking is taken the way it is meant: schedule tasks to many cpu's in a fair manner, so that two jobs can be executed at the same time in parallel...Dex4u wrote: Big example of this, is multi-tasking, what a joke, this was a get round, for when CPU were very expensive, this is no longer the case, give it 10 years and you will see 1000 multi cores CPU.
Then these same software co, will tell you that multitasking is slow and giving each program a CPU or 2 or 4 etc, is the way to go.
That why when designing my OS, i looked back to the past, to see the future.
well, I could rant on, but ... yeah, I hope I've made myself clear. And btw, my workstation has four cpu's for the kernel to deal tasks to. Kinda busy thing, eh?
Stay safe
ps: ere someone asks: peeble-shifting stuff == calculating. Stems from latin meaning of calculus: to shift small stones (==peebles) around
... the osdever formerly known as beyond infinity ...
BlueillusionOS iso image
BlueillusionOS iso image
Re:Vista's Approach to Drivers
not another flame war .
I have a copy of Beta 1, but I can't install it on an emulator >:(. That's the only way Vista will ever see the light of day on MY system. I've flipped through the files, and it seems that even the demo has quite a good support base. "Danger Will Robertson, Microscoft is gaining strength!" comes to the minds of Linux and BSD right now I bet.
If Microscoft goes Micro (no pun intended) and tries to patent the concept of Microkernels or something dumb like that; I CALL FOR A BOYCOTT!!! Death to the low-life stealing, money-making d00dz! Other than that, I think it's a big step forward that windoze may be actually stable. As for the security thing, nothing a little "Secure computing" can't fix. It's just another paradox in life .
Cheers, DH.
I have a copy of Beta 1, but I can't install it on an emulator >:(. That's the only way Vista will ever see the light of day on MY system. I've flipped through the files, and it seems that even the demo has quite a good support base. "Danger Will Robertson, Microscoft is gaining strength!" comes to the minds of Linux and BSD right now I bet.
If Microscoft goes Micro (no pun intended) and tries to patent the concept of Microkernels or something dumb like that; I CALL FOR A BOYCOTT!!! Death to the low-life stealing, money-making d00dz! Other than that, I think it's a big step forward that windoze may be actually stable. As for the security thing, nothing a little "Secure computing" can't fix. It's just another paradox in life .
Cheers, DH.
Re:Vista's Approach to Drivers
I have "beta 2" [officially called february ctp] running here
Anyways, I'm pretty sure the info above is only partially right. I know it is definitely wrong for the audio part. As far as I know they've splitted things up. They have a kernel and user mode drivers, where before it was all kernel (basically). They might even have a kernel and user mode half for the "same" driver.
If I remember correctly what I think they've done is move as much as possible into user mode and left only the bare raw driver stuff in kernel land (as indicated before security would otherwise be compromised).
Anyway, for anyone who is interested there are some excellent movies up on msdn's channel 9:
This FAQ also seems to verify there are kernel and user mode drivers. From a quick glance on a presentation it seems they are moving everything that does not need to actually directly communicate with hardware (ie, drivers for devices on busses like USB, fireware, over the network etc.) into user mode. Only stuff that needs direct access to hardware *inside* the pc remains kernel mode (and if that might get split up, like the audio [new] or network stack [was always the case])
Searching on Windows Driver Foundation yields all kinds of documents and papers on that for anyone who is interested.
Now go loose a couple of hours
Anyways, I'm pretty sure the info above is only partially right. I know it is definitely wrong for the audio part. As far as I know they've splitted things up. They have a kernel and user mode drivers, where before it was all kernel (basically). They might even have a kernel and user mode half for the "same" driver.
If I remember correctly what I think they've done is move as much as possible into user mode and left only the bare raw driver stuff in kernel land (as indicated before security would otherwise be compromised).
Anyway, for anyone who is interested there are some excellent movies up on msdn's channel 9:
- Vista's kernel architecture
- Vista's audio stack & API (this definitely discusses the audio seperation between kernel & user land)
- Transactional file system (no, not journalling [that's been there forever], also not the infamous "winfs")
This FAQ also seems to verify there are kernel and user mode drivers. From a quick glance on a presentation it seems they are moving everything that does not need to actually directly communicate with hardware (ie, drivers for devices on busses like USB, fireware, over the network etc.) into user mode. Only stuff that needs direct access to hardware *inside* the pc remains kernel mode (and if that might get split up, like the audio [new] or network stack [was always the case])
Searching on Windows Driver Foundation yields all kinds of documents and papers on that for anyone who is interested.
Now go loose a couple of hours