On 21/02/2017 17:18, Joerg Schilling wrote:
Requiring
"pass through SCSI" for a CD burner violates the UNIX
philosophy that everything is a file (which implies that reading and
writing data be implemented, where possible, through the read and write
system calls rather than through special interfaces specific to a device
type).
You are incorrectly informed:
Writing CDs is a highly complex task. No known kernel is able to do that
internally.
So the only useful method is to use SCSI pass through.
This is an interesting point. However, controlling the C/A/T
phototypesetter 20 years before writable CD-ROM appeared, was also a
very complex task, yet it was accomplished through a simple device file.
Controlling a voice modem is also complex, time-critical, and requires
bidirectional communication. Again, voice modems were controlled through
a character device file.
How would you handle the different writing methods? Separate device
files or an ioctl on a generic device node?
(not arguing - genuinely curious about your theory)
One can envisage a CD-ROM device driver abstracting the commands
required for writing CD-ROMs into a text-based interface made available
though a character device. These precedents demonstrate that the SCSI
pass through was an unneeded architecture-violating shortcut.
Arguably, the same can also be claimed for the networking system calls.
Diomidis