On 03/08/2013 05:40 AM, Roe Peterson wrote:
True, but going in the other direction, blocking
factor is preserved
in variable sized writes to tape. For example, if I write a series of
1k blocks to a tape, and try to read them back as 2k blocks, each
read will return only 1024 bytes, at least on streaming-type tapes.
I'm not sure what would happen on real magtape.
So,writing a tape with dd will, by default, create 512-byte blocks.
I think we have a problem with nomenclature. To me, "blocking factor"
is the number of records placed in a block. So, if you're writing 2048
byte physical blocks, with a record length of 512 bytes, the blocking
factor is 4.
What I'm talking about is preserving physical block length. IIRC, there
is a minimum block length (2 bytes or thereabouts?) that most drives
treat as "noise" and discard. AFAIK, there is no maximum defined
physical block length--the limitation there seems to be mostly in
operating systems or controller/formatter use. But it is possible to
write blocks on a tape that are many times the size of physical memory
on some systems. I think telemetry systems used to do just that.
On CDC SCOPE, there were three basic tape drivers--standard (512 words
per physical block, short last block; no particular blocking factor),
"stranger" (any odd block size up to 512 words; treated as one logical
record per physical block) and "long" tapes--no limit on physical record
size.
The "L" tape, in theory, could treat the entire reel of tape as a single
record. So long as the user program could empty the buffer on read and
fill it on write, the tape would continue to spin.
Can one do the same with Unix? I've never tried.
The ultra-short physical blocks could be used for great sound effects as
the drives used a vacuum capstan system which was regulated by a large
voice-coil valve.
--Chuck