Главная » Java » Платформа Java

0

Язык программирования Java спроектирован таким образом, чтобы обеспечить наивысший уровень переносимости кода. Многие элементы внутренней структуры намеренно определены совершенно одинаковыми для всех реализаций языка. Например, тип doublе служит для представления 64битового числа с плавающей запятой, соответствующего спецификации IEEE 754-1985. Создатели многих других языков программирования возложили обязанность по уточнению деталей на разработчиков конкретных разновидностей систем, предназначенных для той или иной аппаратной платформы, оговорив только общие параметры, такие, например, как допустимый диапазон изменения значений определенного числового типа, либо предоставив встроенные в язык средства обращения к операционной системе за сведениями о подобных параметрах.

Универсальные определения, лежащие в основе языка Java как такового,

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

Виртуальная машина обеспечивает среду исполнения, которая позволяет приклад ной программе обращаться к самой виртуальной машине (например, принудительно запускать процесс сборки мусора) и взаимодействовать с окружающим миром (скажем, с помощью потоков ввода-вывода, таких как System.out). Среда исполнения, или исполняющая система (runtime system), содержит в своем составе менеджер безопасности (security manager) или контроллер доступа (access controller), который способен, например, запретить приложению обращаться к локальному диску для чтения/записи или регламентировать возможность подключения к конкретным компьютерам сети. Совокупность операций, которые разрешено выполнять, определяется политикой безопасности (security policy), вступающей в силу в момент старта приложения.

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

Сочетание всех названных свойств обеспечивает меру независимости системы от особенностей конкретной платформы, достаточную для реализации модели безопасности, которая гарантирует возможность выполнения кода, загруженного из сетевых источников различных степеней надежности. Исходный программный текст, скомпилированный в байт-код Java, способен выполняться на любом компьютере, обладающем виртуальной машиной Java. Код может быть выполнен с соблюдением требований соответствующего уровня защиты, что позволяет предохранить систему от вредоносных последствий выполнения программ, которые написаны неаккуратно или злонамеренно. Уровень надежности (безопасности) источника байт-кода может быть задан явно – про грамма, хранящаяся на локальном диске или в защищенной сети, заслуживает, как правило, большего доверия, нежели код неизвестного происхождения, загруженный из Internet.

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии