Re: PATCH: Raw device IO for 2.1.131

Richard B. Johnson (root@chaos.analogic.com)
Wed, 16 Dec 1998 08:45:39 -0500 (EST)


On 15 Dec 1998, WCOEKAER.US.ORACLE.COM wrote:

> So, someone mentioned that Linux is all about "technical" issues, not what
>
> We cannot use a filesystem, since we do not have a real distributed
> filesystem
> yet (note we need Performance here. so don't come with coda and what have
> you...)
>
> How do we solve this on every OS other than linux ? We use raw devices,
> since
> when we do a write, we know it's on the disk (there are no issues with scsi
> controller cache...) All committed writes are captured and whenever
> something
> needs to be recovered we have all the data needed in the logfiles(also on
> raw
> devices so it contains all data).

So it seems that all you need to do is make a device driver (using an
existing one as a template), that lets you do direct read/writes from
user-space without any buffering except what you provide. You can
use a separate controller so you don't have to worry about locking
to synchronize with kernel access.

The kernel provides this capability. You can insert modules that you
write that do anything you want.

Unix and Unix-like systems use virtual file-systems. Most recently
accessed data lives in memory. Therefore, you don't really know
when it was written to the physical device (if ever). Therefore,
it is not part of a Unix system to provide capability to perform
direct reads and writes from an API. But Linux gives you any
capability you want in addition to the "Unix-like" capability,
but you have to insert your special requirements into your kernel
yourself. It doesn't come that way, out of the box.

Cheers,
Dick Johnson
***** FILE SYSTEM WAS MODIFIED *****
Penguin : Linux version 2.1.131 on an i686 machine (400.59 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/