Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт Шорин Дмитрий Владимирович

Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт
<
Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Шорин Дмитрий Владимирович. Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт : дис. ... канд. техн. наук : 05.13.01 Москва, 2006 130 с. РГБ ОД, 61:07-5/804

Содержание к диссертации

Введение

Глава 1. Основные исходные положения и анализ проблемной ситуации ... 10

1.1 Операционные системы смарт-карт 10

1.1.1 Понятие об операционной системе смарт-карты 10

1.1.2 История индустрии смарт-карт 12

1.1.3 Эволюция операционных систем смарт-карт 13

1.2 Выводы и постановка задачи 20

Глава 2. Основы построения операционной системы для смарт-карт, формализация и создание математической модели 22

2.1 Основы построения операционной системы смарт-карты 22

2.1.1 Ключевые узлы 22

2.1.2 Организация памяти 27

2.1.3 Процессор 33

2.1.4 Файловая система 36

2.1.5 Прикладные приложения 43

2.1.6 Интерпретатор языка высокого уровня 46

2.2 Формализованное представление операционной системы смарт-карты48

2.2.1 Исходные данные для построения модели 48

2.2.2 Используемый для описания математический язык 50

2.2.3 Константы и память 52

2.3 Математическая модель интерпретатора инструкций операционной системы смарт-карты 54

2.3.1 Инструкции как команды операционной системы 54

2.3.2 Выполнение инструкций 57

2.3.3 Жизненный цикл модели 60

2.4 Выводы 61

Глава 3. Проектирование операционной системы для смарт-карты 62

3.1 Способы разработки многофункциональной операционной системы 62

3.2 Способы обеспечения функциональной эквивалентности между программой для смарт-карты и ее копией на персональном компьютере . 63

3.3 Алгоритм применения принципа платформенной независимости при модульном распределении 66

3.4 Методика модульного распределения компонентов по признаку аппаратной зависимости 68

3.5 Компонентно-ориентированное решение 70

3.5.1 Архитектура операционной системы 72

3.5.2 Нотация имен в пакетах операционной системы 76

3.5.3 Структура и зависимости в Java-пакетах 76

3.5.4 Модульная расширяемость операционной системы 78

3.5.5 Жизненный цикл операционной системы 82

3.5.6 Надстройка над вводом-выводом аппаратного обеспечения 83

3.5.7 Функции защиты и аутентификации 86

3.5.8 Файловая система 90

3.5.9 Методика результирования при обработке команд 97

3.5.10 Обеспечение целостности данных в операционной системе... 100

3.5.11 Изоляция пакетов операционной системы 101

3.5.12 Виртуальная машина 102

3.5.13 Идентификатор операционной системы 108

3.6 Выводы 109

Глава 4. Анализ разработки 111

4.1 Сравнительный анализ сконструированной операционной системы 111

4.1.1 Позиционирование и конфигурация 111

4.1.2 Анализ эффективности 113

4.1.3 Преимущества и недостатки 118

4.2 Выводы 120

Заключение 122

Литература 123

Введение к работе

Актуальность темы

В последние годы популярность использования смарт-карт для идентификационных целей в областях телекоммуникаций, банковской сфере и биометрии заметно возросла из-за предъявляемых требований высокой безопасности и мобильности к переносимому персональному ключу.

Востребованность разработок для встраиваемых систем, которой в частности и является микроконтроллер смарт-карты, также весьма высока.

Разработками операционных систем для смарт-карт занимаются все производители смарт-карт: компании Gemalto, Gieseke&Devrient, Oberthur Card System, Sagem-Orga, XPonCard и др.

Развитие операционных систем для миниатюрных устройств с широкими возможностями функций защиты, высокой производительности и расширяемости обусловлено достижениями технического прогресса в области интегрального исполнения микросхемы, сочетающей в себе все средства по обеспечению не только интеллектуальных функций аутентификации и безопасного хранения персональной информации, но и выполнения приложений, разработанных на языке высокого уровня.

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

Недостатки и неполнота известных на сегодняшний день подходов для реализации программных комплексов для смарт-карт указывают на актуальность следующих проблем:

существующие методики построения программного комплекса для смарт-карты недостаточны для полной реализации комплекса;

