Почему вы не можете просто "dd" CD Audio как обычный CD с данными?

763
Lapsio

Мой друг пытался экспортировать устройство cdrom по сети, используя nbdсервер, но мы заметили, что, хотя оно работает для компакт-дисков с данными, аудио-CD на самом деле не ведут себя так, как обычные диски с данными. И я говорю не о наличии или отсутствии файловой системы, а о доступе на уровне блоков.

Хотя я понимаю, что аудио компакт-диски не могут быть действительно интерпретированы на уровне файлов, и поэтому не могут быть действительно смонтированы, я понимаю, что они содержат много дополнительной информации, которая действительно специфична для аудио, и я понимаю, что они на самом деле не имеют CRC точно так же, как диски данных, поэтому весь процесс чтения данных отличается, я до сих пор не совсем понимаю, почему их нельзя прочитать как обычное блочное устройство с /dev/sr0или /dev/cdrom. Что такого особенного в CDDA, что они не могут быть просто прочитаны на уровне блоков обычным программным обеспечением?

Я имею в виду, в конце концов, это просто поток байтов - если не как блочное устройство, то как любое символьное устройство, так почему dd/ cat/ nbdне может использовать их как любое другое блочное / символьное устройство? Есть ли какая-то реальная, техническая причина или это просто потому, что никто не нашел рационального варианта использования такого доступа к среде CDDA в Linux?

4

2 ответа на вопрос

4
dirkt

Аудио компакт-диски (также называемые CD-DA, указанные в Красной книге) являются самым старым форматом компакт-диска. Формат основан на аудиозаписи, поэтому у вас есть спиральная дорожка с непрерывными данными, и эти данные чередуются с информацией о синхронизации. Нет правильных заголовков блоков. Наименьшей единицей информации является один кадр, или 1/75 секунды, который содержит 2352 байта данных (для 2 каналов, 2 выборки / байт, 44,1 кГц).

Обратите внимание, что это не степень двойки и даже не делится на 256 или 512. Поэтому обрабатывать аудио кадры как блоки данных немного неудобно. Кроме того, ранние приводы компакт-дисков не всегда могут располагаться должным образом, поэтому, если вы скажете, что «читайте кадр через 12 минут 4 секунды и 5 1/75 секунд», он иногда запускается на несколько байтов раньше или позже. Вот почему существует так много программ для «правильного» чтения аудио компакт-дисков (например cdparanoia).

Теперь сопоставьте это с диском данных (также называемым CD-ROM, указанным в «Желтой книге»): они взяли 2352 байта аудиокадров и использовали некоторые из них для информации заголовка, чтобы идентифицировать блок. Они также добавили еще один уровень исправления ошибок, так что 2352 байта аудиокадра становятся 2048 байтами в кадре данных.

Теперь у нас есть степень двойки как размер блока, у нас есть правильные заголовки и мы можем выполнять точный поиск, и мы действительно можем притвориться, что это просто блочное устройство.

Так вот почему по умолчанию аудио-CD не рассматривается как блочное устройство, а диск с данными -.

Тем не менее, нет никаких причин не делать информацию о Audio CD доступной в файловой системе, скажем, как WAV-файл для каждой дорожки. И на самом деле, есть некоторые проекты с открытым исходным кодом, такие как CDfs или другие, которые я не могу вспомнить сейчас, которые используют FUSE, которые представляют данные CD таким образом. Однако вы все еще сталкиваетесь с проблемой отсутствия коррекции джиттера и т. Д., Поэтому вам лучше использовать что-то подобное cdparanoia.

И люди из ядра также думали, что это плохая идея .

+1 за фактический ответ на вопрос «Есть ли какая-то реальная техническая причина…?». Но было бы лучше ответить, если бы это было связано с Красной и Желтой книгами. Scott 6 лет назад 0
@ Скотт: Красные и Желтые книги не являются общедоступными, поэтому я не могу ссылаться на них. dirkt 6 лет назад 0
Хорошо спасибо. (Но вы, возможно, захотите вставить *** это *** утверждение в свой ответ.) Scott 6 лет назад 0
1
Ulf Tennfors

CDDA для аудио CD был создан до того, как кто-либо создал файловую систему для CD-ROM (сначала High Sierra, а затем ISO 9660). До этого компакт-диск просто не вел себя как обычный диск с данными. И после этого аудио-CD все равно должны были быть обратно совместимы со старыми CD-плеерами, поэтому они не могли это изменить.

Но - это аналоговый музыкальный CD (например, диск / пластинка винилового фонографа) или цифровой? Если он цифровой, состоит ли он из 17-битных байтов? Если это поток 8-битных байтов, почему процесс не может прочитать эти байты? Scott 6 лет назад 0
@ Скотт Полагаю, вы риторически спрашиваете, является ли компакт-диск цифровым или аналоговым? Twisty Impersonator 6 лет назад 0
Да, конечно. Scott 6 лет назад 0
@ Scott - это прошивка привода CD, а также, вероятно, драйвер CD, который не позволяет вам делать такие вещи. Это так же, как диски bluray, которые содержат совершенно нормальные видеопотоки / файлы, но вы не можете прочитать их без скомпрометированного ключа для декодирования [ phuclv 6 лет назад 0
См. [Почему мы не можем записать поверх CD / DVD после того, как он был записан / завершен?] (Https://superuser.com/q/1096996/241386), где прошивка также не позволяет вам прожечь прожженное место на диск, чтобы вытереть его phuclv 6 лет назад 0
Моя точка зрения такова (и так было всегда), что сообщение Ульфа не отвечает на вопрос ** Почему? ** Сказать, что «это прошивка CD-привода» - это всего лишь ручная волна, которая также не отвечает на вопрос * * Почему? **, и это также не объясняет, как может работать проигрыватель аудио CD. Тот факт, что вы не можете читать фильмы в чистом виде, потому что они зашифрованы, никак не связан с тем, что вы вообще не можете читать данные с аудио CD *. * Сравните с [ответом dirkt] (https: // superuser.com/q/1302319/150988#1302431), который фактически дает технически подробный ответ, который задает вопрос. Scott 6 лет назад 0

Похожие вопросы