Re: Linux kernel 2.6.x Raw device support
On Sat, May 21, 2005 at 08:16:46AM -0400, James Finnall wrote:
> On Saturday 21 May 2005 05:52, email@example.com wrote:
> > Just for curiosity: when did this raw device thingee
> > start to work ? Is it a spinoff from udf-tools ? How
> > official did it become inbetween ? I'm still using kernel
> > 2.4 and obviously missed some interesting dead end
> > developments. There is mentioned an open(2) option O_DIRECT
> > and a command raw(8) in my system's man pages. Thoughtful
> > YaST did not install any (according to raw -qa).
> The man page for the raw command gives the author, Stephen
> Tweedie at Redhat, the credit for the raw command program and
> at the bottom of the man page it is dated August 1999 on my
> The 2.6.10 kernel sources for the raw device driver sources do
> not offer any history within the contents. So I do not know
> when the implementation of the device structure itself was
> first started or where. I did see a statement that included
> the phrase "genuine UNIX" and that would imply to me that this
> is not a Linux specific feature however. In the 2.6 series
> kernel it is an optional item. I could not locate an option
> in the 2.4 series kernel to disable the feature so I assume
> it is mandatory, but the raw.c source code is there for char
> device support.
Support for raw block devices is indeed not Linux-specific.
IIRC, it was an answer to commercial database vendors, who
insisted at the time that without raw devices, Linux was not
suitable as an OS for database servers (as opposed to commercial
Unices, who have raw block devices). It definitely have nothing
to do (in terms of its origins) with UDF support.
Again IIRC, this was a very, very long time ago. I don't
remember how long ago, unfortunately. I find it a bit hard to
believe that raw devices would be dropped from the kernel.
However, raw -qa not listing anything installed would be normal.
IIRC (again), Linux would (by design) have no raw devices by
default; rather, each raw device would have to be manually
configured by the user (to avoid wasting device numbers for
unused raw devices). This is different from raw devices in
other Unices (at least at the time), where each block device
would have a corresponding raw device with a fixed major/minor
number. Personally I imagine that the lack of use of raw
devices in Linux might have something to do with the strange way
Linux raw devices work...