отсутствует алгоритм применения принципа платформенной независимости при модульном распределении компонент системы;

отсутствие методик систематизации компонентов комплекса на автономные модули;

существует необходимость создания формализованного представления операционной системы для смарт-карты;

существует необходимость в математической модели, описывающей жизненный цикл операционной системы для смарт-карты;

не решена проблема применения существующих методик построения отдельных узлов программного комплекса для смарт-карты при его полной практической реализации.

Таким образом, можно утверждать, что разработка методики построения и практическая реализация программного комплекса операционной системы для встраиваемых (миниатюрных) устройств, который был бы максимально аппаратно-независимым и обладал бы модульной распределенностью, отвечает актуальности задач, стоящих перед производителями смарт-карт.

Цель работы

Целью диссертационной работы является разработка моделей, алгоритма и методики для практической реализации платформенно-независимого программного комплекса распределенной операционной системы для смарт-карты (ОССК).

Поставленная цель определяет следующие объекты и задачи диссертационного исследования.

1. Формализованное представление компонент операционной системы и

модель жизненного цикла:

исследование и анализ формализованных представлений операционных систем;

создание формализованного представления функциональности операционной системы для смарт-карты;

создание математической модели интерпретатора инструкций смарт-карты, воспроизводящей жизненный цикл операционной системы.

2. Алгоритмы и методика построения платформенно-независимого
программного комплекса:

создание алгоритма применения принципа платформенной независимости при модульном распределении компонент системы;

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

3. Реализация платформенно-независимого программного комплекса
распределенной операционной системы для смарт-карты:

использование алгоритма применения принципа платформенной независимости при модульном распределении компонент системы в ходе реализации операционной системы;

применение методики модульного распределения компонентов системы по признаку аппаратной зависимости при конструировании операционной системы;

анализ производительности операционной системы в сравнении с аналогами.

Научная новизна

В диссертационной работе осуществлено решение проблемы создания платформенно-независимого программного комплекса распределенной операционной системы для смарт-карты с использованием

новых и имеющихся методик построения. Научная новизна проведенного исследования заключается в создании совокупности технических разработок, методики, моделей и алгоритмов, осуществляющих системный и комплексный подход к задаче проектирования и практической реализации операционной системы для смарт-карты.

В ходе выполнения диссертационных исследований получены следующие новые научные результаты.

Разработано формализованное представление функциональности операционной системы для смарт-карты.

Разработан алгоритм применения принципа платформенной независимости при модульном распределении компонент системы.

Разработана методика модульного распределения компонентов системы по признаку аппаратной зависимости.

Осуществлена практическая реализация платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт.

Практическая значимость работы

Сконструированная на основе разработанных алгоритма и методики операционная система для смарт-карт решает задачу обеспечения базовой функциональности модульного остова и инкапсулирует необходимые аппаратно-зависимые функции, что служит основой для практической реализации специфической функциональности для любой области применения смарт-карты.

Открытая архитектура и исходный код разработанной операционной системы позволяют динамически конфигурировать систему, добавляя дополнительные модули или прикладные приложения, которые могут использоваться для конкретных задач аутентификации в

телекоммуникациях, банковских операциях или биометрическом сопоставлении.

Реализация результатов работы

Результаты работы нашли применение при конструировании операционной системы нового поколения, разрабатываемой ЭксПонКард А/С. На основе принципа объектно-ориентированного программирования и методики модульного распределения компонентов системы по признаку аппаратной зависимости реализован модуль GSM/USIM.

На защиту выносится

  1. Анализ состояния проблемы построения программных комплексов для смарт-карт.

  2. Формализованное представление функциональности операционной системы смарт-карт.

  3. Математическая модель интерпретатора инструкций операционной системы смарт-карт.

  4. Алгоритм применения принципа платформенной независимости при модульном распределении компонент системы.

  5. Методика модульного распределения компонентов системы по признаку аппаратной зависимости, обеспечивающая инкапсуляцию аппаратно-зависимых функций и выделение платформенно-независимых модулей в виде отдельной системы.

  6. Реализация платформенно-независимого программного комплекса распределенной системы для смарт-карт с применением принципа платформенной независимости, методики модульного распределения по признаку аппаратной зависимости и принципа объектно-ориентированного программирования.

