Пользовательская информация хранится в ячейках энергонезависимой памяти NVM. Для этого в ней создается простая и своеобразная файловая система. Поскольку файловая система SIM-карты целиком и полностью «завязана» на функциональность сетей сотовой связи, часто ее называют файловой системой GSM.
В корневом каталоге MF (Master File) находятся подкаталоги DF (Dedicated Files) и элементарные файлы EF (Elementary File). В подкаталогах хранятся сами файлы. Элементарные файлы EF содержат служебную информацию, например код IMSI абонента, список языков и т.д. Каждый файл состоит из заголовка (header) и тела (body). Заголовок описывает структуру файла и его атрибуты, а тело содержит данные. Файлы на SIM-карте бывают трех типов: прозрачные, линейные и циклические:
-
прозрачный файл является обычным двоичным файлом. Он состоит из последовательности байтов, доступных по отдельности и блоками. Блок описывается относительным адресом (offset) и длиной (length);
-
линейный (линейно-фиксированный) файл состоит из записей (records) фиксированной длины, расположенных последовательно. Максимальный объем такого файла составляет 255 записей по 255 байтов без учета расширения. В таком виде хранятся записи телефонного справочника или сохраненные сообщения SMS;
-
циклический файл содержит определенное число записей фиксированной длины. Он построен по типу стека: каждая новая запись всегда попадает на первую позицию, а последняя запись оказывается затертой. В этих файлах содержатся списки последних вызовов и некоторая другая вспомогательная информация.
Файловая система SIM-карты как нельзя лучше иллюстрирует положение о том, что любая ФС по сути является базой данных. Поскольку в SIM-карте и вычисли тельные ресурсы процессора, и объем памяти крайне ограниченны, логика ФС идеально «подогнана» под характер хранящихся в ней сведений. Прозрачные файлы считываются и записываются целиком. В линейно-фиксированных файлах, состоя щих из записей, нужно в дополнение указать, к какой именно из них следует обращаться. Отличие циклического файла заключается в том, что если выбрана последняя запись в файле и поступила команда выбрать следующую, в циклическом файле будет выбрана первая запись.
Особенность файловой системы GSM в том, что имена большинства файлов и их расположение (смещение относительно начала области пользовательской памяти) строго регламентированы. Многие файлы даже не поименованы: они находятся всегда по одним и тем же смещениям, и обычно их указывают просто адресом начальной ячейки. Например:
-
0x6F05 — Language preference (язык);
-
0x6F07 — International Mobile Subscriber Identity, IMSI (международный идентификационный номер абонента мобильной связи);
-
0x6F39 — Accumulated call meter (счетчик вызовов);
-
0x6F42 — Short message service parameters (параметры SMS);
-
0x6F43 — SMS status (состояние SMS);
-
0x6F44 — Last number dialled (последний набранный номер).
Полный список файлов занимает несколько страниц печатного текста. При необходимости вы можете найти его в Интернете в описании стандарта GSM. Также перечень основных файлов SIM-карты приводится в документации ко многим про граммам и считывателям.