Earlier quoted context omitted.
See Tannenbaum et al's paper on reliability/security mechanisms for a nice intro: http://cs.furman.edu/~chealy/cs75/important%20papers/secure%... The main benefit is reliability. Driver code is usually lower-quality than other code that runs in kernels. The hardware itself can act weird in a way that messed the drivers up. The infamous Blue Screen of Death on Windows was usually driver errors. Isolating them in their…
It’s nice if drivers are not running in the kernel but even if your graphics drivers are running in userspace, if they crash you can’t use your pc anymore. The main advantage is that you don’t have to deal with all the limitations of kernel mode programming.
Userland PCI drivers
51–55 of 55 posts
Re: Userland PCI drivers
#52Re: Userland PCI drivers
#53Earlier quoted context omitted.
See Tannenbaum et al's paper on reliability/security mechanisms for a nice intro: http://cs.furman.edu/~chealy/cs75/important%20papers/secure%... The main benefit is reliability. Driver code is usually lower-quality than other code that runs in kernels. The hardware itself can act weird in a way that messed the drivers up. The infamous Blue Screen of Death on Windows was usually driver errors. Isolating them in their…
It’s nice if drivers are not running in the kernel but even if your graphics drivers are running in userspace, if they crash you can’t use your pc anymore. The main advantage is that you don’t have to deal with all the limitations of kernel mode programming.
Re: Userland PCI drivers
#54Liedtke was right. If it can be done outside the kernel, it shouldn't be in the kernel.
That’s a great idea if you don’t care about performance.
Re: Userland PCI drivers
#55Earlier quoted context omitted.
There were a bunch of reasons. One important one is that accessing the PCI config space via IO ports 0xCF8/0xCFC is racy with the kernel, since a read or write requires writing the BDF address to 0xCF8, and then reading/writing the data from 0xCFC. If the kernel tries to do this dance while the X server is doing it as well one of them is going to read or write the wrong address. Interestingly, this design required in…
Csrss.exe is the userspace part of the win32 personality. It controls all win32 processes, which on a Windows system is just about every process. It is not very useful to limit its privileges.