Sponsored Content
Top Forums UNIX for Dummies Questions & Answers passthrough devices vs. named devices Post 302202416 by Perderabo on Wednesday 4th of June 2008 09:13:48 PM
Old 06-04-2008
They are both the same type of objects. I don't know what os you're using so I talk talk specificly to that. But imagine a version of unix with device files like /dev/mt0 to talk to a tape drive. Any device file has a major and a minor number. The major number identifies which driver is being used. The minor number is passed to the driver for its use. It the case of a typical mt driver, it ids the particular tape drive. So you can open /dev/mt0 and read or write to the tape drive via it. You can also invoke the ioctl system call for special purposes like rewinding the tape. This is the typical type a tape driver that existed for years and it is what you call a "named device".

Now someone invents a new type of tape drive that can hold 5 tapes. How to control that? The mt ioctl doesn't handle stuff like that. Well one answer is to redefine the rewind or the unload command to now mean "go to the next tape". A lot of juke box style drives do just that and call it stacker mode. But we want something more... we want to just jump to tape number 4 (as an example) regardless of where we were. The tape drive can do that but the mt driver doesn't have a way to send the right command. All we need is some quick a dirty way to send a particular scsi command to the tape drive. This is where the pass-though driver comes in. It does not know it is controlling a tape drive. But you can give it a scsi command and it can send it to the device. And it can even return a status code. But that is it. It just passes simple commands to a device. Now a real smart program figures out what scsi command is needed to jump to tape number 4, it uses the pass though driver to send it, and it gets a status code back. So now we are using a secondary driver to access extra device features that the primary driver can't control.

But the pass through device is a special file too with a major and minor number. You don't use it to tranfer large blocks of data though. Just special commands.

In this case both special files referred to the same device. But often there will be a collection of tape drives in a juke box with a single pass-though device for the box itself.

We would use the mt driver where we can. And we use the pass-though driver only when we must. Drivers like mt have a man page that describes which ioctl command it can do. Pass though drivers usually have sparse man pages because you can't document all possible scsi commands.
 

10 More Discussions You Might Find Interesting

1. HP-UX

HP-UX 10.20 devices