Эволюция операционных систем смарт-карт

Смарт-карта была изобретена в 1967-1668 годах двумя немецкими инженерами Юргеном Детлоффом (Jurgen Dethloff) и Хельмутом Гретруппом (Helmut Grottrupp) [4]. Они подали заявку на свое изобретение в феврале 1969 года и в 1982 году получили немецкий патент DE 19 45 777 СЗ, озаглавленный «Identiflkanden/Identifikationsshalter» (нем. «идентификация, обладатель идентификатора»). Независимо от них Кунитака Аримура (Kunitaka Arimura) из японского Arimuro Technology Institute подал заявку на патент смарт-карты в Японии в марте 1970 года [5]. В мае следующего, 1971 года Пол Каструччи (Paul Castrucci) из IBM подал заявку на американский патент, названный «Information card» (англ. «информационная карта»), и 7 ноября 1972 года он был опубликован как U.S. Patent 3,702,464. Между 1974 и 1979 годами Ролан Морено (Roland Moreno) [6], французский журналист, подал 47 заявок на связанные со смарт-картами патенты в 11 странах и основал французскую компанию «Innovatron». Термин «смарт-карта» был введен французским публицистом Роем Брайтом (Roy Bright) в 1980 году [7].

Эволюция операционных систем для смарт-карт состояла из нескольких стадий, весьма схожих с этапами развития компьютерных систем в целом. С течением времени программы, изначально предназначенные для выполнения узкоспециализированной задачи, претерпевали изменения, расширяясь и модернизируясь. В результате у многих независимых друг от друга участников процесса разработки сформировались комплексы программ для смарт-карт общего назначения, которые были структурированы и в большей или меньшей степени расширяемы [8].

Программы для микроконтроллеров смарт-карт, существовавшие в начале 80-х годов прошлого столетия, вначале эволюции, не могли рассматриваться как настоящие операционные системы. Они были не более чем прикладной программой, заложенной в память ROM кристалла смарт-карты. Однако, из-за того, что изготовление программируемого маской микроконтроллера было недешевым, трудоемким и продолжительным процессом, спрос на программные комплексы общего назначения для смарт-карт рос достаточно быстро. Программы специального назначения, носившие прикладной характер, позиционировались над программным комплексом общего назначения, используя его как необходимую базу. Таким образом, прикладные программы размещались в EEPROM памяти кристалла смарт-карты. Это привело к повышению спроса на более емкие носители памяти в кристалле смарт-карты. Эта тенденция направила ряд разработчиков в противоположное пути развития операционной системы направление. В среднесрочной перспективе показалось эффективным экономить емкость несистемной памяти, разрабатывая узко-назначенные прикладные программы и сокращая размер базового кода, в ущерб развитию операционной системы.

Тем не менее, интерес рынка к многоцелевым решениям стимулирует разработчиков операционных систем разрабатывать свои комплексы программ таким образом, чтобы сделать их обобщенными и применимыми к любому запросу клиента. В такой ситуации нерационально работать над проектами индивидуальными назначения. Гораздо разумнее работать над универсальным ядром, расширение или конфигурация которого было бы решением конкретной инженерной задачи.

Вольфганг Ранкль и Вольфганг Эффинг (Wolfgang Rankl, Wolfgang Effing) в своей книге «Smart Card Handbook» [9] приводят в качестве примера эволюции операционных систем развитие смарт-карт для немецких мобильных сетей. Смарт-карты, используемые с 1987 года в C-Netz (немецкий предшественник GSM, также упоминается как D-Netz), имели операционную систему, которая настроена для использования в этих сетях. Специфика состояла в нестандартном протоколе обмена данными, специальных системных командах и файловой структуре, специально адаптированной для использования операционной системой. Можно считать, что эта смарт-карта имела свою операционную систему, хотя и исключительно предназначенную для работы в сетях C-Netz. Необходимые компоненты системы, основывающиеся на прикладных приложениях, были выполнены согласно требованиям операционной системы с библиотечным распределением системных функций, надстроенных над аппаратным обеспечением кристалла смарт-карты. Следующим этапом развития был переход от решений, специализированный для конкретной задачи, к архитектуре открытой операционной системы. Пример тому первая смарт-карта стандарта GSM, которая была спроектирована более структурировано и многофункционально. Как только смарт-карта стандарта GSM была технически описана, были предложены стандарты для последовательности команд и структур данных. Это послужило фундаментом, который был заложен для построения операционной системы. Пользуясь стандартами, разработку операционной системы можно было планировать шаг за шагом, вместо старого подхода проектирования архитектуры целиком, не имея никаких начальных основ. Прикладные приложения таких систем стали менее зависимы от аппаратного обеспечения и начали основываться на интерфейсах, предоставляемых операционной системой.

