Дисциплины - Разработка web-приложений для мобильных систем

Клиентское программирование - Мобильные технологии

Мобильные технологии. Мобильный клиент и web-сервер.

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

Большинство мобильных систем, как и серверов работают на ядре Unix

Особенности Unix, отличающие данное семейство от других ОС, приведены ниже.

  • Файловая система древовидная, чувствительная к регистру символов в именах, очень слабые ограничения на длину имён и пути.
  • Нет поддержки структурированных файлов ядром ОС, на уровне системных вызовов файл есть поток байтов.
  • Командная строка находится в адресном пространстве запускаемого процесса, а не извлекается системным вызовом из процесса интерпретатора команд (как это происходит, например, в RSX-11).
  • Понятие «переменных окружения».
  • Запуск процессов вызовом fork(), то есть возможность клонирования текущего процесса со всем состоянием.
  • Понятия stdin/stdout/stderr.
  • Ввод-вывод только через дескрипторы файлов.
  • Традиционно крайне слабая поддержка асинхронного ввода-вывода, по сравнению с VMS и Windows NT.
  • Интерпретатор команд есть обыкновенное приложение, общающееся с ядром обыкновенными системными вызовами (в RSX-11 и VMS интерпретатор команд выполнялся как специальное приложение, специальным образом размещённое в памяти, пользующееся специальными системными вызовами, поддерживались также системные вызовы, дающие возможность приложению обращаться к своему родительскому интерпретатору команд).
  • Команда командной строки есть не более чем имя файла программы, не требуется специальная регистрация и специальная разработка программ как команд (что являлось обычной практикой в RSX-11, RT-11).
  • Не принят подход с программой, задающей пользователю вопросы о режимах своей работы, вместо этого используются параметры командной строки (в VMS, RSX-11, RT-11 программы работали также с командной строкой, но при её отсутствии выдавали запрос на ввод параметров).
  • Пространство имён устройств на диске в каталоге /dev, поддающееся управлению администратором, в отличие от подхода Windows, где это пространство имён размещается в памяти ядра, и администрирование этого пространства (например, задание прав доступа) крайне затруднено из-за отсутствия его постоянного хранения на дисках (строится каждый раз при загрузке).
  • Широкое использование текстовых файлов для хранения настроек, в отличие от двоичной базы данных настроек, как, например, в Windows.
  • Широкое использование утилит обработки текста для выполнения повседневных задач под управлением скриптов.
  • «Раскрутка» ОС после загрузки ядра путём исполнения скриптов стандартным интерпретатором команд.
  • Широкое использование именованных каналов (pipe).
  • Все процессы, кроме init, равны между собой, не бывает «специальных процессов».
  • Адресное пространство делится на глобальное для всех процессов ядро и на локальную для процесса части, нет «групповой» части адресного пространства, как в VMS и Windows NT, как и возможности загрузки туда кода и его исполнения там.
  • Использование двух уровней привилегий процессора вместо четырёх в VMS.
  • Отказ от использования оверлеев в пользу деления программы на несколько программ поменьше, общающихся через именованные каналы или временные файлы.
  • Отсутствие APC и аналогов, то есть произвольных (а не жёстко перечисленных в стандартном множестве) сигналов, не доставляемых до явного пожелания процесса их получить (Windows, VMS).
  • Концепция сигнала уникальна для Unix, и крайне сложна в переносе на другие ОС, такие как Windows.

Linux-Dictionary

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться