Куча говна / Говнокод #26642 Ссылка на оригинал

0

  1. 1
Некроисторический экскурс в сидиромию

В общем я заморочился, и разобрался с сиди.
Один коммент -- одна питушня.

Запостил: MAKAKA MAKAKA, (Updated )

Комментарии (18) RSS

  • "Red book" описывает физическое строение CD и его использование для звука
    (CD-DA). Диск с одной длиной дорожкой от центра к окраине.
    Диск начинается с Lead-In area, затем идет Program area, и Lead-out.
    Диск разбит на сектора по 2352 байта каждый.
    Такой сектор занимает 1/75 секунды, так что может адресоваться как по номеру,
    так и по времени.
    Часть сектора это синхронизационная последовательность, часть это ECC,
    остальное это user data.
    User data может быть разбита на подканалы.
    В основном канале лежит музло в формате PCM.
    Секторы объеденены в треки. В подканале q содержится адрес окончаия трека.
    В lead-in есть особый трек (нулевой) где в канале q содержится TOC.
    TOC это таблица треков, где для каждого трека указано:

    * Тип терка (ред бук описывает только музыкальный)
    * Начало трека (адрес сектора или временная метка)
    * Конец трека
    https://en.wikipedia.org/wiki/Compact_Disc_Digital_Audio#Technical_spe cifications
    https://webstore.iec.ch/publication/3885
    Ответить
  • "Yellow Book" базируется на Red, но описывает хранение данных на диске
    (CD-ROM).

    Появился новый тип трека -- data. (да, все данные лежат в одном треке)
    Размер сектора стал 2048 (кратен двойке) остальное ушло под ECC, потому что
    для данных это важнее и под заголовок. Стандарт описывает несколько режимов (mode-1, mode-2,
    mode-2 XA).
    В mode-2 нет ECC, но он никогда и не используется, а в mode-2 XA уже опять
    есть.
    В заголовке указывается номер сектора, и mode.
    И так, в yellow book можно хранить на диске кучу 2К секторов с данными.
    https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-130.pdf
    Ответить
  • SCSI MMC
    Потокол SCSI MMC описывает пакеты для общения хоста с приводом.
    В ATA запустили тот же самый протокол (как и все прекрасное ATA и это спиздило
    у SCSI).
    ATAPI и означает Packet Interface.
    В общем, тот же самый SCSI MMC работает поверх ATA и получается ATAPI.
    Интерфейс описывает комманды типа UNLOAD (eject), READ TOC,READ
    SUBCHANNEL, PLAY (начать
    играть музыку в аналоговых выход) READ SECTOR итд.
    При чтении можно указывать конкретный формат сектора, и тогда прривод
    убедится, что сектор нужного типа и проверит ему ECC, а можно считать данные
    на низком уровне вместе с ECC, и дальше разбираться самому.
    http://www.13thmonkey.org/documentation/SCSI/x3_304_1997.pdf
    Ответить
  • Файловая система iso9660
    Yellow Book дает нам блочное устройство, и поверх его можно наворотить
    файловую систему.
    Вендоры решили сделать ее обшепонятной, и так родилась High Sierra, которая
    была стандартизована как is9660 или же ecma-119.
    У спеки есть три ревизии: в последней файл может быть фрагментирован.
    В начале тома идет пустое место (именно туда обычно пхают MBR у кентавров),
    затем идут Volume Descriptors: такие таблицы с данными.
    В каждой таблице указан её тип. Завершается всё Volume Descriptor с типом
    Terminate.
    Первый дескриптор имеет тип Primary. В нем указывается
    * метка тома
    * размер тома
    * дата созданя
    * дохуя всего
    * адрес path table, где уже собственно и начинаются директории
    https://www.ecma-international.org/publications/standards/Ecma-119.htm
    Ответить
    • > кентавров
      Partition centipede more like
      Ответить
  • Расширения 9660
    Изначальный 9660 убог: только английски буквы в файлах, файлы не длинее 8.3
    (чтобы везде работать итд)
    Но
    Каждая запись о директории содержит область system usage area, которую можно
    использовать под свои нужны.
    Формат SUSP (IEEE P1281) предлагает через эту область связать с записью
    двухбуквенный ключ и значение.
    Этим воспользовались авторы расширений:


    Rock Ridge (UNIX) хранят там юниксовые таймстемпы, id пользователя и группы и
    пермишены.
    http://www.nextcomputers.org/NeXTfiles/Projects/CD-ROM/Rock_Ridge_Interchange_Protocol.pdf

    Joilet (Windows) хранит там длинные юникодные имена, а еще делает отдельны
    Volume Descriptor чтобы использовать уникодные имена и в метке тома.

    Romeo тоже пытался хранить длинные имена, но он не нужен так как не может в
    уникод.
    Ответить
  • Эль Торито
    Особый тип Volume Descritpr -- boot позволяет сообщать биосу как грузить
    сидиром.
    В этом дескрипторе есть указатель на Boot Catalog.
    В Boot Catalog указан тип загрружаемой питушни.
    * FDD Emulation: биос загужает образ дискеты в память, дает к ней доступ через
    13h, и передает ей упарвление
    * HDD Emulation: тоже самое, но только образ диска
    * No emulation: BIOS загужает указанное количество кластеов в память, и
    передает им управление. Код должен сам уметь найти CD-ROM и считать нужные
    данные.

    https://pdos.csail.mit.edu/6.828/2014/readings/boot-cdrom.pdf
    Ответить
  • Orange book
    Стандарт описывает CD-R и CD-RW разных скоростей (состоит из трех частей).
    Физически они устроены сложнее CD, но нас интересует, что у них есть спец
    область ПЕРЕД in-lead, недоступная обычным приводам (не пишушим)
    Это область PMA (еще есть PCA, где указаны пааметры записи диска, и где привод
    тренируется).

    Ради этого стандарта были добавлены новые комманды в SCSI MMC (вышла новая
    версия MMC), нужные для записи (SET SPEED, WRITE **, итд)
    Стандарт описиывает три техники записи:
    * Disk at once: диск записывается целиком, и резульат мало отличается от Red
    book, и боль-мень всеми понимаем.

    * Track at once: можно записать трек, и остановиться.
    TOC в таком случае помещается не in-lead, а в PMA.
    Такой диск считается "не закрытым", и обычные приводы его не видят.
    После записи диск нужно закрыть: (коммманда CLOSE в SCSI MMC):
    при этом TOC переносится из PMA в in-lead, и его уже могут читать приводы.

    * Packet: при этой технике в треки можно дописывать изменяя TOC.

    Книга так же вводит понятие сессий:
    сессия имеет in-lead, треки и out-lead, и таких сессий может быть много.
    TOC незакрытой сессии хранится в PMA. После закрытия сессии можно начинать
    писать новую.
    TOC сессии имеет ссылку на TOC следующей сессии.
    Только современный софт и совеменные приводы поддерживают множественные
    сессии.

    Все варианты (кроме disk at once) имеют накладные расходы: между треками (или
    сессиями) нужно пустое место, да и несколько TOCов занимают место.

    Orange CD-R
    https://www.ecma-international.org/publications/standards/Ecma-394.htm

    CD-RW https://www.ecma-international.org/publications/standards/Ecma-395.htm
    Ответить
    • А обычные приводы видели только первую сессию же?
      Ответить
      • Позже появились непишущие приводы, которые нормально читали многосессионные диски. А старые, кажется, и вправду видели только первую.

        Ещё если случайно поцарапать последнюю сессию, то может загрузиться Volume Descriptor из предпоследней сессии (ну или из последней среди тех, которые ещё не поцарапаны).

        А ещё старые приводы не видели CD-RW диски. CD-R читали, а вот CD-RW — нет, потому что у них записывающий слой располагается на другой глубине, и лазер не мог на нём сфокусироваться.
        Ответить
        • >А старые, кажется, и вправду видели только первую.
          Если она закрыта и перенесена в In-Lead.


          >потому что у них записывающий слой располагается на другой глубине
          Да, физически они очень разные, и старые лазеры не могли в rw. Но в этом тредике мы больше про логическое, а не про физику. Иначе придется углубляться в pits and lands, положки и там вообще целый мир
          Ответить
      • Первые приводы вообще ничего не знали о сессиях, и могли читать TOC только из In-Lead.
        Так что если сессия не закрыта (и ее TOC лежит в PMA) то они вообще ничего не видели, либо видели предпоследнюю сессию (чей TOC остался в In-lead с прошлого раза)

        > Only Finalized Sessions can in general be played back on conventional CD players.
        https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-394.pdf
        Ответить
  • UDF
    Это файловая система (ставшая де-факто для DVD) поддеживающая дописывание в
    конкретный файл. Если скрестить ее с CD-RW в режиме Packet, то можно добиться
    почти обычного блочного устойства, как HDD или дискета.
    http://www.osta.org/specs/
    Ответить
  • Mount Rainier (CD-MRW)
    Расширение Orange Book, позволяющее приводу самому очищать диск в фоновом
    режиме: вставил, и сразу можно писать. Этот формат должен поддерживать
    и привод, и SCSI MMC. Разбираться с ним мне лениво, досвидания.
    Ответить
  • еще надо рассказать про скорости (Constant linear velocity, Constant Angular Acceleration и пр) но мне лень
    Ответить
  • Как скрывать треды на хузе?
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8