Современные операционные системы для GSM имеют такие компоненты как управление памятью, файловые деревья и поддержку прикладных приложений. Это дает повод рассматривать их как многозадачные операционные системы. Они могут управлять несколькими прикладными программами независимо, не предоставляя только пока самим приложениям возможности взаимодействовать друг с другом. Многие из операционных систем имеют сложную, но структурированную системную архитектуру, обширный набор обрабатываемых команд и несколько реализованных протоколов передачи данных.

Даже описанные операционные системы не представляют собой конец эволюционного процесса для смарт-карт. Например, смарт-карты для мобильных телефонов возлагают на себя все больше и больше обязанностей, таких как управление дисплеем или функциональное назначение клавиш телефона.

Исходные данные для построения модели

Смарт-карта была изобретена в 1967-1668 годах двумя немецкими инженерами Юргеном Детлоффом (Jurgen Dethloff) и Хельмутом Гретруппом (Helmut Grottrupp) [4]. Они подали заявку на свое изобретение в феврале 1969 года и в 1982 году получили немецкий патент DE 19 45 777 СЗ, озаглавленный «Identiflkanden/Identifikationsshalter» (нем. «идентификация, обладатель идентификатора»). Независимо от них Кунитака Аримура (Kunitaka Arimura) из японского Arimuro Technology Institute подал заявку на патент смарт-карты в Японии в марте 1970 года [5]. В мае следующего, 1971 года Пол Каструччи (Paul Castrucci) из IBM подал заявку на американский патент, названный «Information card» (англ. «информационная карта»), и 7 ноября 1972 года он был опубликован как U.S. Patent 3,702,464. Между 1974 и 1979 годами Ролан Морено (Roland Moreno) [6], французский журналист, подал 47 заявок на связанные со смарт-картами патенты в 11 странах и основал французскую компанию «Innovatron». Термин «смарт-карта» был введен французским публицистом Роем Брайтом (Roy Bright) в 1980 году [7].

Эволюция операционных систем для смарт-карт состояла из нескольких стадий, весьма схожих с этапами развития компьютерных систем в целом. С течением времени программы, изначально предназначенные для выполнения узкоспециализированной задачи, претерпевали изменения, расширяясь и модернизируясь. В результате у многих независимых друг от друга участников процесса разработки сформировались комплексы программ для смарт-карт общего назначения, которые были структурированы и в большей или меньшей степени расширяемы [8].

Программы для микроконтроллеров смарт-карт, существовавшие в начале 80-х годов прошлого столетия, вначале эволюции, не могли рассматриваться как настоящие операционные системы. Они были не более чем прикладной программой, заложенной в память ROM кристалла смарт-карты. Однако, из-за того, что изготовление программируемого маской микроконтроллера было недешевым, трудоемким и продолжительным процессом, спрос на программные комплексы общего назначения для смарт-карт рос достаточно быстро. Программы специального назначения, носившие прикладной характер, позиционировались над программным комплексом общего назначения, используя его как необходимую базу. Таким образом, прикладные программы размещались в EEPROM памяти кристалла смарт-карты. Это привело к повышению спроса на более емкие носители памяти в кристалле смарт-карты. Эта тенденция направила ряд разработчиков в противоположное пути развития операционной системы направление. В среднесрочной перспективе показалось эффективным экономить емкость несистемной памяти, разрабатывая узко-назначенные прикладные программы и сокращая размер базового кода, в ущерб развитию операционной системы.

