I remember seeing the PCI userspace option in the Linux kernel menuconfig and wondered why anyone would do that, and then a few years ago at Kiwicon I saw my first use case. A presenter was trying to hack a Cisco router. Older Cisco routers ran IOS directly on proprietary hardware. At some point, Cisco decided to switch to Intel hardware but didn't port their kernel. They use a Linux kernel and ran IOS as a huge 50MB…
Userland PCI drivers
31–40 of 55 posts
Re: Userland PCI drivers
#32I guess monolithic kernels have gone full-circle now.
Most real life implementations of "microkernels" end up being hybrids. NT started out as a micro, but Microsoft have been moving things (the graphics subsystem in particular) in and out of kernel space in the hunt for the optimal tradeoff between stability and performance. Similarly i think the Mach kernel powering Apple's OSs are a "fat micro" where various things that should be in userspace, if one followed the mic…
L4 running on most GSM radio chips.
Many embedded RTOS targeted at critical systems, are microkernels as well. For example the offerings from Green Hills.
Re: Userland PCI drivers
#33Earlier 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…
Note that Windows Vista onwards has UMDF too (user-mode driver framework). NT6.0 was a very big step.
Re: Userland PCI drivers
#34Re: Userland PCI drivers
#35Earlier quoted context omitted.
Note that Windows Vista onwards has UMDF too (user-mode driver framework). NT6.0 was a very big step.
UMDF was available for XP too, and printer drivers had been user space for a long long time.
Re: Userland PCI drivers
#36I don’t know of anything that used it, but I’m sure there were custom PCI cards for data acquisition, hardware control, etc etc. that used it.
Re: Userland PCI drivers
#37Reminds me of this 34C3 talk: https://media.ccc.de/v/34c3-9159-demystifying_network_cards
Re: Userland PCI drivers
#38Re: Userland PCI drivers
#39I remember seeing the PCI userspace option in the Linux kernel menuconfig and wondered why anyone would do that, and then a few years ago at Kiwicon I saw my first use case. A presenter was trying to hack a Cisco router. Older Cisco routers ran IOS directly on proprietary hardware. At some point, Cisco decided to switch to Intel hardware but didn't port their kernel. They use a Linux kernel and ran IOS as a huge 50MB…
For those who are confused, this is not Apple's IOS, but Cisco's OS that was once (not sure about now) called IOS.
Re: Userland PCI drivers
#40Isn't the advantage of running hardware drivers in userspace to limit the attack surface of a driver being exploited?
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…
Expect a release soon, for the first time in years. And it's a major one.