Originally posted by OneTimeShot
View Post
There were actually valid reasons for trying to put some of this kind of stuff in the kernel. In particular, some industrial communication is high speed and requires low latency and deterministic timing - polls or updates that run hundreds of times a second with a 1 millisecond timing margin have traditionally been very hard to achieve in user space. But that is changing now with real-time Linux becoming better integrated, along with multiple core processors even on small embedded systems (a rarity just five years ago). In addition, it used to be common for interfaces for specialised industrial protocols to be in the form of add-in cards for PCI buses, ISA buses (remember that? It lasted far longer in the industrial world than the normal PC world) and others. For such cards, a kernel driver is almost a necessity. Now, these are all connected by USB if they are not handled by normal Ethernet interfaces. And USB (and Ethernet) can be handled efficiently from user space.
Comment