Тем не менее, интерес рынка к многоцелевым решениям стимулирует разработчиков операционных систем разрабатывать свои комплексы программ таким образом, чтобы сделать их обобщенными и применимыми к любому запросу клиента. В такой ситуации нерационально работать над проектами индивидуальными назначения. Гораздо разумнее работать над универсальным ядром, расширение или конфигурация которого было бы решением конкретной инженерной задачи.

Вольфганг Ранкль и Вольфганг Эффинг (Wolfgang Rankl, Wolfgang Effing) в своей книге «Smart Card Handbook» [9] приводят в качестве примера эволюции операционных систем развитие смарт-карт для немецких мобильных сетей. Смарт-карты, используемые с 1987 года в C-Netz (немецкий предшественник GSM, также упоминается как D-Netz), имели операционную систему, которая настроена для использования в этих сетях. Специфика состояла в нестандартном протоколе обмена данными, специальных системных командах и файловой структуре, специально адаптированной для использования операционной системой. Можно считать, что эта смарт-карта имела свою операционную систему, хотя и исключительно предназначенную для работы в сетях C-Netz. Необходимые компоненты системы, основывающиеся на прикладных приложениях, были выполнены согласно требованиям операционной системы с библиотечным распределением системных функций, надстроенных над аппаратным обеспечением кристалла смарт-карты. Следующим этапом развития был переход от решений, специализированный для конкретной задачи, к архитектуре открытой операционной системы. Пример тому первая смарт-карта стандарта GSM, которая была спроектирована более структурировано и многофункционально. Как только смарт-карта стандарта GSM была технически описана, были предложены стандарты для последовательности команд и структур данных. Это послужило фундаментом, который был заложен для построения операционной системы. Пользуясь стандартами, разработку операционной системы можно было планировать шаг за шагом, вместо старого подхода проектирования архитектуры целиком, не имея никаких начальных основ. Прикладные приложения таких систем стали менее зависимы от аппаратного обеспечения и начали основываться на интерфейсах, предоставляемых операционной системой.

Современные операционные системы для GSM имеют такие компоненты как управление памятью, файловые деревья и поддержку прикладных приложений. Это дает повод рассматривать их как многозадачные операционные системы. Они могут управлять несколькими прикладными программами независимо, не предоставляя только пока самим приложениям возможности взаимодействовать друг с другом. Многие из операционных систем имеют сложную, но структурированную системную архитектуру, обширный набор обрабатываемых команд и несколько реализованных протоколов передачи данных.

Даже описанные операционные системы не представляют собой конец эволюционного процесса для смарт-карт. Например, смарт-карты для мобильных телефонов возлагают на себя все больше и больше обязанностей, таких как управление дисплеем или функциональное назначение клавиш телефона.

Способы обеспечения функциональной эквивалентности между программой для смарт-карты и ее копией на персональном компьютере

Проблема обеспечения эквивалентности между разрабатываемым кодом на персональном компьютере и его версией для размещения на смарт-карте (или любом миниатюрном устройстве) достаточно актуальна [43] по причине отсутствия возможности вести разработку и отладку программных средств на самом устройстве [44].

Для решения задачи прибегают к созданию специального рабочего окружения на персональном компьютере, которое эмулирует микроконтроллер смарт-карты. Это рабочее окружение должно включать в себя эмуляцию трех видов памяти (ROM, EEPROM и RAM), использующихся на смарт-карте, обеспечение такой же разрядности операций и типов, использующихся на микроконтроллере (как правило, 8-бит), поддержку интерфейса ввода-вывода (последовательный интерфейс со скоростью в 9600-115200 Бод). Это минимальные требования к рабочему окружению при разработке программ для микроконтроллера смарт-карты. Они относятся к эмуляции аппаратного обеспечения, предоставляемого микроконтроллером.

Часто производители микроконтроллеров создают специальные аппаратные эмуляторы тех или иных типов микроконтроллеров с дополнительным управляющим интерфейсом, с помощью которого осуществляется отладка программы. Это упрощает процесс разработки рабочего окружения на персональном компьютере.