Is it possible to create the CDROM device file for a drive attached to the parallel port? I have a removable CDROM drive (gift - I'm trying not to return it, but may have to anyways) that attaches via parallel port. The only device that I can attach to that hardware address is /dev/c1t0d0_lp, a... (9 Replies)
Discussion started by: LivinFree
9 Replies

2. UNIX for Dummies Questions & Answers

Unix devices

Hi I am trying to determine the access to unix devices. I found the follow access description which I have been told is a symbolic link and is not the actual file. I was also told that all symbolic links will have rwxrwxrwx access. kmem: lrwxrwxrwx 1 root 27 May 28 16:06 /dev/kmem ->... (2 Replies)
Discussion started by: GW01
2 Replies

3. UNIX for Dummies Questions & Answers

printing devices

I am new in unix, and I need to fix a printer, but I don't even know the difference between /dev/ttys printers and lp printers. Can someone explain this to me and tell me how I cancel jobs in both of them? I will appreciate it, thank you. (15 Replies)
Discussion started by: HN19
15 Replies

4. Red Hat

USB Devices

I am trying to get a flash card reader to work with my machine. My question is, are all of my USB ports screwed up? Do I need to buy a seperate USB controller? I does not appear that the onboard USB ports work. In trying to get it to work, I typed cat /proc/scsi/scsi and got this: # cat... (2 Replies)
Discussion started by: davidkretsch
2 Replies

5. Solaris

Meta Devices

I have added a sun storage array from a faiulty server onto a new server and copied the md.conf files etc. I can now access the /dev/md/dsk file systems, but I want to delete some metadevices that do not exist (it still thinks the 0 and 1 (root /var /export) disk are mirrored. How do I do this? (8 Replies)
Discussion started by: ozzmosiz
8 Replies

6. Solaris

what is /devices/pseudo/ ??

Hi all, what does this mean? if then <something> fi here is what i know.. it checks if the specified argument no($devid) in some function call is made into a block device and then proceeds with the execution of the loop. However am not understand what lofi@0:means? also is there... (3 Replies)
Discussion started by: wrapster
3 Replies

7. UNIX for Dummies Questions & Answers

/dev X /devices

Hi folks, I am trying to learn Unix based in Linux... In Linux, in /Dev are files related to cards, mouse, etc.. how about Unix? What is the difference between /Dev and /Devices? Thanks, Fernanda (0 Replies)
Discussion started by: ffpradella
0 Replies

8. HP-UX

list of devices

Hi, I need to rediracte all the names of the devices (only disks) to a file. Thanks:confused: (3 Replies)
Discussion started by: yoavbe
3 Replies

9. Programming

Raw devices in C

Hi guys. what is the benefits of using raw devices in programming? which applications mostly use raw devices? how can i use raw devices in C programs? is there any system calls or library functions? (1 Reply)
Discussion started by: majid.merkava
1 Replies

10. Red Hat

Raw Devices

Can you please modify my script. This script is not working for i in /dev/sdf do /bin/raw /dev/raw/`/bin/basename ${i}` ${i} /bin/sleep 2 /bin/chown orasm:ordba /dev/raw/`/bin/basename ${i}` /bin/chmod 660... (9 Replies)
Discussion started by: karthik9358
9 Replies
MTIO(4) 						   BSD Kernel Interfaces Manual 						   MTIO(4)

NAME
mtio -- generic magnetic tape I/O interface SYNOPSIS
#include <sys/ioctl.h> #include <sys/types.h> #include <sys/mtio.h> DESCRIPTION
Magnetic tape has been the computer system backup and data transfer medium of choice for decades, because it has historically been cheaper in cost per bit stored, and the formats have been designed for portability and storage. However, tape drives have generally been the slowest mass storage devices attached to any computer system. Magnetic tape comes in a wide variety of formats, from classic 9-track, through various Quarter Inch Cartridge (QIC) variants, to more modern systems using 8mm video tape, and Digital Audio Tape (DAT). There have also been a variety of proprietary tape systems, including DECtape, and IBM 3480. UNIX TAPE I/O Regardless of the specific characteristics of the particular tape transport mechanism (tape drive), UNIX tape I/O has two interfaces: "block" and "raw". I/O through the block interface of a tape device is similar to I/O through the block special device for a disk driver: the indi- vidual read(2) and write(2) calls can be done in any amount of bytes, but all data is buffered through the system buffer cache, and I/O to the device is done in 1024 byte sized blocks. This limitation is sufficiently restrictive that the block interface to tape devices is rarely used. The "raw" interface differs in that all I/O can be done in arbitrary sized blocks, within the limitations for the specific device and device driver, and all I/O is synchronous. This is the most flexible interface, but since there is very little that is handled automatically by the kernel, user programs must implement specific magnetic tape handling routines, which puts the onus of correctness on the application program- mer. DEVICE NAME CONVENTIONS Each magnetic tape subsystem has a couple of special devices associated with it. The block device is usually named for the driver, e.g. /dev/st0 for unit zero of a st(4) SCSI tape drive. The raw device name is the block device name with an "r" prepended, e.g. /dev/rst0. By default, the tape driver will rewind the tape drive when the device is closed. To make it possible for multiple program invocations to sequentially write multiple files on the same tape, a "no rewind on close" device is provided, denoted by the letter "n" prepended to the name of the device, e.g. /dev/nst0, /dev/nrst0. The mt(1) command can be used to explicitly rewind, or otherwise position a tape at a particular point with the no-rewind device. FILE MARK HANDLING Two end-of-file (EOF) markers mark the end of a tape (EOT), and one end-of-file marker marks the end of a tape file. By default, the tape driver will write two End Of File (EOF) marks and rewind the tape when the device is closed after the last write. If the tape is not to be rewound it is positioned with the head in between the two tape marks, where the next write will over write the sec- ond end-of-file marker. All of the magnetic tape devices may be manipulated with the mt(1) command. A number of ioctl(2) operations are available on raw magnetic tape. Please see <sys/mtio.h> for their definitions. The manual pages for specific tape device drivers should list their particular capabilities and limitations. SEE ALSO
dd(1), mt(1), pax(1), tar(1), st(4), wt(4) HISTORY
The mtio manual appeared in 4.2BSD. BUGS
The status should be returned in a device independent format. If and when NetBSD is updated to deal with non-512 byte per sector disk media through the system buffer cache, perhaps a more sane tape interface can be implemented. BSD
January 14, 1999 BSD
All times are GMT -4. The time now is 02:21 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy