Виктор Гольцман - Компьютер + мобильник: эффективное взаимодействие
Запоминающие устройства
Возникает следующий вопрос: как связаны между собой аппаратная и программная составляющие? Существуют электронные компоненты, которые способны «запоминать» поступающие на них электрические сигналы, сохранять информацию, а потом вновь воспроизводить. Запоминающие устройства обязательно входят в состав компьютеров, мобильных телефонов, да и многих других «умных» приборов: от кондиционера до телевизора. Любое такое устройство можно представить как множество ячеек, в каждую из которых помещается элементарная порция информации – 1 байт. Именно тут физически записано программное обеспечение. При включении питания какая-то «начальная программа» должна быть передана процессору. В первый момент это чисто электрический процесс: из строго определенных ячеек памяти информация «выстреливается» в процессор. Выполняя команды, процессор начинает опрашивать запоминающие устройства, считывает и выполняет записанные там программы, переходит к следующим инструкциям, далее происходит загрузка компьютера (телефона).
В персональном компьютере информация хранится в нескольких устройствах (рис. 7.1). Операционная система, все прикладные программы и пользовательские данные хранятся на жестком диске. Жестких дисков может быть несколько. Кроме них, существуют и другие, например компакт-диски, flash-диски и карты памяти, которые физически дисками вообще не являются. Объединяет их одно: информация на любых дисках организована в форме файлов. Другими словами, почти все программное обеспечение компьютера заключено в файловой системе. В принципе, какую-либо программу можно записать не на жесткий диск, а на съемный носитель (компакт– или flash-диск) и запускать непосредственно с этого носителя.
Файловую систему иногда называют разметкой диска. Она напоминает оглавление книги или таблицу, в которой с именами файлов сопоставлены определенные области запоминающего устройства. Благодаря файловой системе мы можем обращаться к конкретным порциям информации «по имени». Мы вводим имя файла, а в ответ компьютер считывает с диска последовательность байт. При этом не имеет значения, записаны ли эти байты в виде намагниченных участков жесткого диска или содержатся в виде электрических зарядов в ячейках flash-диска.
За пределами файловой системы существует только программа BIOS – базовая система ввода-вывода. Она записывается в микросхему, находящуюся на материнской плате, в процессе ее изготовления. Средства BIOS включают в себя загрузчик, исполняемый код программы ввода-вывода, и значения настроек. Основная ее задача – начальная загрузка компьютера. Когда она выполнена, управление переходит к операционной системе.
Рис. 7.1. Физическая и логическая структура постоянной памяти компьютера.
В телефоне запоминающие устройства представлены только микросхемами. В самом общем случае таких микросхем три.
• Ячейки памяти, в которых содержится загрузчик, физически находятся в микросхеме процессора. Загрузчик – микропрограмма, при выполнении которой процессор начинает считывать содержимое остальных областей памяти.
• Вторая микросхема называется EEPROM (электрически стираемое программируемое постоянное запоминающее устройство). В ее ячейках памяти хранятся все индивидуальные настройки телефона, связанные с аппаратной частью: параметры аудиотракта, радиопередатчика, уникальный номер аппарата (IMEI), параметры аккумулятора и т. д. Эти данные очень напоминают настройки BIOS компьютера.
• Третья микросхема – микросхема flash-памяти (Flash Memory); емкость ее в разных аппаратах варьируется от 1 до 32 Мб. В ней записана прошивка (Firmware) телефона, состоящая из двух частей.
– Программный код (Flash или Main Code) – это собственно программа, которую выполняет аппаратная часть телефона. Ее принято сравнивать с операционной системой компьютера. Операционная система состоит из множества файлов (программ, их компонентов и файлов настроек), каждый из которых выполняет свою достаточно узкую функцию. Такие действия, как просмотр файлов мультимедиа, в компьютере возложены на отдельные прикладные программы. Программный код телефона – единое целое, он включает в себя все функции данного аппарата. Поэтому если на компьютере отдельные прикладные программы можно устанавливать и удалять, то прошивку заменяют только целиком. Языковой пакет (Lang) неразрывно связан с программным кодом и обеспечивает поддержку различных языков интерфейса. Кроме того, языковой пакет содержит словари для быстрого набора SMS (поддержку функций iTap или T9).
– Другая часть прошивки, Flex, – файловая часть. Она содержит файлы системных настроек (Seems), значков, стандартных мелодий, картинок, шаблонов сообщений, а также файлы расположения меню, конфигурации подсветки и др. Иначе говоря, Flex является файловой системой телефона. Здесь же содержатся записи телефонной книги и ежедневника (User Data), хотя эти данные явно и не отображаются файловой системой.
Такова классическая схема запоминающих устройств или областей памяти телефона (рис. 7.2). Она совпадает с перечнем составляющих программного обеспечения трубки. Во многих моделях запоминающие устройства организованы иначе, хотя функциональное назначение составляющих в целом сохраняется. Например, в большинстве современных телефонов микросхема EEPROM физически отсутствует, а под нее выделяют область в микросхеме flash-памяти. В некоторых телефонах Motorola в единственной микросхеме памяти размещены и загрузчик, и EEPROM, и прошивка со всей файловой системой. Из всего перечисленного файловой структурой обладает только Flex, а остальное программное обеспечение хранится в запоминающих устройствах телефона в виде безымянной непрерывной последовательности байт. Этим телефон очень напоминает BIOS компьютера. Не случайно BIOS тоже называют прошивкой.
Понятием SEEM обозначают отдельные записи в памяти телефона, в которых содержатся настройки телефона, IMEI, удаленные SMS и телефонная книга. Это не область памяти, а лишь собирательное название ячеек, хранящих информацию определенного рода. Часть ячеек SEEM входит в EEPROM, а часть – во FLEX.
Рис. 7.2. Физическая и логическая структура памяти телефона.
В памяти телефонов Motorola особо выделяют область PDS – это уникальная для каждого телефона зона безопасности, содержащая часть SEEM, адрес для сетевого соединения Bluetooth, сведения об операторской блокировке, кодах и паролях, историю прошивок и другую служебную информацию. Функционально PDS соответствует EEPROM других телефонов. Со стертым или неправильным PDS телефон включается только во flash-режим.
Panics – это область памяти, идущая сразу за PDS, в которую телефон записывает информацию об ошибках и сбоях программного обеспечения. Panics не затирается при перепрошивке, уничтожить эту информацию можно только принудительно. Прочитать сообщения Panics можно средствами самого телефона через меню.
Мы умышленно не упомянули о SIM-карте и картах памяти. Первая, несмотря на крошечные размеры, является сложным и вполне самостоятельным устройством, которое сообщает телефону отдельные данные для входа в сеть оператора. Часть своей памяти SIM-карта может предоставить для хранения записей телефонной книги, но эта память никоим образом не является запоминающим устройством самого телефона. Карты памяти представляют собой обычные съемные носители информации с собственной файловой системой, и к телефону непосредственного отношения также не имеют. Когда они подключены к телефону, их содержимое отображается вместе с пользовательскими файлами, хранящимися во Flex.
На протяжении предыдущих глав вы сталкивались только с той частью программного обеспечения телефона, которая чуть выше была обозначена как Flex. Именно ее содержимое просматривают и изменяют программы-менеджеры.
Важно, что файловая информация в компьютере не привязана к каким-либо определенным ячейкам или адресам: она записывается на первое свободное место, а в файловой системе отмечается, что содержимое такого-то файла находится в таком-то месте на диске. Совершенно иначе обстоит дело с программным обеспечением телефона: для каждого компонента отведено строго определенное число ячеек (байт) по заранее определенным адресам памяти. Для Flex тоже выделен четкий диапазон адресов, а уже внутри этого диапазона файлы произвольного размера могут располагаться как угодно.
Ячейки памяти принято нумеровать в шестнадцатеричной (hex) системе. Если в обычной десятичной системе мы считаем до десяти, а затем добавляем единицу в следующий разряд, то в шестнадцатеричной считают до шестнадцати. Естественно, одних цифр для такой записи недостаточно и вместо «10» пишется «A», вместо «11» – «B», и так до «F». Поэтому адрес (номер) ячейки может выглядеть как 10B1F7FF. Диапазон адресов обозначают начальным и конечным адресом, например 10B1F800–10B1FFFF. Можно встретить и другое обозначение диапазона: «начальный адрес 10B1F800, смещение 7FF». Смещение – всего лишь количество ячеек после начального адреса, записанное шестнадцатеричным числом. В данном случае количество ячеек равно 2047.