Задачу обеспечения полной совместимости написанного кода для разных архитектур традиционно предлагается решать путем использования межплатформенного языка программирования, в частном случае Java. В таком случае байт-код приложения будет абсолютно аналогичен [45]. Различия потенциально возникают в аппаратно-зависимой реализации виртуальной машины. В случае использования Java виртуальной машины различия сводятся к особенностям внедряемой архитектуры. Виртуальная машина Java строго специфицирована, и также имеется набор тестов на соответствие ее реализации спецификациям [46].

Предлагаемая модель разделяет все программное обеспечение для смарт-карты на несколько уровней: аппартно-зависимый код, виртуальная машина, операционная система, выполненная на байт-коде поддерживаемой виртуальной машины, и приложения для операционной системы, которые также выполняются на том же самом байт-коде.

Вместо использования уже готовых виртуальных машин для персонального компьютера для, как максимально более точного повторения специального аппаратного окружения, имеющаяся реализация виртуальной машины для микроконтроллера адаптируется под рабочее окружение для персонального компьютера, где обеспечены упомянутые требования к поддержке типов памяти, разрядности и интерфейсу ввода вывода.

Таким образом, выстраивается стек уровней программного обеспечения, закладываемого в смарт-карту. В самом низу стека находится аппаратно-зависимый уровень. Он оказывается наиболее уязвимой частью при анализе эквивалентности. Т.е. при использовании этого уровня необходимо создавать окружение, эмулирующее аппаратное обеспечение микроконтроллера смарт-карты. Есть, однако, другой путь для реализации этого уровня - это аппаратный эмулятор микроконтроллера. В этом случае вопросы эквивалентности решаются путем аппаратного дублирования этого устройства.

Следующий уровень в стеке - это набор библиотек или интерпретатор языка высокого уровня. Этот уровень занимает место посередине аппаратно-зависимого уровня и предоставляет уровню стека, стоящему выше, все возможности для построения целиком или частично аппаратно-независимой операционной системы.

На следующей ступени находится уровень операционной системы. В зависимости от способов реализации предыдущего уровня она может быть как аппаратно-независимой, так и зависеть от аппаратной архитектуры. Случай зависимости объясняется тем, что любой код имеет наследование от библиотек классов, предоставляющих те или иные инструменты работы с аппаратным обеспечением. Здесь имеет место деление на низкоуровневые операции с аппаратным обеспечением и более высокоуровневые операции, инкапсулирующие низкоуровневые функции. Низкоуровневые функции работы с аппаратным обеспечением автоматически попадают в аппаратно-зависимый уровень, т.к. имеют аппаратную реализацию. Высокоуровневые функции попадают в уровень библиотек, где удобным образом скрываются все аппаратные элементарные операции. Уровень библиотек при альтернативном способе реализации заменяется на интерпретатор языка высокого уровня. Инструкции интерпретатора также как и функции библиотек инкапсулируют аппартно-зависимый код. Тем не менее, часть удобных библиотек переносится на уровень выше, и будет входить в уровень операционной системы. Такое разграничение проведено из-за аппаратной независимости этих функций и логической исключительности из уровня библиотек, реализовывающих аппартно-зависимые высокоуровневые операции.

На самом верху стека программных уровней располагается уровень приложений, зависимых от архитектуры операционной системы, выполненной на уровень ниже. Уровень приложений касательно смарт-карты является опциональным и может отсутствовать, если необходимая функциональность заложена в саму операционную систему.

Достоинства стековой модели заключаются в возможности отладки на любом из выделенных уровней, предоставляя более широкие возможности для установления потенциальных ошибок в коде. Иными словами есть возможность отлаживать интерпретатор на аппаратно-зависимом уровне, операционную систему на уровне интерпретатора и приложения на уровне операционной системы. Имея эмуляцию лишь единственного самого низшего аппаратно-зависимого уровня, код интерпретатора, операционной системы и приложений обладает совместимостью и переносимостью между смарт-картой и персональным компьютером [47]. Т.е. для этих трех высших уровней будет достигаться полная эквивалентность.

Позиционирование и конфигураци

Преимущества и недостатки обуславливаются технологическим прогрессом в области разработки встраиваемых систем. Операционные системы для смарт-карт последнего поколения требуют объектно-ориентированного подхода и гибкости решения.

