James Finnall <James@Finnall.net> wrote:
When configuring a Linux kernel 2.6.x series to enable the raw device support,
it states this as being obsolete and deprecated. The suggestion is to use
the O_DIRECT flag when opening the device name. I can see how this could be
possible from inside an application where the system calls are directly
available to the programmer.
O_DIRECT is a nonstandard extension only found on Linux.
UNIX supports raw device access via "character special" files.
But how can such an option be passed through from the CLI to a program though?
This is a problem. Why should a portable program introduce an option for
something that is Linux specific and done completely different on other OS?
It was also stated that in the next kernel development of 2.7 that raw device
support could be removed. Now I suppose that might be changed by popular
demand as well.
I believe that the reason for not implementing raw devices on Linux was the fact
that Linux was designed for x86 and the way Linux did implement DMA to devices
would have made a raw device slower than a buffered device.