РАСШИРЯЕМАЯ ФАЙЛОВАЯ СИСТЕМА
EXTENSIBLE FILE SYSTEM

Эта заявка испрашивает приоритет по предварительной заявке на патент США №60/637407 под названием “ФОРМАТ ФАЙЛОВОЙ СИСТЕМЫ ДЛЯ ПОРТАТИВНЫХ НОСИТЕЛЕЙ”, поданной 17 декабря 2004 и включенной в данное описание путем ссылки.
УРОВЕНЬ ТЕХНИКИ
Среди портативных вычислительных устройств имеется ряд устройств типа цифровых камер для получения фотоснимков, цифровых видеокамер, медиа-плейеров, мобильных телефонов, мобильных вычислительных устройств, персональных цифровых помощников и т.п., в которых данные хранятся на носителях информации, таких как портативные носители информации. Продолжающееся развитие более сложных портативных вычислительных устройств и портативных носителей информации с большей емкостью памяти предъявляет все возрастающие требования к гибкости формата файловой системы, используемого на носителях информации. Современные подходы к формату файловой системы могут стать не отвечающими требованиям с точки зрения возможности обеспечения необходимой гибкости по отношению к увеличивающимся емкостям памяти и/или областям применения носителей информации.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Предлагается формат расширяемой файловой системы для портативных носителей информации. Формат расширяемой файловой системы включает в себя спецификацию типов первичных и вторичных записей каталога, которые могут быть заказными. Типы первичных и вторичных записей каталога могут быть дополнительно классифицированы как критические (т.е. содержащие информацию, критическую для работы файловой системы) записи каталога и неопасные (т.е. содержащие дополнительную информацию, которая может быть полезной при работе файловой системы) записи каталога.
В соответствии с одним объектом настоящего изобретения предлагается компьютерно-читаемый носитель информации, имеющий компьютерно-исполняемые компоненты для запоминания данных. В состав компьютерно-читаемых компонентов может входить компонент загрузочных параметров для спецификации загрузочных параметров для файловой системы. В состав компьютерно-читаемых компонентов также входит компонент таблицы размещения файлов для определения таблицы размещения файлов, ассоциированной с файловой системой. В состав компьютерно-читаемых компонентов дополнительно входит компонент первичной записи каталога для спецификации данных в корневом каталоге файловой системы. В состав компьютерно-читаемых компонентов также дополнительно входит, по меньшей мере, один компонент вторичной записи, соответствующий компоненту первичной записи каталога. Компонент вторичной записи определяет метаданные, ассоциированные с компонентом первичной записи каталога. Первичные и вторичные компоненты записи каталога могут быть дополнительно классифицированы как критические или неопасные.
В соответствии с другим объектом настоящего изобретения предлагается компьютерно-читаемый носитель информации, имеющий компьютерно-исполняемые компоненты для запоминания данных. В состав компьютерно-читаемых компонентов входит компонент загрузочных параметров для спецификации загрузочных параметров для файловой системы. В состав компьютерно-читаемых компонентов также входит компонент таблицы размещения файлов для определения таблицы размещения файлов, ассоциированной с файловой системой. В состав компьютерно-читаемых компонентов также дополнительно входит компонент корневого каталога для спецификации данных в корневом каталоге файловой системы. В состав компьютерно-читаемых компонентов дополнительно входит один, по меньшей мере, расширяемый компонент метаданных, соответствующий компоненту записи корневого каталога. Компонент метаданных определяет метаданные, ассоциированные с компонентом корневого каталога.
В иллюстративном примере осуществления файловая система не будет монтировать том для критической первичной записи каталога или записи корневого каталога, которая является нераспознанной. Файловая система может игнорировать неопасные первичные записи каталога, критические вторичные записи каталога и неопасные вторичные записи каталога, которые являются нераспознанными.
Приведенное краткое изложение сущности изобретения позволяет в упрощенной форме представить выбор концепций, дополнительно рассматриваемых ниже в разделе “Подробное описание”. Это краткое изложение не может служить ни для идентификации ключевых признаков заявленного предмета изобретения, ни в качестве помощи при определении его объема.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеупомянутые объекты и многие из преимуществ этого изобретения станут более очевидными и понятными из следующего ниже подробного описания, сопровождаемого ссылками на прилагаемые чертежи, на которых:
Фиг.1A-1C - блок-схемы иллюстративной среды, включающей в себя портативное вычислительное устройство и запоминающее устройство, реализующие формат расширяемой файловой системы согласно объекту настоящего изобретения;
Фиг.2 - блок-схема, иллюстрирующая различные компоненты макета тома, соответствующие формату расширяемой файловой системы согласно объекту настоящего изобретения;
Фиг.3 - блок-схема, иллюстрирующая структуры каталога расширяемой файловой системы, включающие в себя структуры первичных и вторичных записей каталога согласно объекту настоящего изобретения;
Фиг.4 - блок-схема, иллюстрирующая компоненты данных для реализации блока загрузочного процесса в формате расширяемой файловой системы согласно объекту настоящего изобретения;
Фиг.5 - блок-схема, иллюстрирующая компоненты данных для реализации записей каталога в формате расширяемой файловой системы согласно объекту настоящего изобретения;
Фиг.6 - блок-схема, иллюстрирующая компоненты данных для реализации имени и расширений файла в формате расширяемой файловой системы согласно объекту настоящего изобретения;
Фиг.7 - блок-схема, иллюстрирующая компоненты данных для реализации идентификатора тома в формате расширяемой файловой системы согласно объекту настоящего изобретения;
Фиг.8 - блок-схема, иллюстрирующая компоненты данных для реализации расширяемой записи каталога в формате расширяемой файловой системы согласно объекту настоящего изобретения;
Фиг.9 - блок-схема, иллюстрирующая компоненты данных для реализации расширяемой записи каталога в формате расширяемой файловой системы согласно объекту настоящего изобретения;
Фиг.10 - блок-схема, иллюстрирующая компоненты данных для реализации списка контроля доступа в формате расширяемой файловой системы согласно объекту настоящего изобретения; и
Фиг.11 - блок-схема, иллюстрирующая подпрограмму создания имени файла для формата расширяемой файловой системы согласно объекту настоящего изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
В основном настоящее изобретение относится к формату расширяемой файловой системы и различным процессам, ассоциированным с форматом расширяемой файловой системы. В иллюстративном примере осуществления формат расширяемой файловой системы соответствует формату расширяемой файловой системы для портативных носителей информации и различным процессам, ассоциированным с форматом расширяемой файловой системы на портативных носителях информации. Несмотря на то, что описание настоящего изобретения ведется применительно к формату файловой системы портативных носителей информации, специалисту в соответствующей области техники должно быть очевидно, что раскрытые примеры осуществления носят иллюстративный характер и не рассматриваются как ограничение. Кроме того, специалисту в соответствующей области техники должно быть очевидно, что структуры данных и макеты данных, используемые в иллюстративных примерах, могут требовать дополнительной информации, связанной с производительностью, безопасностью и т.п.
На фиг.1A-1C представлены блок-схемы, иллюстрирующие различные операционные среды 100 для формата расширяемой файловой системы, являющейся объектом настоящего изобретения. Как показано на фиг.1A, в иллюстративном примере осуществления формат расширяемой файловой системы используется для запоминания данных, источником которых является вычислительное устройство типа мобильного вычислительного устройства 102 и носители информации типа портативных носителей 104 информации. В иллюстративном примере осуществления мобильное вычислительное устройство 102 может соответствовать любому из множества вычислительных устройств, включая портативные вычислительные устройства, мобильные телефоны, персональные цифровые помощники, музыкальные плейеры, медиа-плейеры и др. Среди портативных носителей информации можно также назвать жесткие диски, флэш-носители, микродиски и другие носители информации. В иллюстративном примере осуществления расширяемая файловая система на портативных носителях 104 информации не должна включать в себя ни одного типа исполняемых или читаемых программных компонентов, таких как операционная среда, используемая мобильным вычислительным устройством 102. С другой стороны расширяемая файловая система на портативных носителях 104 информации может включать в себя исполняемые или читаемые программные компоненты, используемые мобильным устройством 102.
В иллюстративном примере осуществления мобильное вычислительное устройство 102 может обмениваться информацией с другими вычислительными устройствами для сбора/обмена данных, подлежащих сохранению на портативных носителях 104 информации. Как показано на фиг.1B, мобильное вычислительное устройство 102 может напрямую обмениваться информацией с другим вычислительным устройством 106 и носителями 108 информации. В иллюстративном примере осуществления прямой обмен информацией может осуществляться различными способами проводной и беспроводной связи. В иллюстративном примере осуществления форматирования других носителей 108 информации в соответствии с форматом расширяемой файловой системы, являющимся объектом настоящего изобретения, не требуется. Как показано на фиг.1C, подобным образом мобильное вычислительное устройство 102 может также обмениваться информацией с другим вычислительным устройством 110 и носителями 112 информации через сетевое подключение. В иллюстративном примере осуществления сетевое подключение может обеспечиваться через локальную сеть (LAN) и глобальную сеть (WAN).
Далее со ссылками на фиг.2 описывается иллюстративный пример осуществления макета 200 тома для формата расширяемой файловой системы. Макет 200 тома включает в себя компонент 202 загрузочных параметров, которые включают в себя различную информацию, связанную с описанием параметров файловой системы раздела. В иллюстративном примере осуществления компонент 202 загрузочных параметров может включать в себя код для начальной загрузки из определенного раздела, основные параметры файловой системы для определенного раздела и различную информацию для контроля ошибок. Описание структуры данных для определения, по меньшей мере, части загрузочных параметров приводится ниже со ссылками на фиг.4.
Макет 200 тома также включает в себя расширяемый компонент параметров, обозначенный как OEM-параметры 204, которые определяют различные дополнительные структуры данных, используемые в связи с файловой системой. В иллюстративном примере осуществления изготовитель комплексного оборудования (OEM) может специфицировать различные расширяемые структуры данных типа параметров производительности для носителя данных, которые могут быть определены во время изготовления. Макет 200 тома может дополнительно включать в себя компонент 206 таблицы размещения файлов, который определяет размещение файлов и каталогов. В иллюстративном примере осуществления каждая запись в компоненте 206 таблицы размещения файлов соответствует 32-разрядной записи, которая представляет занятый кластер, незанятый кластер или непригодный кластер. Макет 200 тома может еще дополнительно включать в себя ряд компонентов 208A-208X данных файла, которые соответствуют данным, хранимым в соответствии с форматом файловой системы. Описание различных структур данных для определения части компонентов 208A-208X данных файла приводится со ссылками на фиг.3-10.
Как показано далее на фиг.3, в одном объекте изобретения компоненты 208 данных файла могут включать в себя одну или более записей каталога в соответствии со структурой 300 каталога. В иллюстративном примере осуществления структура 300 каталога организована в виде первичных записей 302 каталога и вторичных записей 304 каталога. Каждая запись каталога в первичных и вторичных записях отнесена к определенному типу. Например, в иллюстративном примере осуществления значения типов для первичных и вторичных записей каталога могут соответствовать диапазону 1-255. Первичные записи 302 каталога соответствуют записям в корневом каталоге файловой системы. Вторичные записи 304 каталога следуют за первичной записью каталога и ассоциированы с первичной записью каталога. Вторичные записи каталога расширяют метаданные, ассоциированные с коррелированной первичной записью каталога.
Как показано также на фиг.3, в иллюстративном примере осуществления первичные записи 302 каталога могут быть дополнительно классифицированы как критические первичные записи 306 каталога и неопасные первичные записи 308 каталога. Критические первичные записи 306 каталога определяют потенциально различные форматы для каждой записи каталога. В иллюстративном примере осуществления операционная среда не будет монтировать том, соответствующий формату расширяемой файловой системы с неопознанной критической первичной записью каталога, как будет описано ниже. Среди примеров опознанных первичных записей 306 каталога можно назвать битовые карты распределения, таблицы верхнего регистра, метки тома, ключи шифрования и нормальные записи каталога. Неопасные первичные записи 308 каталога также определяют потенциальные различные форматы для каждой записи каталога, но могут быть игнорированы файловой системой, если конкретная неопасная первичная запись каталога является нераспознанной. Неопасные первичные записи 308 каталога могут быть ассоциированы с другой цепочкой кластеров тома. Дополнительно, неопасные первичные записи 308 каталога могут быть также ассоциированы с рядом вторичных записей 304 каталога.
Подобно первичным записям 302 каталога вторичные записи 304 каталога могут быть также дополнительно классифицированы как критические вторичные записи 310 каталога и неопасные вторичные записи 312 каталога. Как описано выше, критические вторичные записи 310 каталога и неопасные вторичные записи 312 каталога ассоциированы с неопасной первичной записью каталога и расширяют метаданные, ассоциированные с первичной записью каталога. И критические вторичные записи 310 каталога, и неопасные вторичные записи 312 каталога могут быть ассоциированы с другой цепочкой кластеров тома.
Для монтирования тома, соответствующего формату расширяемой файловой системы, файловая система реализует процедуру монтирования тома. В иллюстративном примере осуществления процедура монтирования тома делает попытку просмотра тома в номере версии. В случае нераспознавания номера версии (например, при более высоком номере версии), том смонтирован не будет. Во время нормального перечисления каталога любые критические первичные записи каталога, не опознанные файловой системой, предотвратят монтирование тома. После этого различные инициированные пользователем процессы типа открытия файла обеспечат перечисление вторичных записей каталога файловой системой. Если критические вторичные записи 310 каталога не будут опознаны файловой системой, запись каталога будет пропущена полностью. Кроме того, если неопасные вторичные записи 312 каталога не будут опознаны файловой системой, конкретная неопознанная неопасная вторичная запись каталога будет игнорирована.
Далее со ссылками на фиг.4 приводится описание блок-схемы, иллюстрирующей компоненты 400 данных для реализации блока загрузочного процесса в компоненте 202 загрузочных параметров (фиг.2). В состав компонентов 400 данных входит компонент 402 OEM-имени для спецификации имени для формата файловой системы носителей информации. В состав компонентов 400 данных также входит компонент 404 дескриптора размера данных для спецификации различных характеристик данных, хранимых в файловой системе. Например, компонент 404 дескриптора размера данных может специфицировать число байтов в секторе, число секторов в блоке размещения, смещение FAT-таблицы и число секторов для всех структур данных. В состав компонентов данных входит компонент 406 флагов активных FAT для спецификации числа активных FAT в файловой системе. В иллюстративном примере осуществления файловая система может поддерживать множество FAT для использования с некоторыми средами операционных систем. В состав компонентов 400 данных может дополнительно входить компонент 408 идентификации тома для идентификации серийного номера тома и/или номера версии. Кроме того, в состав компонентов 400 данных может входить тип файловой системы для спецификации формата файловой системы для файловой системы. Специалисту в соответствующей области техники очевидно, что компоненты 400 данных могут включать в себя ряд дополнительных/других строк для реализации идентифицированных выше компонентов 402-410 и дополнительных компонентов.
Далее со ссылками на фиг.5 приводится описание блок-схемы, иллюстрирующей компоненты 500 данных для реализации записей каталога в формате расширяемой файловой системы. Далее со ссылками на фиг.6 приводится описание компонентов 500 данных для реализации имени и расширений файла. В состав компонентов 500 данных входит компонент 502 использования для спецификации использования или не использования конкретной записи каталога. В иллюстративном примере осуществления при использовании записи каталога старшему разряду компонентов данных присваивается значение “1”. В состав компонентов 500 данных дополнительно входит компонент 504 обозначения типа для спецификации ассоциированности записи каталога с нормальной записью каталога. В состав компонентов 500 данных дополнительно входит компонент 504 вторичных записей каталога для спецификации ряда вторичных записей, ассоциированных с нормальной записью каталога. В состав компонентов 500 данных также входит компонент 508 атрибутов файла для спецификации различных атрибутов файловой системы для записи каталога. Кроме того, в состав компонентов 500 данных входит компонент 510 времени для спецификации различной временной информации типа отметки времени создания, отметки времени модификации и другой временной информации. В состав компонентов 500 данных дополнительно входит компонент 512 часового пояса для спецификации часового пояса для последней созданной отметки времени. Специалисту в соответствующей области техники очевидно, что компоненты 500 данных могут включать в себя ряд дополнительных/других строк для реализации идентифицированных выше компонентов 502-512 и дополнительных компонентов.
Далее со ссылками на фиг.6 приводится описание блок-схемы компонентов 600 данных для реализации имени и расширений файла. В состав компонентов 600 данных входит компонент 602 использования для спецификации использования или не использования конкретной записи каталога. В иллюстративном примере осуществления при использовании записи каталога старшему разряду компонентов данных присваивается значение “1”. В состав компонентов 600 данных дополнительно входит компонент 604 обозначения типа для спецификации ассоциированности записи каталога с именем файловой системы. В состав компонентов данных дополнительно входит компонент 606 длины имени файла и хэш-компонент 608 имени файла. Использование хэш-компонента 608 имени файла описывается ниже. В состав компонентов 600 данных также входит компонент 610 имени файла для спецификации имени файла. Специалисту в соответствующей области техники очевидно, что компоненты 600 данных могут включать в себя ряд дополнительных/других строк для реализации идентифицированных выше компонентов 602-610 и дополнительных компонентов. Кроме того, записи каталога с именем файла могут быть расширены с помощью вторичных записей каталога.
Далее на фиг.7 представлена блок-схема, иллюстрирующая компоненты 700 данных для реализации идентификатора тома в формате расширяемой файловой системы. В состав компонентов 700 данных входит компонент 702 использования для спецификации использования или не использования конкретной записи каталога. В иллюстративном примере осуществления при использовании записи каталога старшему разряду компонентов данных присваивается значение “1”. В состав компонентов 700 данных дополнительно входит компонент 704 обозначения типа для спецификации ассоциированности записи каталога с идентификатором тома. В состав компонентов 700 данных дополнительно входит компонент 706 вторичных записей каталога для спецификации ряда вторичных записей, ассоциированных с идентификатором тома. В состав компонентов данных 700 также входит идентификатор 708 тома типа глобального уникального идентификатора. Специалисту в соответствующей области техники очевидно, что компоненты 700 данных могут включать в себя ряд дополнительных/других строк для реализации идентифицированных выше компонентов 702-708 и дополнительных компонентов. Кроме того, в иллюстративном примере осуществления компоненты 700 данных соответствуют неопасной записи каталога, которая может игнорироваться файловой системой, не поддерживающей идентификаторы тома.
Далее со ссылками на фиг.8 и 9 описывается иллюстративный пример осуществления, в котором стороны типа OEM имеют возможность определения конкретных типов неопасных первичных записей 308 каталога и конкретных типов неопасных вторичных записей 312 каталога. Как указано выше, в случае нераспознавания или непонимания файловой системой ни конкретных типов неопасных первичных записей 308 каталога, ни конкретных типов 312 неопасных вторичных записей файловая система может игнорировать определенные типы записей каталога.
Со ссылками на фиг.8 приводится описание блок-схемы, иллюстрирующей компонент 800 данных для реализации расширяемой неопасной первичной записи 308 каталога в формате расширяемой файловой системы. В состав компонентов 800 данных входит компонент 802 использования для спецификации использования или неиспользования конкретной записи каталога. В иллюстративном примере осуществления при использовании записи каталога старшему разряду компонентов данных присваивается значение ”1”. В состав компонентов 800 данных дополнительно входит компонент 804 обозначения типа для спецификации записи каталога как неопасной первичной записи каталога. В состав компонентов 800 данных дополнительно входит компонент 806 вторичных записей каталога для спецификации ряда вторичных записей, ассоциированных с идентификатором тома. В состав компонентов 800 данных также входит идентификатор 808 тома типа глобального уникального идентификатора. В состав компонентов 800 данных может также входить дополнительная информация 810 типа верификационной информации и информации о начальном кластере. Специалисту в соответствующей области техники очевидно, что компоненты 800 данных могут включать в себя ряд дополнительных/других строк для реализации идентифицированных выше компонентов 802-806 и дополнительных компонентов.
Со ссылками на фиг.9 приводится описание блок-схемы, иллюстрирующей компоненты 900 данных для реализации неопасной вторичной записи каталога в формате расширяемой файловой системы. Компоненты 900 данных включают в себя компонент 902 использования для спецификации использования или неиспользования конкретной записи каталога. В иллюстративном примере осуществления при использовании конкретной записи каталога старшему разряду компонентов данных присваивается значение ”1”. Компоненты 900 данных дополнительно включают в себя компонент 904 обозначения типа для спецификации записи каталога в качестве неопасной первичной записи каталога. Компоненты 900 данных дополнительно включают в себя компонент 906 вторичных записей каталога для спецификации ряда вторичных записей, ассоциированных с идентификатором тома. Компоненты 900 данных также включают в себя идентификатор 908 тома типа глобального уникального идентификатора. Кроме того, компоненты 900 данных могут включать в себя дополнительную информацию 910 типа верификационной информации и информации о начальном кластере. Специалисту в соответствующей области техники очевидно, что компоненты 900 данных могут включать в себя ряд дополнительных/других строк для реализации идентифицированных выше компонентов 902-906 и дополнительных компонентов.
В иллюстративном примере осуществления неопасная первичная запись каталога и/или вторичные записи каталога могут быть ассоциированы с информацией о списке контроля доступа (ACL). На фиг.10 представлена блок-схема, иллюстрирующая компоненты 1000 данных для реализации списка контроля доступа в формате расширяемой файловой системы. Компоненты 1000 данных включают в себя компонент 1002 использования для спецификации использования или неиспользования конкретной записи каталога. В иллюстративном примере осуществления при использовании записи каталога старшему разряду компонентов данных присваивается значение “1”. Компоненты 1000 данных дополнительно включают в себя компонент 1004 обозначения типа для спецификации записи каталога в качестве ACL-записи каталога. Компоненты 1000 данных дополнительно включают в себя ряд ACL-полей 1006 типа ACL-флагов, ACL-указателей баз данных и т.п. Специалисту в соответствующей области техники очевидно, что компоненты 1000 данных могут включать в себя ряд дополнительных/других строк для реализации идентифицированных выше компонентов 1002-1006 и дополнительных компонентов.
Далее со ссылками на фиг.11 приводится описание подпрограммы 1100 создания имени файла для формата расширяемой файловой системы. На этапе 1102 файловая система получает запрос на создание записи каталога с конкретным именем файла. В иллюстративном примере осуществления конкретное имя файла может соответствовать соглашению об именах типа соглашения об именах для изображений, полученных цифровой камерой. На этапе 1104 файловая система генерирует хэш целевого имени. На этапе 1106 начинается итерационный цикл, заключающийся в проверке хэш-значения следующей записи каталога. Выше, применительно к компонентам 600 данных было приведено описание иллюстративного типа записи каталога для сохранения хэш-значений записи каталога (фиг.6).
На этапе 1108 принятия решения проводится проверка на совпадение целевого хэш-значения и хэш-значения текущей записи каталога. В случае несовпадения подпрограмма 1100 возвращается на этап 1106 (пока все записи каталога не будут подвергнуты проверке). В случае совпадения хэш-значений на этапе 1108 принятия решения файловая система переходит на этап 1110 и получает полное имя файла для потенциально совпадающей записи каталога. Выше, применительно к компонентам 600 данных было приведено описание иллюстративного типа записи каталога для сохранения полных имен файлов в записях каталога (фиг.6). На этапе 1112 принятия решения проводится проверка на совпадение целевого имени файла и полного имени файла в потенциально совпадающей записи каталога. В случае совпадения подпрограмма 1100 завершается сообщением о конфликте, и файловой системе потребуется осуществить выбор нового имени файла. При несовпадении подпрограмма 1100 возвратится на этап 1106 принятия решения для продолжения проверки хэш-значений для всех записей каталога в файловой системе.
Согласно объекту настоящего изобретения посредством спецификации конкретных типов каталогов в изобретение могут быть включены различные дополнительные, функциональные возможности. Например, путем спецификации записи каталога потоков имен может быть обеспечена поддержка потоков имен. А использование конкретных алгоритмов шифрования и обменов ключами может также поддерживать дисковое шифрование. Кроме того, для автоматизации преобразования текущего часового пояса, осуществляемого по часовому поясу с выполненной записью каталога, преобразования часового пояса могут быть ассоциированы с записями каталога.
Выше были рассмотрены иллюстративные примеры осуществления изобретения, однако очевидно, что в иллюстрируемое на чертежах и описанное изобретение могут быть внесены различные изменения, не выходящие за пределы его существа и объема.
Примеры осуществления изобретения, в которых заявляется исключительное право собственности или преимущественное право, определяются приведенной ниже формулой изобретения.