При неизменном аппаратном обеспечении усложнение архитектуры программного кода ведет к его большему объему и потере производительности. Системы предыдущих поколений отличались некоторой стабильностью и сложившейся практикой доверия вследствие длительного их использования. Более сложные системы несут в себе большую функциональность, и, соответственно, риск возникновения ошибки в коде возрастает.

Системы более сложной архитектуры используют стек больше, нежели простые системы. Архитектурная логика удлиняет список вызовов стека за счет разнесенной функциональности, в то время как простые системы используют главным образом прыжки в адресации кода.

С другой стороны системы последнего поколения сконструированы с использованием объектно-ориентированного принципа построения. Предложенная операционная система идет дальше и предлагает классовую модель, реализованную на языке программирования высокого уровня. В частности Java при использовании технологии JavaCard для смарт-карт. Код операционной системы - это Java приложение, адаптированное под специфику микроконтроллера смарт-карты. Использование классовой модели делает код прозрачным и понятным и, как следствие, легко изучаемым и расширяемым.

Применение технологии Java способствует аппаратной независимости операционной системы и легкого переноса с одного семейства микроконтроллеров смарт-карт на другое при минимальных затратах.

Строгое разделение на уровни в архитектуре дает преимущества при многоуровневой отладке или внедрении специальной функциональности. Уровневая разделенность дает возможность работать с программным кодом не только непосредственно во встраиваемой системе, но и на любой другой, где обеспечены требования к базису того или иного уровня. Это разделение также дает возможность использовать операционную систему в качестве эмуляции, как целиком, так и для любого другого уровня, располагающегося выше точки отладки. Использование открытых технологий, таких как Java, где структура кода и скомпилированный байткод описан открытыми стандартами, подчеркивает преимущество платформенно-независимых систем. Среди недостатков использования интерпретаторов, каким и является Java, присутствует двойное интерпретирование, т.е. конвертирование Java байткода в ассемблер и после интерпретация ассемблера процессором. Это, несомненно, уменьшает производительность. Однако существует ряд микроконтроллеров, чьи процессоры позволяют выполнять либо часть операционных кодов Java, либо даже все операционные коды [48]. Преимущества: максимальная аппаратная независимость при перенесении с одного микроконтроллера на другой; сведение аппаратной зависимости к минимуму за счет использования препроцессора в коде виртуальной машины использование объектно-ориентированного принципа при проектировании для обеспечения прозрачности и понятности кода; быстрая возможность реализация при среднесрочной перспективе за счет использования языка программирования высокого уровня; высокая расширяемость из-за открытого интерфейса и модульной распределенности; использование открытых стандартов в реализации. Недостатки: уменьшение производительности из-за двойной интерпретации; увеличение размера кода из-за включения кода виртуальной машины и за счет избыточности интерпретируемого кода. 4.2 Выводы Проведен анализ производительности и срока службы при натурной верификации промышленного образца смарт-карты, использующего разработанную операционную систему в качестве программного обеспечения. Анализ показал значительное сокращение временных и ресурсных затрат при разработке операционной системы. Проведена оценка конфигурации операционной системы в сравнении с коммерческими аналогами, демонстрирующая полное соответствие выбранным для сравнения критериям. В ходе выполнения диссертационной работы были рассмотрены вопросы разработки платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт, при этом получены следующие новые научные и практические результаты. Разработано формализованное представление функциональности операционной системы смарт-карт. Создана математическая модель интерпретатора инструкций операционной системы смарт-карт. Разработан алгоритм применения принципа платформенной независимости при модульном распределении компонент системы. Разработана методика модульного распределения компонентов системы по признаку аппаратной зависимости, обеспечивающая инкапсуляцию аппаратно-зависимых функций и выделение платформенно-независимых модулей в виде отдельной системы. Разработан платформенно-независимый программный комплекс распределенной операционной системы для смарт-карт с применением принципа платформенной независимости и принципа объектно-ориентированного программирования. В ходе экспериментов подтверждено повышение производительности на 12% в обработке инструкций и продление срока службы смарт-карты на 28%.

Похожие диссертации на Разработка платформенно-независимого программного комплекса распределенной операционной системы для смарт-карт